跳转到内容

分布式推理:Prefill/Decode 分离

单机装不下超大模型,或高并发下两种负载互相干扰时,推理要分布式部署。两条主线:张量/流水并行推理(单请求跨多卡)与 Prefill/Decode 分离(两种负载分开调度)。本章讲清楚分布式推理的部署形态、分离的动机与代价、以及多卡推理的批处理特性。

三个动机按出现频率排:

  1. 模型装不下:千亿模型的权重 + KV 超过单机 8 卡显存 → 张量并行/流水线并行推理
  2. 延迟要求:单卡 decode 的速度上限 = 带宽 ÷ 权重(70B 单请求 24 tokens/s,见 Roofline),张量并行摊薄权重读取 → 单请求更快
  3. 负载互相干扰:prefill(计算受限)与 decode(访存受限)混批互相拖累(见上一章)→ 分离部署

TP 推理与 TP 训练的原理相同(按 hidden 切权重,见张量并行),但推理的收益模型不同:

decode 阶段的权重读取是唯一瓶颈(算术强度 ~1),TP=p 把权重切成 p 份,每卡只读 1/p:

单请求 decode 速度上限=p×带宽权重\text{单请求 decode 速度上限} = \frac{p \times \text{带宽}}{\text{权重}}
配置70B decode 上限说明
单卡(80GB 装不下)—装不下
TP=248 tokens/s每卡读一半权重
TP=496 tokens/s
TP=8192 tokens/sNVLink 域内

TP 推理的通信代价:每层两次 all-reduce/all-gather,但推理的 batch 通常小(激活小),通信量比训练小得多——TP=8 推理在 NVLink 域内几乎无感。

但注意 TP 推理的批处理特性:TP 度越大,每卡的算力被切得越碎——TP=8 时一次 decode 步进的每卡 batch = 全局 batch ÷ 8(hidden 切分不切 batch),小 batch 下每卡更空。所以:

目标TP 度选择
单请求延迟最低TP 大(8),算力摊薄换延迟
总吞吐最大TP 小(2/4),多组独立服务更多请求

"一卡一组"与"多卡一组"是吞吐与延迟的经典权衡。

PP 推理(按层切段)比 TP 便宜(通信量小),但有一个致命问题:KV cache 跟着层走——每段卡的 KV 只覆盖自己的层,跨段的 KV 管理复杂(每段存自己的 KV 分片)。PP 推理的适用面窄(超长流水线、超大模型),TP(NVLink 域内)是主流。

Prefill/Decode 分离:P/D disaggregation

Section titled “Prefill/Decode 分离:P/D disaggregation”

上一章讲了 prefill 与 decode 性质相反(计算受限 vs 访存受限)。分离部署把它们放到不同的机器上:

Prefill 集群(计算导向):处理 prompt,算出 KV cache
↓ KV cache 传输(跨机)
Decode 集群(带宽导向):拿着 KV 逐 token 生成

分离的收益与代价:

混合部署分离部署
资源利用两种负载挤同一批卡,互相干扰各自按性质配硬件
TTFT受 decode 干扰稳定(专用 prefill)
TPOT受 prefill 干扰稳定(专用 decode)
代价简单KV 要跨机传输(GB 级,延迟敏感)

KV 传输是分离的核心代价:prefill 算出的 KV(batch × seqlen × 每 token KV,可达 GB 级)要在毫秒级送到 decode 机器——这要求 prefill 与 decode 之间有高速互联(NVLink 域内或 IB),且传输要流水化(边算边传)。

场景建议
中小并发、TTFT/TPOT 要求不高混合部署(简单)
大规模服务、SLO 严格(TTFT/TPOT 分别有目标)分离部署(DistServe/Mooncake 类方案)
prefill 与 decode 比例悬殊(长 prompt、短输出)分离(两种硬件配置不同)
  • TP 推理的组批:TP 度与并发上限联动(TP=8 每卡 batch 小,组批上限低);吞吐导向用小 TP 多副本
  • KV 传输的硬件:分离部署先确认 prefill→decode 的互联带宽与延迟(NVLink/IB),传输带宽不足时分离反而更慢
  • vLLM/SGLang 的支持:TP 推理(tensor_parallel_size)、P/D 分离(DisServe/Mooncake 类扩展)
  • 监控:分离部署要分别监控 prefill 集群(利用率、排队)与 decode 集群(TPOT、KV 池),中间的 KV 传输延迟是第三条监控线
  • 分布式推理三动机:装不下、延迟要求、负载干扰;TP 是主流,PP 因 KV 跟层走而适用面窄。
  • TP 推理摊薄权重读取(decode 上限 = p × 带宽 ÷ 权重);TP 大换延迟,TP 小换吞吐。
  • P/D 分离用硬件分工换 SLO:TTFT/TPOT 各自稳定,代价是 GB 级 KV 跨机传输。
  • KV 传输要求高速互联——分离部署先算传输带宽够不够。
  • 三条监控线:prefill 利用率、decode TPOT/KV 池、KV 传输延迟。