Diffusion Language Models
扩散语言模型通过在多个去噪步骤中并行解开大量 token 来生成文本。涵盖掩码扩散、LLaDA 和 Mercury。
扩散语言模型从一个完全损坏的序列(通常全是掩码令牌)开始生成文本,并在一系列去噪步骤中并行细化多个位置;而传统的大型语言模型(LLM)会从左到右每次生成一个token。这种方法将图像扩散模型背后的理念应用到离散文本:前向过程逐渐破坏序列,Transformer则学习如何逆转这一过程。该方法于 2025 年达到生产规模。LLaDA是一种从头训练、拥有 80 亿参数的扩散模型,在上下文学习方面可与 LLaMA3 8B 相媲美;Inception Labs 的 Mercury Coder 模型在独立测试中运行于 NVIDIA H100 GPU,速度分别达到每秒 1,109 和 737 个令牌;Google DeepMind 的实验性 Gemini Diffusion则公布了每秒 1,479 个令牌的平均采样速度。
掩码扩散的工作原理#
LLaDA 和大多数其他近期模型使用掩码扩散,也称吸收态扩散。前向过程会选取一个介于 0 和 1 之间的噪声水平 t,并以 t 的概率将每个令牌替换为掩码符号:
import torch
torch.manual_seed(6)
tokens = ["the", "cat", "sat", "on", "the", "warm", "mat", "by", "the", "door"]
# Forward process of a masked diffusion LM: at noise level t, each token is masked with probability t
for t in [0.25, 0.5, 0.75, 1.0]:
masked = torch.rand(len(tokens)) < t
noisy = ["[M]" if m else token for token, m in zip(tokens, masked)]
print(f"t={t:.2f}: {' '.join(noisy)}")这次运行会依次打印被掩码 2、5、8 个词,最终全部 10 个词都被掩码的句子。训练时,不带因果掩码的 Transformer 会读取这样一个序列,并一次预测所有被掩码的令牌;LLaDA 对这些位置使用交叉熵损失函数,并按 1/t 加权。这个目标将 BERT 的掩码语言建模推广到所有掩码比例;BERT 始终预测 15% 的令牌。该目标还为模型的对数似然设定了界限,因此得到的是一个完整的生成模型。
生成过程从 t = 1 开始反向运行。每一步都会预测所有被掩码的位置,确定置信度最高的预测,并将其余位置重新掩码;LLaDA 将这种策略称为低置信度重新掩码。较长的输出通常按块生成,这种方法被形式化为块扩散,因此可以缓存较早的块,而且无需预先固定输出长度:
从 D3PM 到生产级模型#
Google 的 D3PM于 2021 年定义了离散状态上的扩散,其中包括如今多数模型使用的吸收掩码状态。Stanford 的 Diffusion-LM于 2022 年对连续词语嵌入进行扩散,以引导生成文本满足句法和主题约束。Aaron Lou、Chenlin Meng 和 Stefano Ermon 提出的 SEDD获得了 ICML 2024 最佳论文奖;它将早期文本扩散模型的困惑度降低了 25% 到 75%,并且优于 GPT-2。随后,LLaDA 展示了这种方法可以扩展到数十亿参数;由于它能双向读取上下文,因此在测试从左到右模型逆转诅咒的倒序诗歌补全任务中,表现超过 GPT-4o。Inception 通过兼容 OpenAI 的 Chat Completions API 提供 Mercury,因此Ultralytics LLM 接口可以使用 api="chat.completions" 和 Inception 的 base_url 调用它,例如将 YOLO26检测结果转换成文字报告。
优势与权衡#
并行去掩码所需的前向传递次数少于令牌数量,这正是它速度快的原因;每一步确定的令牌越多,生成质量就越低。同一步确定的令牌是独立采样的,因此一次确定太多令牌可能会产生彼此不协调的组合。每一步还会双向关注整个块,因此成本高于带有KV 缓存的单次自回归步骤。双向上下文使填充和编辑变得自然:模型可以利用文本两侧的内容补全函数或文档中的空缺,因此适合代码补全以及用于编辑现有文件的智能体编程工具。
扩散语言模型与相关术语#
- 自回归文本生成: 根据左侧已有令牌预测每个令牌,每个令牌需要一次前向传递。
- 图像扩散: Stable Diffusion和其他潜空间扩散模型会向连续像素或潜变量添加高斯噪声,并经常使用扩散 Transformer(DiT)进行去噪。
- 扩散强制: 为每个令牌设置各自的噪声水平,将下一个令牌预测与全序列扩散结合起来,主要用于视频和规划。
- 推测解码: 先用较小的模型起草多个令牌,再由大型模型一次性验证,从而加速自回归模型,同时保持其输出分布不变。










