引言
文本扩散模型是大型语言模型 (LLMs),它们通过使用扩散来“去噪”一组生成的 token 来生成文本,而不是像自回归 (AR) LLMs 那样一次预测一个下一个 token。扩散技术现在在图像生成模型(如 Midjourney)中很常见,但在语言模型中迄今为止不太成功,主要由于图像像素和文本之间的数据类型差异。
最近,文本扩散模型越来越受到关注,因为一些论文,如 LLaDA 和 SEDD 论文,展示了不同种类的文本扩散方法在某些情况下具有更快、更准确和更灵活的模型潜力。本文解释了文本扩散模型的架构差异、优势以及潜在用例。
关键要点
-
迄今为止最成功的文本扩散模型使用 token masking,而不是高斯噪声,来并行迭代预测输出 token。
-
在大多数情况下,文本扩散模型的效果不如自回归 LLMs,但它们在填补空白任务和需要大输出且吞吐量更快的任务中显示出一些潜力。
-
LLaDA 和 SEDD 是两个最受欢迎的演示,而 LLaDA 可在 Hugging Face 上下载。
扩散模型在架构上的差异
文本扩散模型主要有三类。第一类在 token 级别的嵌入上使用连续扩散(Diffusion-LM、Genie)。第二类将文本编码为压缩的语义潜在表示,这些是含义的抽象、高级表示。然后在该潜在空间中应用扩散,最后将潜在表示解码回文本。第三类通过直接掩码 token 来使用离散扩散(LLaDA、D3PM、SEDD)。第三种范式在报告的结果中目前表现最佳,因此这里重点讨论它。
这种文本扩散方法与图像扩散模型不同,它使用 token masking 作为噪声,而不是 Gaussian noise。它仍然是真正的扩散,只是适应了离散数据(文本)。模型目前显示,对于离散数据(如语言),masking 更有效,因为它将文本视为 categorical data,允许模型填补空白,而 Gaussian noise 更适合连续数据,如图像像素。
文本扩散模型的预训练步骤与 autoregressive models 有一些相似之处。文本扩散模型在预训练期间也不需要 labeled data。只需大量 raw text data。决定一个最大长度(即 4096 tokens),并掩码一定百分比的 tokens。以 LLaDA 预训练为例,它从 [0,1] 中均匀采样 t,然后以概率 t 独立掩码每个 token。被选中掩码的 tokens 将被替换为 <MASK> token。对于一部分训练步长,序列长度在 1 到 4096 之间随机采样并填充,以使模型接触各种大小的序列。对于 LLaDA,它以序列长度 4096 进行训练,其中 1% 的预训练数据被采样为从 [1,4096] 均匀分布的随机长度,以实现 variable-length robustness。
然后将整个序列输入到基于 transformer 的模型中,将所有输入 embedding vectors 转换为新的 embeddings。然后对每个 masked token 应用 classification head 来预测原始 token,loss 在 masked positions 上平均 cross-entropy。在 LLaDA 中,predictor 使用 non-causal attention,因此可以关注整个序列来进行 masked-token prediction。这种双向设置相对于 causal AR decoding 改变了计算行为,LLaDA 还报告在其设置中与 key-value (KV) caching 不兼容,同时使用 vanilla multi-head attention。参考一下,LLaDA 8B 预训练计算量报告约为 0.13 百万 H800 GPU 小时。
Supervised fine-tuning (SFT) 模仿预训练。prompt 保持不变,仅在 response 中随机掩码 tokens,模型基于 prompt 和 masked response 预测那些缺失的 response tokens。对于 LLaDA 8B,supervised fine-tuning 在 450 万 prompt-response 对上进行了 3 个 epoch。
此时,模型可以预测 masked text,但 inference 必须仅从 prompt 生成完整的 response。为此,在 prompt 旁边初始化一个 <MASK> tokens 的序列,并并行预测 masked tokens。LLaDA 将 total reverse sampling steps 和 initial response length 视为明确的 inference hyperparameters,创造 quality-versus-speed 的权衡。默认使用均匀分布的 timesteps;从时间 t 步进到 s 时,它重新掩码预期比例 s/t 的 predicted tokens,实践中使用 low-confidence remasking 而非纯随机 remasking。生成后,end-of-sequence (EOS) token 之后的 tokens 被丢弃。
先前未掩码的 tokens 如果 confidence 低,可以再次被掩码,从而允许更新先前生成的 tokens。这是文本扩散模型相对于 autoregressive models 的主要优势之一。
为什么使用 Text Diffusion?
text diffusion 模型在三个主要领域显示出潜力。首先,在某些设置下,与 autoregressive 模型相比,它们对于较长文本具有更快的推理速度,因为它们不需要一次预测单个 token。它们通过多轮并行预测所有 token。其次,在某些设置下,它们可能产生更好的输出,因为 token 可以替换字符串中的任意位置。而如果 autoregressive 模型生成了错误的 token,它无法返回并更改它。
最后,prompt 的灵活性更高。Prompt 不需要仅作为 autoregressive 模型中的前缀。Prompt 可以是整个文档,中间缺少文本。这使得它能够支持 gap-fill 任务,例如完成 PDF 表单、重写中间段落或代码块。
text diffusion 模型不太可能完全取代 autoregressive 模型,因为它们通常需要更多的计算资源,而且尚未显示出在更广泛的场景下优于 autoregressive 模型。Diffusion decoding 通常需要多次去噪迭代,这可能会根据步数和实现方式增加延迟。
下面,你可以看到 LLaDA 2.0 Flash 在基准测试中的得分与 Qwen3-30B 和 Ling-flash-2.0 相当,尽管 LLaDA 2.0-Flash 比其他两个模型快得多,其每秒 token 吞吐量超过 380 TPS,而 Ling-flash 和 Qwen3-30B 分别为 256 和 237,根据 LLaDA 论文所述。
常见问题解答 (FAQ)
可以结合 diffusion 和 autoregressive 模型吗?
可以。Hybrid 和 semi-autoregressive 方法结合了两者的优势,例如并行生成 token 块,然后使用 autoregressive decoding 精炼它们。这些设计仍在发展中,但旨在平衡质量、延迟和可控性。
text diffusion 模型目前可用还是仅为实验性?
目前有可用的模型。LLaDA 2.0 系列是开始使用 open-weight text diffusion 模型的最佳起点之一。大多数选项相对于主流 autoregressive 模型仍处于早期阶段,但适合实验和基准测试。
text diffusion 模型目前最适合哪些任务?
text diffusion 模型目前在结构化编辑和 gap-fill 风格的工作流中表现最强,例如填充缺失部分、重写文档中间的片段,以及全局一致性重要的 constrained generation。它们在并行去噪能抵消 decoding 瓶颈的较长输出中也很有前景。
text diffusion 模型很可能取代 autoregressive LLM 吗?
它们不太可能完全取代 autoregressive 模型。它们很可能在特定用例中流行起来,但目前最适合作为专用模型而非通用替代品,这种情况未来可能还会持续。
结论
text diffusion 模型是 autoregressive decoding 模型的有意义的替代方案,适用于特定工作流,尤其是 gap-filling 和迭代精炼有价值的场景。虽然它们尚未成为通用 LLM 任务的默认选择,但最近的基于 masking 的方法如 LLaDA 和 SEDD 显示,当适应离散 token 时,diffusion 可以实用于语言处理。
在本教程中,你回顾了 text diffusion 架构的工作原理、为什么基于 masking 的方法是当前最强方法,以及这些模型在哪些地方能优于传统的 next-token decoding。随着这些系统的不断成熟,它们很可能成为生产管道中 autoregressive 模型的重要补充,这些管道优先考虑可控性和编辑灵活性。
相关链接
-
Mistral 3 模型 on
-
使用 Python 构建并行 Agentic 工作流
-
在配备 AMD Instinct MI300X GPU Droplet 的 vLLM 上运行 gpt-oss 120B