打破自回归:从噪声中还原语义

范式的颠覆:生成不一定要“一个一个蹦词”

在项目 01 到 19 中,我们所有的讨论都建立在**自回归(Autoregressive)**范式之上:模型总是根据前文预测下一个词。这种模式在处理长文本时极其强大,但也存在两个天然缺陷:

  1. 推理慢:无法并行生成,必须逐字产出。
  2. 缺乏全局规划:模型只能看到过去,无法根据未来预定的结局来优化当前的表达。

项目 20 探索的是一种完全不同的路径:扩散语言模型(Diffusion LM)。它尝试将 Stable Diffusion 在图像领域取得的巨大成功,复制到离散的文本空间中。

第一阶段:扩散模型的数学直觉——加噪与去噪

扩散模型的核心是一个两阶段过程:

  1. 前向过程(Forward Process / Noising): 在原始文本的 Embedding 中逐渐加入高斯噪声。随着步数增加,文本向量变得越来越乱,最终变成纯粹的随机噪声。
  2. 逆向过程(Reverse Process / Denoising): 这是模型真正学习的部分。它接收一段充满噪声的向量,尝试预测并减去这些噪声,从而一步步还原出清晰的文本 Embedding。

离散与连续的鸿沟

在图像中,像素是连续的;而文本是离散的 Token。为了在文本上跑扩散模型,我们通常有两种做法:

  • 连续扩散(Continuous Diffusion):在词向量空间(Embedding Space)进行扩散。
  • 离散扩散(Discrete Diffusion):直接在 Token ID 层面通过转移矩阵(Transition Matrix)进行“掩码(Mask)”扩散,类似于极其复杂的完形填空。

第二阶段:非自回归生成的优势

为什么我们要这么折腾?

  • 并行生成:在推理时,扩散模型对整段序列进行并行去噪。虽然它需要多次迭代(Steps),但每次迭代都在处理所有位置。
  • 受控生成(Controllability):这是 Diffusion LM 的杀手锏。由于它是全局生成的,我们可以非常容易地在生成过程中加入约束(Control)。例如:“生成一段话,必须包含‘苹果’和‘牛顿’,且长度正好为 20 个字”。在自回归模型中,这需要极其复杂的 Prompt Engineering 或搜索算法;但在扩散模型中,这只是在去噪过程中加入一个引导梯度(Guidance)。

第三阶段:迭代式优化与细化

扩散模型的生成过程更像是一个“石雕师”在雕刻石块:

  1. 第一步:勾勒出大致的轮廓(初步的语义方向)。
  2. 中间步:填充细节(确定具体的动词和名词)。
  3. 最后步:精修表面(确保语法正确和拼写无误)。

这种渐进式的生成方式,使得模型在处理结构化任务(如按特定句式写诗)时,具有天然的优势。

第四阶段:实验与实现挑战

在本项目中,你需要构建一个极简的连续空间扩散实验:

  1. Embedding 加噪器: 实现一个函数,根据时间步 $t$ 对 Embedding 矩阵施加不同程度的噪声。
  2. 去噪网络(U-Net 或 Transformer): 设计一个接收 (noisy_embedding, timestep) 并预测 noise 的网络。
  3. 采样循环: 实现 DDIM 或 DDPM 采样算法,观察从随机正态分布向量一步步变成有意义词向量的过程。

核心难点:Rounding 问题

扩散模型输出的是连续向量,最后如何将其变回离散的 Token?这涉及到 Rounding(舍入) 策略。如果模型预测的向量刚好在两个词的 Embedding 边界,它可能会产生语法逻辑上的模糊。

总结与展望

扩散语言模型目前仍处于实验室阶段,其在大规模生成质量上尚不及 GPT 系列。但它为我们提供了一个全新的视野:生成不再是单向的线性累加,而是全局的概率演化

如果你关注受控生成、多模态融合(如根据特定布局生成文本)或非线性文案创作,项目 20 的 diffusion 思维将为你打开一扇通往非自回归世界的窗户。理解了扩散,你就能明白“噪声”中其实蕴含着最深刻的语义结构。

版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:项目 20:文本的扩散:扩散语言模型(Diffusion LM)初探

本文链接:https://www.sshipanoo.com/blog/ai/llm-roadmap/lab-20-diffusion-lm/

本文最后一次更新为 天前,文章中的某些内容可能已过时!