目录

Summary: DistServe: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving

本博客使用o3翻译,如有冲突请优先参考英文原文

image

  • LLM 推理有两段prefill(一次性计算整段上下文)和 decoding(循环输出 token)。把二者放在同卡会导致算⼒与显存互相争抢,从而拖慢 首 token 延迟 TTFT单 token 延迟 TPOT
  • DistServe 把两段分别放进两组 GPU,完全消除⼲扰;再让⼀个仿真器搜索 张量并⾏、流水并⾏、副本数 以及具体放置策略,直接最⼤化 单卡 goodput——即“既守住延迟 SLO 还尽可能多接请求”的吞吐指标。
  • 在 OPT-13 B/66 B/175 B 加三种业务(聊天、代码补全、⻓⽂摘要)中,DistServe 可使每卡 goodput 最多提升 7.4 倍,或在同样吞吐下扛住 12.6 倍更苛刻的延迟
  • vLLMcontinuous batchingDeepSpeed-MIIchunked-prefill piggy-back 仍把两段放同卡,只是试图智能排班;DistServe 直接“分家”,从根本上消除争抢。
  • 过往系统多追求“原始吞吐(throughput)”;DistServe 正式把 goodput under dual-latency SLO 作为⾸要优化目标,更贴合上线服务的体感与成本。
  • 针对 跨节点带宽慢 的集群,作者额外设计了“prefill / decoding 段共⽤ NVLink,最小化 KV-cache 传输”的受限搜索算法。
  • ⽂中把 prefill 等价成 M/D/1 排队系统,系统性分析 张量并⾏(intra-op)流水并⾏(inter-op) 在计算时延 vs. 排队时延上的权衡。
  • 三条⼯作负载:Chat(ShareGPT)、Code Completion(HumanEval)、Summarisation(LongBench);模型覆盖 OPT-13 B/66 B/175 B。
  • 横向对⽐对象:vLLM、DeepSpeed-MII;指标为 SLO 兑现率-vs-请求率,以及在收紧延迟预算(SLO Scale)时的打分。
  • 将总时延拆解为 prefill 排队/执⾏、KV 传输、decoding 排队/执⾏;即便在 175 B + 25 Gb/s 链路下,KV 传输仅占 < 0.1 %
  • DistServe-Low(带宽受限搜索)与 DistServe-High(跨节点随意放置)对照,量化算法收益。
  • 表 2 显示模拟器预测的 SLO 兑现率与真机误差 ≤ 2 %。
  • 图 12 给出搜索⽤时:1 – 82 s,硬件最⾼ 32 GPU + 96 核 CPU。
  • prefill / decoding 各保留全量权重 → 显存需求翻倍,⼩卡(如 A100-40G)成本劣势明显。
  • 依赖 NVLink / 高速跨卡带宽;PCIe -only 或跨节点慢链路的集群在短 prompt 场景下收益有限。
  • 单/双卡部署 时空间维度消失,DistServe 难以拆段,作者也在⽂中声明此局限。
  • 解码卡宕机 可能拖垮关联的多个 prefill 队列;鲁棒性留待后续。
  • 未评估 KV-Sharing、MoE、Speculative Decoding 等新算⾦,这些会改变计算与传输占⽐。
  • 离线或纯吞吐 业务下,chunked-prefill 批处理仍可胜任,DistServe 并未对此做动态切换优化。
  1. 量化或按需换页权重 —— 让 prefill / decoding 副本共⽤模型,降低“显存翻倍”负担。
  2. 增加抢占与副本级故障隔离 —— 解码 GPU 崩溃不至于牵连多条 prefill 队列。
  3. 负载感知地合并 / 拆分阶段 —— 低负载时合并回单卡省电,高负载再拆。
  4. 适配 Spec-Decode、GQA、MoE —— 扩展仿真器的时延模型。
  5. 混合 chunked-prefill + 物理拆分 —— 在服务 / 成本模型下动态选最优。
  • Continuous batching:vLLM 的“⾏排+列排”式混批。
  • Chunked-prefill batching:DeepSpeed-MII 把⻓前缀切块塞进解码批。
  • SARATHI:微软系结合 chunked-prefill 与激进解码批处理的系统。
  • DeepSpeed-MII:DeepSpeed 推理框架,⽀持 chunked-prefill,但不物理拆段。
  • Splitwise / TetriInfer / DéjàVu:同期研究,亦拆分 prefill & decoding,但关注点不尽相同。
  • GQA(Grouped-Query-Attention):多头共享⼀组 KV,减⼩ KV-cache。
  • MQA(Multi-Query-Attention):GQA 极端形态,所有头共用⼀组 KV。
  • MoE(Mixture-of-Experts):token 路由到专家子网,参数激增但计算线性放⼤。
  • M/D/1 排队模型:泊松到达、确定服务时长、单服务台。
  • Goodput:在双延迟 SLO 内可持续处理的请求数 / GPU。
  • KV-cache Streaming:按需流动 KV-cache ⽽⾮全量常驻显存。