导语:扩散模型让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 |
生成质量(MAUVE分数)
| 方法 | MAUVE分数 |
|---|---|
| GPT-2 + nucleus sampling | 0.955 |
| SEDD + 标准prompt | 0.957 |
| SEDD + 填空prompt | 0.942 |
困惑度降低幅度
相比之前的离散扩散模型,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)
*本文深度解读学术论文,力求通俗准确,如有疏漏欢迎指正*