自回归模型一个字一个字往外蹦;
扩散语言模型把整句话同时涂黑,
再分几十步一起擦亮,甚至擦亮后,还能反悔重写。
先说清楚扩散模型到底在学什么。初期用于图片生成:
拿一张真实照片,逐步往上面撒噪声直到它变成纯雪花;再训练一个网络学会把这团雪花一步步还原回照片。
学会之后,从随机噪声出发就能「画出」新图。
取一份真实数据 x0,随机抽一个时刻 t,按调度表一次性加噪得到 xt; 让网络看着 xt 和 t,去猜这一步注入的噪声 ε 是什么。
前向是一步到位的闭式表达,反向没有闭式解,只能用学好的网络逐步近似:
| DDPM | 随机采样,T 步,经典基线 |
| DDIM | 确定式,步数可大幅压缩 |
| Flow Matching | 学直线路径,训练更稳 |
单步从纯噪声直接跳到数据太难。拆成 T 个小步,每步只需做「微小修正」, 学习任务变简单。代价就是推理慢——这也是后面 dLLM 只取几十步的原因。
图像像素是连续值,能直接加高斯噪声。文本 token 是离散的—— 「猫」加一点噪声还是「猫」吗? 这正是第 05 节要解决的问题。
同样是从随机数造出内容,GAN 靠对抗骗过裁判,扩散靠反复修掉噪声。 这个差别决定了它们各自失败在哪里、强在哪里。切换下面的标签页逐项看。
生成器 G 把噪声变成样本,试图骗过判别器;判别器 D 努力分辨真假。 两者在极小极大博弈中同时更新:
模型一次前向直接出结果。判据是「像不像真的」——一个相对的、动态的目标。
训练目标是预测这一步的噪声,是一个固定不变的回归任务:
生成时迭代 T 步逐步还原,判据是「离真实数据还有多少噪声」——与对手无关。
| 维度 | GAN | 扩散 |
|---|---|---|
| 损失曲线 | 非单调,震荡 | 单调下降 |
| 有无稳定信号 | 无可靠训练信号 | 每步都有监督 |
| 调试难度 | 高,失败常无迹可循 | 低,损失能反映进展 |
| 主要失败模式 | 模式崩塌、判别器压倒 | 收敛慢、引导病态 |
灰圈是真实数据分布,彩点生成样本。GAN 的对抗压力容易让生成器只抓住最能骗过判别器的一小撮模式, 其余模式被丢弃——这就是模式崩塌。
| 维度 | GAN | 扩散 | 更优 |
|---|---|---|---|
| 单样本锐度 | 极高,边缘锐利 | 高,但风格更均衡 | GAN |
| 分布覆盖度 | 易丢模式 | 覆盖更完整 | 扩散 |
| 多样性可控性 | 难调,常需牺牲多样性换质量 | 可用引导强度、步数调节 | 扩散 |
| 可控生成(条件) | 需专门设计条件机制 | Classifier-free guidance 等方案成熟 | 扩散 |
| 训练数据量需求 | 相对更省数据 | 通常需要更大数据与算力 | GAN |
| 局部编辑一致性 | 改动一处常引起全图变化 | 局部编辑更稳定可控 | 扩散 |
| GAN 推理 | 1 次前向,极快,适合实时 |
| 扩散推理 | T 次串行,慢 |
| 缓解手段 | DDIM / 蒸馏 / 一致性模型 |
| 当前差距 | 蒸馏后已明显缩小,但通常仍慢于 GAN |
与 dLLM 呼应:文本扩散也把「步数」作为可调旋钮, 用更少步换更低延迟——但不可能降到 GAN 的 1 步。
| 文生图 | Stable Diffusion、Midjourney 等主流系统 |
| 视频生成 | Sora 等,把扩散扩到时间维 |
| 语音合成 | 高保真 TTS 的主流路线之一 |
| 文本生成 | LLaDA、Mercury 等 dLLM |
| 实时人脸 / 风格化 | 直播滤镜、实时换脸 |
| 实时视频特效 | 需要毫秒级响应 |
| 超分辨率加速 | 单步出结果即可满足 |
| 算力受限端侧 | T 步串行成本难以承受 |
文本扩散长期被认为「做不过自回归」。转折在 2024—2025,工程化集中在 2026。
扩散在图像上大获成功,但直接把高斯噪声搬到文本上行不通。 这一节讲清障碍在哪、四条路线分别怎么解,以及为什么最后是「掩码」赢了。
像素值是 [0,255] 的实数。128 + 0.1×ε 仍是合法像素,
「加一点噪声」天然有意义——邻域即相似。
token 是从词表里挑一个。「猫」加 0.1 的噪声得到什么?
「猫」+ε 在词表里没有对应项——这不是优化问题,是定义问题。
把 token 映射成连续词向量,在嵌入空间跑标准高斯扩散,最后四舍五入回 token。代表:Diffusion-LM(2022)。
瓶颈:训练时处理连续值、生成时却要离散化, 「取整」这一步把训练与生成的连续性打断了。更麻烦的是,嵌入空间不是为扩散设计的—— 空间中相邻的点,未必是语义相近的词。
不直接用词向量,而把每个 token 编码成一串二进制位,把每个位当成 ±1 的连续值来扩散,采样后取符号恢复。
改进:避免了「任意词向量」的问题,配合自条件(self-conditioning)提升稳定性。 但仍要求「连续表示 → 离散」的最后一步转换。
不嵌入,直接在离散状态上定义马尔可夫破坏过程——用转移矩阵 Qt 规定「每个 token 以多大概率变成别的 token」。代表:D3PM(2021)。
关键实验结论:让 Q 基于词向量最近邻(相似词互变)的版本, 效果反而比「均匀随机变成词表里任意词」更差。结论很反直觉—— 词向量的相似度,并不构成扩散过程里有意义的「局部性」。
把「加噪」的离散对应物定义为替换成 [MASK]。
噪声越强 = 掩码率越高;全掩码 = 纯噪声。代表:LLaDA、MDLM。
为什么赢:① 无需嵌入空间,无取整断层; ② 目标与 BERT 的掩码语言建模同源,训练极其成熟; ③ 吸收态天然定义了「完全破坏」的终点,反向过程有明确的收敛目标。
拖动滑块看同一份数据在两种范式下怎么被破坏。注意本质差别:
迁移的关键动作只有一个:替换掉前向过程的定义。对比下面两组式子,注意「加噪」是怎么变的。
同一个补全任务。左边逐字生成,右边并行去噪——看清它们「信息增长的方式」有多不一样。
每步只产出 1 个 token,写出即定稿。串行、因果注意力。
每步同时预测所有位置,挑最自信的一批揭晓。双向注意力、可回改。
上一节确立了一件事:文本的「噪声」就是掩码替换。这一节把这个定义展开成完整的双向过程。
训练前先定义怎么破坏数据。对文本的破坏方式极简——按比例把 token 换成 [MASK]。
[MASK] 位置的原文。
每个位置被遮住的概率独立,且都等于 t。
t ~ U[0,1],让同一目标覆盖从「几乎没遮」到「全遮」的全部难度,
于是模型学会从纯噪声起步生成——这才是「扩散」而非「填空」。
这是整套机制的核心。从全掩码起步,反复「预测 → 挑最自信的揭晓」。 下面这个案例会走到第 5 步时主动推翻自己:把已经写出的字重新涂黑,再改掉。
一次前向,所有掩码位置同时得到词表分布。这是与自回归最本质的分野。
按最高概率排序,只揭晓最靠前的一小批。低置信位置留到后续步再定。
已揭晓的位置可以重新涂黑,让模型带着更充足的上下文重判。自回归做不到这一点。
LLaDA 到底在优化什么?并不神秘——就是掩码语言建模损失,加了一个 1/t 权重。
| θ | 模型参数 |
| t | 掩码率,每步从 U[0,1] 重新采样 |
| x0 | 干净的真实序列,长度 L |
| xt | x₀ 的加噪版本:每位独立以概率 t 变 M |
| M | 吸收态 [MASK];一旦变 M 就不再变 |
| Σi∈掩码位 | 只对被打码的位置求和 |
| 1/t | 权重:低掩码率下把单点损失放大 |
| pθ(·|·) | 模型在每个掩码位给出的词表分布 |
掩码率 t 越小,被遮的位置越少,参与求和的项也越少。若不加权, 「几乎没被遮」这类简单样本的梯度会被淹没,模型学不到低噪声区间的还原能力。
归一化之后,每个噪声等级获得同等权重——而低噪声正是反向生成最后几步的战场。
机制讲完了,看它现在进化到哪。dLLM 这一年从研究走进了工程,四条主线最值得关注。
不整句并行,而是把序列切成固定大小的块(典型 32 token):块内并行去噪、块间按序推进。 这样既保留了并行的速度,又拿回了自回归的长序列稳定性。
从零预训练成本太高。2026 的主流做法是拿已训练好的自回归模型做初始化, 再用扩散目标继续训练——复用同一套 transformer 主干,成本大幅下降。
| DiffuLLaMA | 证明 AR 模型可转换 |
| Dream 7B | AR 初始化 + 针对性训练,开源最强 |
| LLaDA 2.0 | 多阶段转换,验证百 B 级可行 |
LLaDA MoE v2 系统刻画了 MoE 版 dLLM 的 scaling 行为, 发现它的最优超参与自回归并不相同:
| 批大小 | 最优值随算力增长更快 |
| 学习率 | 随算力衰减更迅速 |
| 配比 | 略偏向数据侧(token 预算增长更快) |
采样轨迹本身成了优化对象——把每一步去噪当作决策来强化学习:
| 轨迹感知 RL | 对整个去噪轨迹做奖励优化 |
| 揭晓顺序 | 把「先揭哪个」作为 RL 动作空间 |
| Fast-dLLM | 免训练加速:KV cache + 并行解码 |
| 块级 KV cache | 为双向注意力设计近似缓存(ICLR 2026) |
| 规模 | 26B MoE(4B 激活) |
| 基座 | Gemma 4 26B A4B |
| 块大小 | 256 token 一次性并行生成 |
| 推理栈 | 首个被 vLLM 原生支持的 dLLM |
| 速度 | GPU 上最高约 4× 提速 |
| 许可 | Apache 2.0,开放权重 |
定位很明确:不是替代自回归。Google 自己的说法是 「自回归 Gemma 4 仍是高质量生产输出的标准」,DiffusionGemma 面向 延迟敏感的本地交互场景——行内编辑、快速迭代、非线性文本。
技术上它采用块自回归扩散:256 token 块内并行去噪,块完成后提交 KV cache, 再以新画布处理下一块——把「并行的速度」和「串行的稳定」缝在一起。
扩散不是全面替代。优势很具体,短板同样具体。
| 维度 | 自回归 AR | 扩散 dLLM | 谁更优 |
|---|---|---|---|
| 生成延迟 batch 1~4 |
步数 = token 数,串行 | 步数与长度解耦,并行揭晓 | 扩散 2~10× |
| 高并发吞吐 | KV cache 复用成熟,批次堆叠效率高 | 并行去噪的多步特性在高 batch 下优势收窄 | 自回归更稳 |
| 注意力 | 因果掩码,只能看左侧 | 双向,每个位置可看全局 | 扩散 |
| 纠错能力 | 写出即定稿,错误沿链条放大 | Remasking 允许回改已揭晓位置 | 扩散 |
| 训练成熟度 | 数年工程积累,配方极稳定 | 仍在演进,超参与调度技巧影响大 | 自回归 |
| 流式输出 | 天然逐字流式,体验好 | 整块揭晓,增量流式需额外设计 | 自回归 |
| 生态与工具链 | vLLM 等推理栈高度优化 | 专用推理栈仍在补齐 | 自回归 |