Orthrus 论文解析:用"双视图扩散"实现 7.8 倍无损 LLM 推理加速

论文原标题:
Orthrus: Memory-Efficient Parallel Token Generation via Dual-View Diffusion
论文链接:
https://arxiv.org/abs/2605.12825
代码地址:
https://github.com/chiennv2000/orthrus
如果你用过大语言模型,一定有过盯着屏幕等它一个字一个字往外蹦的经历。这种"挤牙膏"式的输出不是产品没优化好,而是当今主流模型架构的一个根本性瓶颈。
核心洞察
论文的关键观察一针见血:自回归模型那个串行瓶颈,只发生在"往外吐字"的生成阶段。而它在"读懂上下文、构建表示"这件事上,注意力机制其实是最优的,没有任何问题。
那思路就清晰了,既然理解能力很强、生成方式很慢,那就保留它的理解,替换它的生成方式。具体做法是,把整个预训练好的自回归模型完全冻结,然后在它的每一层旁边,并排插入一个轻量的、可训练的"扩散注意力头"。一个模型,从此长出了两个"头"。

关键设计
到这里你可能会问:扩散头并行生成的那一批词,不还是会有"分布漂移"的老毛病吗?这正是 Orthrus 最巧妙的地方,模型内共识机制(Intra-Model Consensus)。
推理时分两步走。
第一步,扩散头基于那份高质量的共享缓存,一次性并行投射出 K 个候选 token(论文用 K=32)。
第二步,把这一整块候选词喂回那个被冻结的 AR 头,让它在一次前向传播里同时验证这些词。规则很简单:从左到右逐个检查,某个候选词只有恰好等于 AR 头自己会预测的那个词时,才被"接受",一旦出现第一个分歧,就在那里截断,用 AR 头的精确预测做修正,然后进入下一轮。
熟悉投机解码(Speculative Decoding)的读者会觉得似曾相识,草稿、验证、接受/拒绝。没错,思想是相通的。但传统投机解码需要一个独立的草稿小模型,要为它单独维护一份 KV 缓存,内存翻倍。而 Orthrus 的"草稿"和"裁判"是同一个模型、共享同一份缓存,所以额外内存开销是恒定的 O(1)(论文实测约 4.5 MiB,与序列长度无关)。
训练成本也极低,AR 主干全程冻结,只用 KL 散度把 AR 教师的完整预测分布"蒸馏"进扩散头,只需微调约 16% 的参数、不到 10 亿 token,单个 8×H200 节点 24 小时内搞定。
实验结果
研究者在 Qwen3 的 1.7B / 4B / 8B 三个尺寸上做了测试,覆盖数学推理和代码生成。衡量速度用的是"每次前向传播产出多少 token"(TPF),自回归基线上限就是 1。

因为有共识机制保底,Orthrus 的精度严格等于被冻结的 Qwen3-8B 基线。在和一众扩散模型的横向对比中,它全面领先:

和投机解码方法对比,Orthrus 的"平均接受长度"(每次前向传播能确认多少 token)也明显更高:

消融实验还揭示了两个有趣发现。
其一,单步投射比多步迭代去噪更优,多步去噪反而把吞吐砍掉 1.8 倍,这和扩散模型领域的常规直觉相反。
其二,用软的 KL 蒸馏比硬标签交叉熵推理更快,因为硬标签会让扩散头过拟合数据表层语法,而非内化 AR 模型偏好的因果轨迹。
总结
用一句话概括 Orthrus:给任何高质量的开源自回归模型,并排接一个轻量扩散头,就能在完全不损失生成质量的前提下,把推理速度提升数倍。
这也带来它最直接的局限,因为主干被冻结,Orthrus 的能力上限完全由基础模型决定。它不会修复底座模型的偏见、知识盲区或幻觉,你喂进去什么样的模型,加速后还是什么样,只是快了很多。
但对于"已经有了一个好模型,只想让它跑得更快"这个极其普遍的现实需求来说,这恰恰是最干净利落的答案。
