**导语**:扩散模型让AI学会了画画(Midjourney)、做视频(Sora),但为什么它在文本生成领域一直不如GPT?答案藏在"连续"与"离散"的数学鸿沟中。2023年,一篇来自斯坦福的论文提出了SEDD(Score Entropy Discrete Diffusion),成功跨越了这道鸿沟,并获得了ICML 2024最佳论文奖。今天,这项技术已经商业化,成为Mercury 2大模型的核心引擎。
---
## 一、为什么扩散模型在文本上"水土不服"?
### 图像 vs 文本:两种截然不同的数据
| 特性 | 图像 | 文本 |
|------|------|------|
| **数据类型** | 连续(像素值0-255) | 离散(token索引整数) |
| **数学工具** | 微积分、梯度下降 | 组合数学、概率分布 |
| **扩散操作** | 加高斯噪声(自然) | 加噪声?如何定义? |
### 核心难题:分数匹配(Score Matching)
扩散模型的核心是学习**分数函数**(score function):
```
分数函数 = ∇ₓ log p(x) (概率密度的梯度)
```
在连续空间(图像),这个梯度很好计算。但在离散空间(文本),**梯度不存在**——因为token是整数,不能求导。
这就像:
- 图像:你在山坡上,可以往任意方向走一小步
- 文本:你在一个巨大的迷宫中,只能跳到相邻的房间
---
## 二、SEDD的核心创新:Concrete Score(具体分数)
### 不直接建模概率,而是建模概率比率
传统方法试图学习 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:离散空间的"梯度"
在连续空间,分数函数指向概率密度增长最快的方向。
在离散空间,**Concrete Score**扮演了类似角色:
- 它告诉你:从当前句子x,跳到哪个邻居句子y更有可能
- "邻居"定义为:只在一个位置不同的句子(Hamming距离1)
```
例子:
当前句子x:"猫坐在垫子上"
邻居y₁:"狗坐在垫子上" ← 第一个词变了
邻居y₂:"猫站在垫子上" ← 第二个词变了
邻居y₃:"猫坐在椅子上" ← 最后一个词变了
Concrete Score告诉你:跳到哪个邻居最好?
```
---
## 三、Score Entropy:学习Concrete Score的损失函数
### 从Cross Entropy到Score Entropy
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]
```
**关键特性**:
1. 可以学习任意比率 p(y)/p(x),不要求归一化
2. 当 s_θ(x)_y → 0 时,log项产生"屏障",防止比率变负
3. 整体是凸函数,优化稳定
### 去噪Score Entropy:实际可行的训练目标
理论上,Score Entropy需要知道真实的 p(y)/p(x),但这正是我们想学的!
解决方案:**去噪变体**(Denoising Score Entropy)
```
不是从真实数据分布采样,而是:
1. 从简单分布(如均匀分布)采样x₀
2. 通过已知的转移概率,得到带噪声的x
3. 学习 p(x|x₀) 的比率(这是已知的!)
```
这就像:
- 你知道如何把干净的句子变成噪声句子(加噪声过程)
- 反过来,你就能学会如何从噪声恢复干净句子
---
## 四、离散扩散过程:如何给文本"加噪声"
### 连续扩散 vs 离散扩散
**连续扩散**(图像):
```
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)
```
这里 p_t(y)/p_t(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(生成的文本)
```
---
## 五、SEDD的优势:为什么它比自回归更好?
### 1. 全局上下文,而非左到右
自回归(GPT):
```
生成"猫" → 生成"坐" → 生成"在" → ...
每一步只能看到左边的内容
```
SEDD(扩散):
```
[MASK] [MASK] [MASK] [MASK] → 同时填充所有位置
每一步都能看到完整的上下文
```
结果:SEDD生成的文本更连贯,不会"跑偏"。
### 2. 可计算的计算-质量权衡
自回归:生成质量固定,无法加速。
SEDD:
```
50步采样 → 最高质量
20步采样 → 质量稍降,速度快2.5倍
10步采样 → 质量可接受,速度快5倍
```
这在生产环境中极其宝贵——可以根据延迟预算灵活调整。
### 3. 灵活的Prompt策略
自回归:只能从左边prompt。
SEDD:**任意位置**都可以prompt!
```
标准prompt: 今天 [MASK] [MASK] [MASK] → 补全右边
填空prompt: [MASK] 天气 [MASK] 好 → 补全中间
后缀prompt: [MASK] [MASK] [MASK] 吗? → 补全左边
```
所有这些都是零样本(zero-shot),无需专门训练。
---
## 六、实验结果:SEDD vs GPT-2
### 困惑度(Perplexity)对比
| 数据集 | 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分数)
| 方法 | 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倍**。
---
## 七、从论文到产品:Mercury的诞生
### 创始团队
| 成员 | 背景 | 贡献 |
|------|------|------|
| **Stefano Ermon** | 斯坦福教授,SEDD论文作者 | CEO |
| **Aaron Lou** | SEDD一作 | 技术核心 |
| **Chenlin Meng** | SEDD作者,Pika联合创始人 | 技术顾问 |
| **Aditya Grover** | UCLA教授 | 联合创始人 |
| **Volodymyr Kuleshov** | 康奈尔教授 | 联合创始人 |
### 融资历程
- **2024年夏**:Inception Labs成立
- **2024年11月**:5000万美元融资
- 投资方:NVentures(英伟达)、M12(微软)、Menlo Ventures
- 个人投资者:吴恩达、Andrej Karpathy
### 产品时间线
| 时间 | 里程碑 |
|------|--------|
| 2025年2月 | Mercury发布——首个商业级扩散LLM |
| 2025年2月 | Mercury Coder发布——编程助手 |
| 2026年2月 | Mercury 2发布——支持深度推理,1009 tokens/s |
---
## 八、SEDD的局限与未来
### 当前局限
1. **单次推理成本高**:虽然速度快,但每次需要多次前向传播
2. **规模限制**:目前Mercury 2的规模仍小于顶级自回归模型
3. **生态不成熟**:工具链、社区支持不如Transformer丰富
### 未来方向
1. **更大规模**:SEDD能否扩展到GPT-4级别的参数量?
2. **多模态统一**:图像、视频、文本都用扩散模型,实现真正的统一生成
3. **实时应用**:语音助手、实时翻译、直播字幕
4. **开源生态**:期待SEDD的开源实现和工具链完善
---
## 九、总结
SEDD的核心贡献可以用三句话概括:
1. **提出了Concrete Score**:用概率比率代替概率,绕过归一化常数难题
2. **设计了Score Entropy**:将分数匹配理论扩展到离散空间
3. **实现了离散扩散**:让扩散模型真正适用于文本生成
这项技术不仅获得了ICML 2024最佳论文奖,更已经商业化,成为Mercury 2的核心引擎。
它证明了一件事:**自回归不是文本生成的唯一答案**。当AI从"打字机"变成"编辑",我们或许正在见证下一代语言模型的诞生。
---
## 参考资源
- **SEDD论文**:https://arxiv.org/abs/2310.16834
- **官方博客**:https://louaaron.github.io/blog/2024/discrete-diffusion/
- **Mercury 2博客**:https://www.inceptionlabs.ai/blog/introducing-mercury-2
- **GitHub**:https://github.com/louaaron/Score-Entropy-Discrete-Diffusion
- **ICML 2024**:Discrete Diffusion Modeling by Estimating the Ratios of the Data Distribution(Oral + Best Paper Award)
---
*本文深度解读学术论文,力求通俗准确,如有疏漏欢迎指正*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!