# 扩散语言模型

拉普拉斯的迷你世界 · 图版 F64 · 人工智能

> 从左到右写，一个词元算一次；扩散语言模型先排满空位，每轮同时猜、留下最有把握的，几轮填满；轮数越少越快，也越容易拼错。

- 可交互的模型：https://world.lapla.si/zh/diffusionlm/
- 嵌入页：https://world.lapla.si/embed/zh/diffusionlm/
- English：https://world.lapla.si/en/diffusionlm/
- 更新于：2026-11-05

## 01 两种写法

大多数聊天模型从左到右写：每做一次前向计算，写出下一个词元。2025 年，有几种语言模型换了写法：先把整段回答排成空位，再一轮一轮同时填。它们叫扩散语言模型，比如 LLaDA 8B、Inception Labs 的 Mercury 和 Google DeepMind 的 Gemini Diffusion。

台上用木活字排了两版渡船传单，每个字都由本页的同一个玩具模型来定。后面的铜盘按次序排，一个接一个，旁边的计数器排一个记一次；前面的铁版框按扩散的办法，一轮填一批，旁边的表盘记轮数。每版 48 个字：后面算了 48 次，前面 8 轮。

*每版 48 个字 · 从左到右：48 次前向计算 · 扩散：8 轮*

## 02 按次序，一个接一个

从左到右的语言模型叫自回归模型。每一次前向计算，它读进前面写好的全部词元，算出下一个词元的概率，挑一个写下，再接着算下一个。写 n 个词元就要算 n 次，一次接一次：下一个要等上一个写完。

铜盘里的这一版就是这样排的：排好一个，计数器加一，再排下一个。活字的字面是反刻的，所以从台前看，每行从右往左排，第一行在最里面，印到纸上才是正的。

绕开“一次一个”的另一种办法，是让小模型先猜几个、大模型一次核对，见“推测解码”这一页。

*48 个字 · 48 次前向计算 · 每次一个*

## 03 先排满空位

扩散语言模型先定下回答有多长，在每个位置放一个特殊的掩码词元，意思是：这里有一个词元，还没定。LLaDA 把回答的长度当作事先设好的参数。

排字工有个老办法：缺某个字时，先倒插一个同样宽的字占住位置，字脚朝上，等有了对的字再换上。前面这一版的空块就是这样的倒字：48 个位置全空着，表盘指着 0。

图像扩散从一团噪声开始，一步步去掉噪声；这里的“噪声”是掩码：加噪是把词元换成掩码，去噪是把掩码填回词元。图像和视频的那一种，见“视频扩散模型”这一页。

*48 个空位 · 0 轮 · 每个空位是一个掩码词元*

## 04 每个空位都猜一个

每一轮，模型读整页：已经定下的字和所有空位，左边右边都看得见，因为它用的 Transformer 不加因果掩码。一次前向计算，它给出每个空位上每个词元的概率；取最可能的那个作为猜测，那个概率就是它的把握。

台上，每个空块上方都浮起一个木字，就是这一轮的猜测。这一页的“模型”是本页的玩具：它只读过几张这样的传单，按读过的次数算出每个位置上各个字的比例。真正的扩散语言模型用神经网络，从上万亿个词元里学这件事。

*1 次前向计算 · 48 个空位各一个猜测 · 各带一个把握*

## 05 留下最有把握的

猜完以后只留下一部分。LLaDA 默认留下把握最大的那些，其余的换回掩码，叫“低置信度重掩码”。每轮留几个是事先排好的：8 轮写 48 个，每轮 6 个。换回去的位置下一轮再猜，那时它能看见更多已经定下的字。在这种做法里，定下的字不会再改。

也可以随机挑要留下的。LLaDA 论文里，回答长度和步数都是 256 时，留最有把握的，在 GSM8K 数学题上得 70.0 分；随机留下，只有 21.3 分。

*8 轮 · 每轮留 6 个 · 其余换回掩码 · GSM8K：留最有把握的 70.0，随机 21.3（256 步）*

## 06 学的是填空

训练像做填空题：拿一段真实的文字，随机抽一个比例 t（0 到 1 之间），每个词元各以概率 t 换成掩码，让模型猜被遮住的词元，只在遮住的位置算错。t 小，是几乎写完的一页；t 接近 1，是几乎全空的一页。所以从全空到只差一个字，每一步它都练过。

LLaDA 的损失还要乘以 1/t；论文写明，这样的损失是负对数似然的上界，所以它是一个生成模型。BERT 也做填空，但只用固定的比例。LLaDA 8B 从头训练，读了 2.3 万亿个词元，用了 13 万⁠个 H800 GPU 小时，再用 450 万对问答微调。

*随机遮住比例 t 的词元 · 只在遮住的位置算损失 · 台上 t = 15%、50%、85%*

## 07 轮数少，字会拼错

8 轮写 48 个，每轮 6 个；1 轮写完，就是 48 个同时定下。同一轮里定下的字彼此看不见：每个空位各取各最可能的字，合在一起可能不搭。研究扩散模型提速的论文举过例子：两个词的扑克牌型可以是 high card，也可以是 full house，各取各的，就可能拼出 high house。

台上这一页用 1 轮写完，有 2 行拼出了它从没读过的句子（HUD 里红色的行）。LLaDA 的作者说，步数等于回答长度、每步只定一个词元时效果最好；论文表格里的成绩都是这样得到的。少用几轮会快，但会掉分。

*1 轮：48 个同时定下，2 行拼错 · 8 轮：没有拼错 · LLaDA 的表格成绩：每步一个词元*

## 08 快在哪里

扩散语言模型省的是次数：这一页 48 个字，8 次前向计算。可每一次都要把整页连同问题重读一遍。从左到右的模型有 KV 缓存，前面算过的不用重算；这种扩散模型没有。所以次数少不等于算得少：这一页，扩散一共算了 8 × 48 = 384 个位置，从左到右只算 48 个。

厂商报告的速度：Inception Labs 说，Mercury Coder Mini 在 NVIDIA H100 上每秒约 1109 个词元（2025 年 2 月，第三方 Artificial Analysis 测的 API 速度；同一测试里 Gemini 2.0 Flash Lite 每秒 201 个）。Google DeepMind 说，Gemini Diffusion 采样每秒 1479 个词元，不含 0.84 秒的开销；它还是实验性的演示。这些数字由各家在不同的芯片、不同的题目上测得，不能直接相比。

开源的扩散语言模型，实际速度常常还不如自回归模型。Fast-⁠dLLM 给 LLaDA 补上近似的缓存，只在把握够大时一次多定几个，在 A100 上快到原来的约 8 倍，GSM8K 分数从 79.3 变成 78.5。

*这一页：扩散 8 次、算 384 个位置 · 从左到右 48 次、48 个 · 厂商速度：Mercury Coder Mini 约 1109 词元/秒（H100）、Gemini Diffusion 1479 词元/秒（不含开销）*

## 09 两边都看得见

从左到右的模型写到某处，只看得见左边。扩散模型每一轮都看整页，中间缺一段时，可以同时看着前后来填。台上这一页，第二、三行中间空着，两头已经排好，模型照着两头的字填中间。

LLaDA 的论文还比了背诗：在作者自建的 496 对中文诗句上，给一句、说出上一句，LLaDA 8B 得 45.6 分，GPT-⁠4o 得 34.3 分；说出下一句时，LLaDA 51.8 分，GPT-⁠4o 82.7 分。这是一篇论文、一组诗句上的结果。

*两头已知，填中间 · 4 轮 · 倒着背诗：LLaDA 45.6、GPT-⁠4o 34.3 · 顺着背：51.8、82.7*

## 10 还差在哪里

回答的长度要先定下，LLaDA 把它当作参数，多出来的位置填结束符。轮数少会拼错，轮数多就慢；还没有现成的 KV 缓存。

比成绩，LLaDA 8B 的基础模型和同规模的 LLaMA3 8B 互有胜负：MMLU 65.9 对 65.4、GSM8K 70.3 对 48.7，PIQA 73.6 对 80.6、MBPP 40.0 对 48.8。在 Google DeepMind 自己的表里，Gemini Diffusion 写代码和 Gemini 2.0 Flash-⁠Lite 相近，GPQA Diamond 40.4% 对 56.5%、Global MMLU 69.1% 对 79.0% 都落后。

掩码扩散只是扩散语言模型的一种：也有在连续的词向量上去噪的，有把词元换成随机词元的，还有用“分数熵”训练的。它们都还是按概率预测词元。

*长度先定 · 轮数少会拼错 · 没有现成的 KV 缓存 · 成绩互有胜负*

## 11 拆开来看

台上：铁版框、木衬和楔子锁住前面这一版，表盘记轮数；后面是铜盘里按次序排的一版，计数器记次数。字是枫木活字，字面反刻；空块是倒插的字，字脚朝上。

*版框 · 木衬和楔子 · 扩散的一版 · 轮数表 · 铜盘 · 从左到右的一版 · 计数器*

## 12 实验台

选一个轮数，看这一版怎样填满：1 轮是 48 个同时定下，48 轮是每轮一个。打开“随机留下”，每轮随机挑要留下的猜测，而不是留最有把握的；“再排一遍”换一组随机次序。

这里的模型是本页的玩具：每一行它只读过三种说法。读数只数前向计算的次数，不是运行时间。

*玩具模型 · 只数前向计算的次数 · 不是运行时间*

**试一试**：在实验台上选 1 轮：48 个字同时定下，有几行拼出了模型没读过的句子？换成 8 轮呢？

## 模型省略了什么

台上的木活字、版框、铜盘、表盘和计数器是本页的模型。传单只有 6 行；“模型”每一行只读过三种说法，用读过的次数当概率，是本页的玩具，不是真的语言模型，它也看不见别的行。一个字代表一个词元；真实模型的词元是一个词或词的一部分。台上的猜测一个个浮起、落下，是为了看得见；真实模型一次前向计算就给出所有空位的概率。活字做成同一宽度，真实的活字宽窄不一。

## 几个容易误会的地方

扩散语言模型不是“并行思考”，也不是像人一样改稿：它每轮按概率给每个空位一个词元，再按规则留下一部分；在 LLaDA 这种做法里，定下的字不再改。“更快”要看条件：轮数、回答长度、硬件、有没有缓存；厂商的速度是自报的，各在各的芯片上测，不能直接比较。LLaDA 论文表格里的成绩是每步只定一个词元得到的。倒着背诗的结果只来自一篇论文、一组中文诗句。掩码扩散只是扩散语言模型的一种。排字工的倒字只是一个比方：倒字之后换上的是对的字，模型填的是它认为最可能的字。

## 常见问题

### 扩散语言模型是什么？

大多数聊天模型从左到右写：每做一次前向计算，写出下一个词元。2025 年，有几种语言模型换了写法：先把整段回答排成空位，再一轮一轮同时填。

见：[01 两种写法](https://world.lapla.si/zh/diffusionlm/#whole)

### 自回归语言模型怎样写字？

从左到右的语言模型叫自回归模型。每一次前向计算，它读进前面写好的全部词元，算出下一个词元的概率，挑一个写下，再接着算下一个。写 n 个词元就要算 n 次，一次接一次：下一个要等上一个写完。

见：[02 按次序，一个接一个](https://world.lapla.si/zh/diffusionlm/#inorder)

### 扩散语言模型每一轮留下哪些词元？

猜完以后只留下一部分。LLaDA 默认留下把握最大的那些，其余的换回掩码，叫“低置信度重掩码”。每轮留几个是事先排好的：8 轮写 48 个，每轮 6 个。

见：[05 留下最有把握的](https://world.lapla.si/zh/diffusionlm/#keep)

### 扩散语言模型怎样训练？

训练像做填空题：拿一段真实的文字，随机抽一个比例 t（0 到 1 之间），每个词元各以概率 t 换成掩码，让模型猜被遮住的词元，只在遮住的位置算错。t 小，是几乎写完的一页；t 接近 1，是几乎全空的一页。

见：[06 学的是填空](https://world.lapla.si/zh/diffusionlm/#learn)

### 扩散语言模型一定更快吗？

扩散语言模型省的是次数：这一页 48 个字，8 次前向计算。可每一次都要把整页连同问题重读一遍。从左到右的模型有 KV 缓存，前面算过的不用重算；这种扩散模型没有。

见：[08 快在哪里](https://world.lapla.si/zh/diffusionlm/#speed)

## 资料来源

1. [S. Nie 等（2025）：Large Language Diffusion Models，arXiv:2502.09992（LLaDA：掩码扩散的 8B 语言模型；训练、采样、重新掩码；逆向诗句）](https://arxiv.org/abs/2502.09992)
2. [J. Austin 等（2021）：Structured Denoising Diffusion Models in Discrete State-⁠Spaces，NeurIPS 2021（D3PM：把词元换成掩码的“吸收态”加噪）](https://arxiv.org/abs/2107.03006)
3. [S. S. Sahoo 等（2024）：Simple and Effective Masked Diffusion Language Models，NeurIPS 2024（MDLM：训练目标是不同掩码比例下填空损失的加权和）](https://arxiv.org/abs/2406.07524)
4. [Inception Labs（2025）：Mercury: Ultra-⁠Fast Language Models Based on Diffusion，arXiv:2506.17298（厂商报告的速度）](https://arxiv.org/abs/2506.17298)
5. [Google DeepMind：Gemini Diffusion（实验性模型的介绍页；厂商报告的速度和评测）](https://deepmind.google/models/gemini-diffusion/)
6. [C. Wu 等（2025）：Fast-⁠dLLM，arXiv:2505.22618（扩散语言模型没有 KV 缓存；一次定下太多词元会伤质量）](https://arxiv.org/abs/2505.22618)

## 数据

Masked diffusion for language after S. Nie, F. Zhu, Z. You, X. Zhang, J. Ou, J. Hu, J. Zhou, Y. Lin, J.-R. Wen and C. Li, “Large Language Diffusion Models” (LLaDA; arXiv:2502.09992); J. Austin, D. D. Johnson, J. Ho, D. Tarlow and R. van den Berg, “Structured Denoising Diffusion Models in Discrete State-⁠Spaces” (D3PM; NeurIPS 2021); S. S. Sahoo et al., “Simple and Effective Masked Diffusion Language Models” (MDLM; NeurIPS 2024). Speeds as reported by Inception Labs (Mercury, arXiv:2506.17298) and Google DeepMind (Gemini Diffusion); faster sampling and the cost of decoding many tokens at once after C. Wu et al., “Fast-⁠dLLM” (arXiv:2505.22618). The handbill, its wood type, the chase, the galley and the counters are this page’s model, not a laboratory’s; the toy model that fills them knows only the lines listed in docs/plates/diffusionlm/computed.py. Material presets and the model kit as on the site’s other model plates (public/looks/CREDITS.md).

## 许可 CC BY-NC 4.0

本页的文字、图片和模型采用 CC BY-NC 4.0 许可：可以免费用于教学和其他非商业用途，可以修改，请注明出自 world.lapla.si。上面列出的第三方素材仍按各自的许可。

https://creativecommons.org/licenses/by-nc/4.0/deed.zh-hans

## 引用这幅图版

拉普拉斯的迷你世界，图版 F64《扩散语言模型》，https://world.lapla.si/zh/diffusionlm/，CC BY-NC 4.0，2026-11-05 更新。
