Fast Distributed Inference Serving for Large Language Models

framework 2305.05920 — Cross-paper Synthesis

FastServe — L3 Cross-Paper Synthesis #

§1 相关论文 #

相关论文关联类型关联原因
2309.06180 (vLLM)互补并行vLLM 解决内存管理,FastServe 解决调度;v3 FastServe 集成了 PagedAttention
2502.13965 (Autellix)后继扩展将 FastServe 的 per-request MLFQ 思想扩展到 per-program 级别,解决 agent workload
2510.17015 (Justitia)后继扩展在 vLLM 之上实现 task-parallel LLM 的公平调度,增加 DRF 风格资源分配
2504.20068 (JITServe)后继扩展SLO-aware 调度考虑 imprecise request info(output length 预测不准),与 FastServe 的 semi information-agnostic 设定互补
2603.17456 (MFS)后继扩展将调度问题扩展到 disaggregated MoE serving 的网络层,解决 multi-stage flow 争用

§2 本篇 vs 相关论文的 delta #

FastServe 的核心贡献是识别 LLM serving 的 "semi information-agnostic" 特性——input length 已知(决定 prefill time)但 output length 未知(决定 decode time)——并设计了利用这一中间状态的 skip-join MLFQ 调度器 [2305.05920]

vs vLLM (2309.06180):两篇论文攻击 LLM serving 的不同瓶颈

维度vLLMFastServe
核心问题KV cache 内存碎片Head-of-line blocking
优化目标最大化 batch size(吞吐)最小化 JCT(延迟)
技术手段Paged memory managementPreemptive MLFQ scheduling
调度策略FCFSSkip-join MLFQ
互补性FastServe v3 集成 PagedAttention

关键洞察:vLLM 实测中 ShareGPT 仅 20.4%–38.2% 内存利用率 [2309.06180],FastServe 实测中 ShareGPT 98% 延迟来自排队 [2305.05920]。两者攻击不同的 98% / 20%——但 FastServe 的 98% 更能解释用户感知延迟。

vs Autellix (2502.13965):Autellix 发现 FastServe 的 per-request MLFQ 在 agentic workload 下失效 [2502.13965]。原因:agent program 的每次新 call 进入 MLFQ 最高优先级队列(因为是"新请求"),但其 program 累计已消耗大量服务时间——长 program 通过频繁提交新 call 反复"重生"为高优先级。Autellix 的 PLAS 将优先级绑定到 program 而非 request,新 call 继承 program 累计服务时间。

矛盾分析:FastServe 假设每个请求是独立的(single-turn chatbot),Autellix 假设请求之间有结构依赖(multi-turn agent)。两者在各自假设下都正确,冲突根源是workload model 不同

vs JITServe (2504.20068):JITServe 攻击 FastServe 的另一个假设弱点——FastServe 的 skip-join 依赖精确的 prefill time 预测,但未利用 output length 的任何预估。JITServe 引入 imprecise output length prediction(即使不准也有信息价值),结合 SLO-aware goodput optimization。FastServe 是 "agnostic about output",JITServe 是 "imprecise about output"。

vs MFS (2603.17456):MFS 将调度问题从 compute scheduling 扩展到 network scheduling [2603.17456]。在 disaggregated MoE serving 中,三阶段通信(KV-cache 复用 + collective comm + P2D 传输)的网络争用导致 TTFT 膨胀 50%。MFS 用 Reverse Multi-Level Queue(与 FastServe 的 MLFQ 对偶的结构——新 flow 从低优先级开始,随 deadline 逼近逐步提升)解决网络层调度。FastServe 和 MFS 的共同思想:MLFQ 变体适配特定的 information structure。

§3 可攻击面 #

  1. v1→v3 数字差异巨大且可疑。v1 报告 5.1×/6.4× over Orca;v3 报告 31.4×/17.9× over vLLM [2305.05920]。改变基线(Orca→vLLM)和指标定义(JCT improvement → throughput-under-latency)使数字飙升,但实际系统改进有限。
    1. 低负载时 FastServe ≈ FCFS。当负载 ≤ 0.5 时,MLFQ 退化为 FCFS [2305.05920]。FastServe 的价值只在高负载 + skewed workload 时体现——而在这种场景下用户可能更关心尾延迟的绝对值而非相对改善。
      1. Proactive swapping 假设 PCIe 带宽充足。OPT-175B 的 swap 需 36 ms via PCIe 4.0×16,decode 约 60 ms [2305.05920]。若 swap 对象增多(更多被 preempt 的 job),PCIe 带宽可能饱和,proactive swap 退化为 reactive。论文未分析 swap 带宽成为瓶颈的 tipping point。
        1. Naive MLFQ 比 FCFS 更差(Fig. 7 example:avg latency 5 vs 4.23)[2305.05920]。这暗示 MLFQ 在 LLM serving 中的适用性高度依赖 skip-join 机制——没有 skip-join 的 MLFQ 不应被使用。但 skip-join 依赖精确的 profiler,profiler 在 heterogeneous GPU 或 mixed model 场景下可能不准。
        2. §4 生态位 #

          FastServe 确立了 preemptive iteration-level scheduling 作为 LLM serving 的关键设计维度——之前的 Orca 虽有 iteration-level scheduling 但仍是 FCFS,FastServe 证明 FCFS 是 LLM serving 延迟的主要来源。

          Paradigm shift:从"如何更快地执行一个请求"(vLLM/FlashAttention 的方向)转向"如何更智能地排序请求"。FastServe 的实测表明后者对用户感知延迟的影响远大于前者。

          Adoption evidence:FastServe 的核心思想(iteration-level preemption)已被多个后续系统采纳——Autellix 的 PLAS 基于 LAS(MLFQ 的连续版本),Justitia 在 vLLM 上实现类似的 priority-based preemption。

          §5 未探索方向 #

          1. Output length prediction + skip-join 融合:用 LLM 自身的 hidden state 预测 output length(类似 speculative decoding 的 draft model),将预测结果融入 skip-join 的 queue 选择——从 semi-agnostic 推进到 weakly-informed。
            1. Hierarchical MLFQ:request-level + program-level:在 FastServe 的 request MLFQ 之上叠加 Autellix 的 program-level 优先级——同一 program 的 requests 共享 program-level priority,但 program 内部仍可 per-request 排序。
              1. Network-compute joint scheduling:结合 FastServe 的 compute scheduling 和 MFS 的 network scheduling——在 disaggregated 架构下,调度器同时考虑 GPU 负载(决定 batch 组建)和网络负载(决定 KV transfer timing)。
                1. Adaptive starvation threshold:FastServe 的 $\alpha = 300$ ms 是固定阈值 [2305.05920]。可根据实时系统负载动态调整——高负载时增大 $\alpha$(允许更长等待以保护短 job),低负载时减小 $\alpha$(避免长 job 饥饿)。
                  1. KV cache compression as scheduling primitive:当 swap 带宽成为瓶颈时,不 swap 整个 KV cache,而是 compress(量化到 INT4)后 swap 压缩后的版本。恢复时 dequantize——牺牲少量精度换取 4× swap 带宽。这将 token-level KV compression(Survey 2412.19442 的方向)与 system-level scheduling(FastServe 的方向)结合。