导语:从“会并行写字”到“能稳定上岗”
想象你让一个人写一段话。传统聊天模型更像打字员,从左到右一个字一个字敲。扩散语言模型(dLLM)换了办法:它先把答案里的很多位置留空,再一轮轮补上,像先搭一张填空卷,最后把空格填满。这个思路的诱惑很直接:既然不是严格从左到右,它就有机会一次确认多个位置,生成得更快。
问题也在这里。会“一次写好几处”不等于能进机房稳定服务。现有大模型服务栈大多围绕自回归 AR 解码设计,也就是从左到右生成;它们很依赖 KV Cache——模型读过上下文后留下的“速查笔记”,避免每一步都从头重读。dLLM 因为能双向看上下文,改掉一个位置会影响别的位置的中间结果,这份笔记就没法像 AR 模型那样精确复用。
这组工作值得放在一起看:Sangam 在补服务系统,CoCommit 在补多个 token 一起提交时的协调,Nemotron-Labs-Diffusion 试图把 AR、diffusion 和 self-speculation 三种解码放进同一架构,dOPSD 则在补后训练。换句话说,扩散 LLM 这一波不只是“新架构概念”,而是在补推理和训练后的工程课。除 dLLM 的基本生成范式有多源互证外,下文多数具体效果来自各论文或项目单一信源,数字都按原材料绑定具体设置解读。
它先卡在服务栈上
dLLM 的基本动作是“迭代去噪”:先把 response 或 sequence 中很多位置遮住,再反复预测、确认、更新。它的优势也来自这里:一次模型调用,可能提交多个 token 或多个输出位置。
但服务器看到的不是“概念优势”,而是一串很具体的麻烦。Sangam 论文把问题拆得比较清楚。AR 模型通常只有一次 prefill 和很多次 decode。prefill 可以理解为模型先读完整个提示词,建立上下文;decode 是后面逐个生成 token。AR 服务系统已经围绕这套节奏做了很多优化。
缓存后的 dLLM 不一样。由于精确 KV Cache 难以复用,Fast-dLLM、dKV-Cache 这类近似缓存方法会反复刷新并复用 KV activations。结果是,一个请求不再是“一次 prefill 后一路 decode”,而是不断在 prefill 和 decode 之间来回走。更麻烦的是,dLLM 的 decode 不是 AR 那种轻轻吐一个 token,而常常是一个 block 大小的计算;prefill 又因为双向注意力不能像 AR 服务里那样切成小块慢慢塞进去。
Sangam 的做法不是重写一整套宇宙,而是尽量借用 AR 服务栈,再承认哪些地方不能照搬。它提出 cached dLLM inference 的 serving system,核心有两个机制。
第一个是 deficit token-budget scheduler。可以把它想成“每轮有一个 token 预算”。调度器先保证已经在生成中的 decode 继续跑,再看剩余预算够不够塞进一个完整 prefill。dLLM 的 prefill 不能切块,所以如果这轮塞不下,就把没用完的预算记账到后面。这样做不是让每一轮都绝对不被 prefill 拖慢,而是在多轮平均意义上控制 prefill 对 decode 的干扰。
第二个是 hybrid serving strategy。完全分离 prefill 和 decode 可以避免互相干扰,但会带来资源分配问题:prefill GPU 不够时会排队,decode GPU 不够时也会排队。Sangam 让专门的 prefill 池承担正常负载;当 prefill 池堵住时,把一部分 prefill 溢出到 decode 角色的 colocated workers 上,同时仍用 deficit budget 控制它们不要把 decode 拖垮。
作者报告的结果也说明它不是“某种模式永远更好”。在 LLaDA-8B ShareGPT 的 decode-heavy workload 上,colocated serving 相比 hybrid execution 将 mean latency 降低 9-20%。但在 Dream-7B arXiv 的 prefill-heavy workload 上,hybrid execution 相比 colocated execution 将 mean latency 降低 8-20%。重点不是哪种模式赢,而是 dLLM 服务也绕不开两个老问题:prefill 和 decode 会互相干扰,prefill/decode 资源比例又很难固定分好。
多个 token 一起交卷,也要先商量
dLLM 一步能提交多个位置,听起来像提速的关键。但 CoCommit 指出,这里有一个不直观的问题:这些位置往往不是彼此独立的。
举个简单例子,如果一句话里有两个空格,“巴黎是法国的_,位于_。”这两个空格的答案会互相影响。只看每个空格自己的最高概率,可能不等于整句话最协调的组合。CoCommit 把这种错误称为由条件总相关(conditional total correlation)刻画的 factorization error。读者不用记这个术语,只要抓住意思:多个位置一起提交时,不能只看每个位置单独像不像,还要看它们合在一起通不通。
CoCommit 的办法是加一个很短的“协调回合”。在 usual bundle selection 之后,它用 learned marker 标记这次准备提交的位置,然后重新跑 backbone 的最后 层,让这些 marked positions 彼此看见“谁要一起交卷”,再用 greedy argmax 写入 token。它不引入 auxiliary model,也复用现有权重,只多一次 partial forward pass。
按作者在 LLaDA2.1-mini、LoRA adapters、matched greedy inference 设置下的报告,CoCommit 在六个 benchmark 上 accuracy 都有提升,reasoning 和 exact-answer 任务提升最大。材料没有列出六个 benchmark 名称和具体分数,所以这里不能把它扩大成通用结论。它更像是在提醒:dLLM 的并行提交不是白来的,工程上要补“联合决策”这一课。
三种模式放进一个模型
Nemotron-Labs-Diffusion 走的是另一条线:不要把 AR 和 diffusion 看成非此即彼。它提出一个 tri-mode language model,在单一架构里统一 AR、diffusion 和 self-speculation decoding。
这里的 self-speculation decoding 可以先理解为“自己先打草稿,再自己核对”。在 Nemotron-Labs-Diffusion 的描述里,diffusion 负责 draft,AR 负责 verify。模型用 joint AR-diffusion objective 训练,也就是同时学习从左到右生成和扩散式补全两种目标。作者认为二者互补:diffusion 改善 lookahead planning,AR 提供 left-to-right linguistic priors。
这件事的工程意义在于部署。不同并发水平、不同服务环境下,最适合的解码模式可能不同。Nemotron-Labs-Diffusion 试图让模型能按部署设置切换模式,维持高吞吐。供稿中给出的例子是:Nemotron-Labs-Diffusion-8B 相比 Qwen3-8B 每次 forward 解码 token 数多 6x,accuracy comparable,并在 GB200 GPU 上用 SGLang 跑 SPEED-Bench 时实现 4x higher throughput。
这组数字要保守看。材料没有给完整 benchmark 表、baseline 版本和并发设置;“speed-of-light analysis”里 diffusion 在 optimal sampler 下最多可比 self-speculation 多产生 76.5% tokens per forward pass,也属于理想分析,不等同于真实部署收益。不过它传递的方向很清楚:扩散 LLM 的价值可能不只是替代 AR,而是成为一个可切换的生成模式。
后训练也要适配扩散过程
最后是 dOPSD。它处理的是后训练问题:模型结构换了,训练后让它更会推理的办法也未必能原样搬过来。
自蒸馏(self-distillation)是让模型从自己或同源模型的输出里再学习,像学生整理自己的解题过程后再巩固。dOPSD 提出 on-policy self-distillation。on-policy 的意思是,训练信号来自模型自己当前会走到的轨迹,而不是一个外部固定答案路径。
传统做法的难点在于,教师信号常常需要 privileged information,也就是推理时拿不到的额外答案或参考。dOPSD 改了一下角度:教师信号不从外部 ground-truth reference 来,而从学生自己的 denoising trajectory 里来。更具体地说,它用同一条生成轨迹中 later, more-decoded steps 去评价前面还 masked 的位置。也就是让模型从“自己后来更清楚时的判断”里学习。
按作者报告,dOPSD 在 Dream 和 LLaDA 上提升了 in-domain math reasoning 与 out-of-domain code generation,并超过 supervised 与 on-policy baselines。材料没有给具体幅度和基线名称,所以这里最好只把它理解成一个后训练方向:dLLM 的学习信号可以直接从扩散去噪过程内部产生,而不是完全依赖外部答案。
为什么值得关注
这组工作共同指向一个变化:扩散 LLM 正在从“生成范式很新”进入“能不能稳定服务、能不能高效提交、能不能后训练”的阶段。
Sangam 说明,dLLM 如果要进入并发服务,就必须面对 prefill/decode 干扰、KV Cache 复用和调度问题。CoCommit 说明,并行提交多个 token 时,准确性瓶颈可能来自 token 之间没有协调。Nemotron-Labs-Diffusion 说明,未来部署形态可能不是 AR 或 diffusion 二选一,而是按场景切换。dOPSD 则说明,后训练也需要贴着扩散的 denoising trajectory 设计。
这比“某个模型快了几倍”更重要。速度宣传容易随硬件、batch、benchmark 和实现变化;但这些论文暴露出来的问题更稳定:dLLM 要兑现并行生成的潜力,必须补齐 AR 模型多年积累下来的服务栈和训练栈。
局限与未知
- Sangam 的服务结果绑定特定模型、trace 和 workload:LLaDA-8B ShareGPT 与 Dream-7B arXiv 的结论不能泛化为某一种 serving mode 总是更好。
- CoCommit、dOPSD 的效果描述来自单一材料,且供稿未给完整分数表或基线细节,只能写作者报告的方向性结果。
- Nemotron-Labs-Diffusion 的吞吐数字和 76.5% tokens-per-forward 分析需要结合具体硬件、SGLang、SPEED-Bench 与 optimal sampler 条件看,不能直接等同于所有真实部署场景。