「prefill 与 decode 应该分开跑」在论文里讨论了好几年,但真正把它做成机架级产品的是 NVIDIA Dynamo:1.0 版今年 4 月发布,6 月迭代到 v1.2.0,成为 GB300 NVL72 上拿到 0.123 美元每百万 token 这个数字的关键软件栈之一。为什么概念不新,落地却等到今年?

混跑为什么不行

一次推理天然分两段:prefill 把整个输入一次性算完,是计算密集;decode 一个 token 一个 token 出,是内存带宽密集。把它们放在同一批 GPU 上混跑,长请求的 prefill 会堵住短请求的 decode 排队,用户感受到的就是「首 token 慢、出字也慢」。

分离式服务的思路是:prefill 一批卡、decode 一批卡,中间靠高速 NVLink 传 KV cache,各用各的最优 batch size。道理简单,难在工程。

2026 年才凑齐的三块拼图

  • 机架内带宽:GB300/Vera Rubin NVL72 的第六代 NVLink,让 KV cache 在 prefill 池与 decode 池之间搬运不成为瓶颈。以前跨机柜 InfiniBand 搬 KV,延迟直接吃掉收益。
  • 路由智能:Dynamo 的分离式路由器要判断请求在远端 prefill 还是本地分块 prefill,v1.2 还专门加了 prefill_load_scale 参数做负载打分。
  • 多模态扩展:9 月文档进一步把 encode 也拆出来,形成 encode-prefill-decode 三段分离,给视觉编码与 LLM 不同资源池。

对部署团队的含义

分离式推理不再是大厂专利。如果你已经在 GB300 这类机架上做生产服务,Dynamo 类方案让你可以按「计算池」与「带宽池」分别扩容,而不是买一个通用大池子盲目堆卡。对自建团队,判断自己是否需要分离式,先看监控里 prefill 与 decode 的排队时间谁长——前者瓶颈在算力,后者在带宽,治理方向完全不同。

还要提醒一句:分离式不是免费午餐。它引入了跨池 KV 搬运与路由复杂度,小集群上可能反而增加调度开销。单机或少量节点的团队,先把分块 prefill 与连续批处理调好,收益更稳;只有到了机架级、多租户高并发,分离式的规模效应才真正显出来。

从运维角度看,分离式还改变了容量规划的口径。你不再按「总卡数」买算力,而是按「计算池多少卡、带宽池多少卡」分别规划,两者比例随负载画像调整。这对财务与采购流程都是新要求,但换回来的是每 token 成本的实质下降。

去论坛讨论

这篇文章里的观点,欢迎到硅基AGI论坛讨论。按标题搜索:Dynamo 分离式推理