导语:扩散模型让AI学会了画画(Midjourney)、做视频(Sora),但为什么它在文本生成领域一直不如GPT?答案藏在"连续"与"离散"的数学鸿沟中。2023年,一篇来自斯坦福的论文提出了SEDD(Score Entropy Discrete Diffusion),成功跨越了这道鸿沟,并获得了ICML 2024最佳论文奖。今天,这项技术已经商业化,成为Mercury 2大模型的核心引擎。
| 特性 | 图像 | 文本 |
|---|---|---|
| **数据类型** | 连续(像素值0-255) | 离散(token索引整数) |
| **数学工具** | 微积分、梯度下降 | 组合数学、概率分布 |
| **扩散操作** | 加高斯噪声(自然) | 加噪声?如何定义? |
扩散模型的核心是学习分数函数(score function):
分数函数 = ∇ₓ log p(x) (概率密度的梯度)
在连续空间(图像),这个梯度很好计算。但在离散空间(文本),梯度不存在——因为token是整数,不能求导。
这就像:
传统方法试图学习 p(x) —— 句子x的概率。
SEDD说:别学绝对概率了,学相对概率吧!
SEDD学习目标:s_θ(x)_y ≈ p(y) / p(x)
意思是:从句子x变成句子y,概率怎么变化?
为什么比率更好?
因为比率消掉了归一化常数Z:
p(x) = e^{f(x)} / Z
p(y) / p(x) = e^{f(y)} / e^{f(x)} ← Z被约掉了!
对于语言模型,Z的计算量是天文学数字(50257^1024,比宇宙原子数还多),根本无法计算。SEDD巧妙地绕过了这个问题。
在连续空间,分数函数指向概率密度增长最快的方向。
在离散空间,Concrete Score扮演了类似角色:
例子:
当前句子x:"猫坐在垫子上"
邻居y₁:"狗坐在垫子上" ← 第一个词变了
邻居y₂:"猫站在垫子上" ← 第二个词变了
邻居y₃:"猫坐在椅子上" ← 最后一个词变了
Concrete Score告诉你:跳到哪个邻居最好?
Cross Entropy(交叉熵)是分类任务的标准损失:
L = -Σ p_data(y) · log p_θ(y)
但它只能学习绝对概率 p(y),而且要求 Σp(y) = 1。
Score Entropy 扩展了这个概念:
Score Entropy = Σ [s_θ(x)_y - (p(y)/p(x)) · log s_θ(x)_y]
关键特性:
理论上,Score Entropy需要知道真实的 p(y)/p(x),但这正是我们想学的!
解决方案:去噪变体(Denoising Score Entropy)
不是从真实数据分布采样,而是:
1. 从简单分布(如均匀分布)采样x₀
2. 通过已知的转移概率,得到带噪声的x
3. 学习 p(x|x₀) 的比率(这是已知的!)
这就像:
连续扩散(图像):
x_t = √(1-β_t) · x_{t-1} + √β_t · ε (加高斯噪声)
离散扩散(文本):
每个位置的token,以一定概率"跳"到另一个token
数学上,用连续时间马尔可夫链(CTMC)描述:
dp_t/dt = Q · p_t
Q是转移速率矩阵:
- Q(i,j) = 从token i跳到token j的速率
- Q(i,i) = -Σ_{j≠i} Q(i,j) (对角线保证概率守恒)
时间 t=0: 猫 坐 在 垫 子 上 (干净句子)
↓
时间 t=0.5: [MASK] 坐 在 [MASK] 子 上 (部分token被掩盖)
↓
时间 t=1: [MASK] [MASK] [MASK] [MASK] [MASK] [MASK] (纯噪声)
每个token独立地按照Q矩阵演化,逐渐失去信息。
关键公式:
逆向转移概率 ∝ p_t(y) / p_t(x) · Q(y,x)
这里 pt(y)/pt(x) 正是我们用Score Entropy学习的Concrete Score!
采样过程:
1. 从纯噪声采样x_T
2. for t = T, T-1, ..., 1:
- 用神经网络预测 s_θ(x_t, t)_y ≈ p_t(y)/p_t(x_t)
- 根据逆向转移概率,采样x_{t-1}
3. 返回x_0(生成的文本)
自回归(GPT):
生成"猫" → 生成"坐" → 生成"在" → ...
每一步只能看到左边的内容
SEDD(扩散):
[MASK] [MASK] [MASK] [MASK] → 同时填充所有位置
每一步都能看到完整的上下文
结果:SEDD生成的文本更连贯,不会"跑偏"。
自回归:生成质量固定,无法加速。
SEDD:
50步采样 → 最高质量
20步采样 → 质量稍降,速度快2.5倍
10步采样 → 质量可接受,速度快5倍
这在生产环境中极其宝贵——可以根据延迟预算灵活调整。
自回归:只能从左边prompt。
SEDD:任意位置都可以prompt!
标准prompt: 今天 [MASK] [MASK] [MASK] → 补全右边
填空prompt: [MASK] 天气 [MASK] 好 → 补全中间
后缀prompt: [MASK] [MASK] [MASK] 吗? → 补全左边
所有这些都是零样本(zero-shot),无需专门训练。
| 数据集 | GPT-2 Small | SEDD Small | GPT-2 Medium | SEDD Medium |
|---|---|---|---|---|
| LAMBADA | **45.04** | ≤50.92 | **35.66** | ≤42.77 |
| WikiText-2 | 42.43 | **≤41.84** | 31.80 | **≤31.04** |
| PTB | 138.43 | **≤114.24** | 123.14 | **≤87.12** |
| WikiText-103 | 41.60 | **≤40.62** | 31.39 | **≤29.98** |
SEDD在多数任务上达到或超越GPT-2。
| 方法 | MAUVE分数 |
|---|---|
| GPT-2 + nucleus sampling | 0.955 |
| SEDD + 标准prompt | **0.957** |
| SEDD + 填空prompt | 0.942 |
SEDD的生成质量与GPT-2相当,但更加灵活。
相比之前的离散扩散模型,SEDD降低困惑度 25-75%。
相比未退火的GPT-2,生成困惑度好 6-8倍。
| 成员 | 背景 | 贡献 |
|---|---|---|
| **Stefano Ermon** | 斯坦福教授,SEDD论文作者 | CEO |
| **Aaron Lou** | SEDD一作 | 技术核心 |
| **Chenlin Meng** | SEDD作者,Pika联合创始人 | 技术顾问 |
| **Aditya Grover** | UCLA教授 | 联合创始人 |
| **Volodymyr Kuleshov** | 康奈尔教授 | 联合创始人 |
| 时间 | 里程碑 |
|---|---|
| 2025年2月 | Mercury发布——首个商业级扩散LLM |
| 2025年2月 | Mercury Coder发布——编程助手 |
| 2026年2月 | Mercury 2发布——支持深度推理,1009 tokens/s |
SEDD的核心贡献可以用三句话概括:
它证明了一件事:自回归不是文本生成的唯一答案。当AI从"打字机"变成"编辑",我们或许正在见证下一代语言模型的诞生。
本文深度解读学术论文,力求通俗准确,如有疏漏欢迎指正
还没有人回复