—— 打破马尔可夫假设,统一AR与Diffusion的生成模型新架构
扩散模型在图像生成领域已经证明了它的力量:从噪声开始,逐步去噪,最终生成清晰的图像。
但当研究者试图把扩散模型应用到文本生成时,他们遇到了一个根本问题:
马尔可夫假设的诅咒。
传统离散扩散模型每一步只看当前状态,无法修正早期错误。这就像开车只看眼前,不看后视镜——一旦走错路,只能将错就错。
CaDDi(Causal Discrete Diffusion)试图打破这个诅咒。
马尔可夫过程的核心假设:
x_{t-1} → x_t → x_{t+1}
↑ ↑ ↑
过去 当前 未来
当前状态只依赖于前一个状态
P(x_t | x_{t-1}, x_{t-2}, ..., x_0) = P(x_t | x_{t-1})
这带来的问题:
为什么GPT系列在文本生成上更强?
Token1 → Token2 → Token3 → Token4
↑ ↑ ↑ ↑
└────────┴────────┴────────┘
可以看到全部历史
P(x_t | x_{<t}) = 条件于所有已生成token
自回归模型每一步都能看到全部历史,可以基于完整上下文做决策。
| 特性 | 离散扩散 | 自回归 |
|---|---|---|
| 并行生成 | ✅ 支持 | ❌ 串行 |
| 迭代精炼 | ✅ 支持 | ❌ 一次成型 |
| 可控生成 | ✅ 支持 | ❌ 有限 |
| 序列建模 | ❌ 弱 | ✅ 强 |
| 生成质量 | ❌ 较低 | ✅ 较高 |
能否兼得两者之长?
耶鲁大学团队(Yangtian Zhang等)的核心发现:
去噪时不仅看当前状态,而是条件于整个生成轨迹(从当前到最终噪声的所有状态)。
传统:P(x_{t-1} | x_t)
CaDDi:P(x_{t-1} | x_t, x_{t+1}, ..., x_T)
↑
可以看到"未来"的噪声状态
这允许模型"回顾历史、修正过去"。
关键设计:噪声在每个时间步独立添加
# 马尔可夫前向过程
x_t = 加噪(x_{t-1}) # 依赖前一个状态
# 非马尔可夫前向过程
x_t = 加噪(x_0, t) # 直接从原始数据加噪,不依赖中间状态
优势:
CaDDi使用单个模型同时处理两个维度:
时间维度(扩散步t)
↑
┌─────────────────────┐
│ t=0 t=1 t=2 t=T │
│ [A] [B] [C] [D] │ ← Token1
│ [E] [F] [G] [H] │ ← Token2
│ [I] [J] [K] [L] │ ← Token3
└─────────────────────┘
↓
序列维度(token位置)
两个维度的因果性:
同时编码两个维度的位置信息:
# 传统RoPE:只编码token位置
pos_emb = RoPE(token_position)
# 2D RoPE:同时编码token位置和扩散时间步
pos_emb = RoPE2D(token_position, diffusion_timestep)
优势:
这是CaDDi的关键创新:
块内:双向注意力(保留扩散并行性)
[Token1 Token2 Token3] → 可以互相看到
块间:严格因果(保证顺序生成)
Block1 → Block2 → Block3 → 只能看到前面的块
可视化:
Token1 Token2 Token3 | Token4 Token5 Token6
Token1 ✅ ✅ ✅ | ❌ ❌ ❌
Token2 ✅ ✅ ✅ | ❌ ❌ ❌
Token3 ✅ ✅ ✅ | ❌ ❌ ❌
───────────────────────────┼────────────────────
Token4 ✅ ✅ ✅ | ✅ ✅ ✅
Token5 ✅ ✅ ✅ | ✅ ✅ ✅
Token6 ✅ ✅ ✅ | ✅ ✅ ✅
Block1(双向) | Block2(双向)
Block2可以看到Block1,但Block1看不到Block2
效果:
进一步细化到token级自回归分解:
标准CaDDi:块级并行
[Block1] → [Block2] → [Block3]
CaDDi-AR:token级串行
Token1 → Token2 → Token3 → Token4
当扩散步数T=1时,精确退化为标准自回归模型!
损失函数:
# 像训练LLM一样简单
loss = CrossEntropy(predicted_token, ground_truth_token)
# 基于简化ELBO的加权交叉熵
weighted_loss = weight(t) * CrossEntropy(pred, target)
训练目标:
生成过程:
# 从纯噪声开始
x_T = random_noise()
# 自回归式去噪
for t in range(T, 0, -1):
for block in blocks:
# 条件于当前和未来状态
x_{t-1}[block] = model(x_t, x_{t+1}, ..., x_T, block)
特点:
离散版本的CFG:
# 无条件生成
p_uncond = model(x_t, condition=None)
# 有条件生成
p_cond = model(x_t, condition=target)
# CFG融合
p_cfg = p_uncond + guidance_scale * (p_cond - p_uncond)
效果:
在LM1B、Text8、ARC、LAMBADA等基准上:
| 模型 | 类型 | 困惑度 | 与AR差距 |
|---|---|---|---|
| D3PM | 马尔可夫扩散 | 高 | 大 |
| MDLM | 马尔可夫扩散 | 较高 | 较大 |
| UDLM | 马尔可夫扩散 | 中等 | 中等 |
| CaDDi | 非马尔可夫扩散 | 低 | 显著缩小 |
| GPT-2 | 自回归 | 最低 | 基准 |
关键发现:
噪声注入测试:
马尔可夫模型:噪声敏感,误差快速累积
CaDDi:噪声鲁棒,能够纠错恢复
结果: CaDDi的鲁棒性远超马尔可夫模型。
情感控制infilling:
输入:"今天天气___,我心情___。"
条件:positive sentiment
马尔可夫模型:可能前后不一致
CaDDi:全局一致,准确控制
准确率: CaDDi在条件生成任务上准确率显著更高。
可以fine-tune到1.5B+规模的LLM:
CaDDi实现了扩散的灵活可控与AR的训练效率+序列建模能力的真正统一:
| 能力 | 传统扩散 | 自回归 | CaDDi |
|---|---|---|---|
| 并行生成 | ✅ | ❌ | ✅(块内) |
| 迭代精炼 | ✅ | ❌ | ✅ |
| 可控生成 | ✅ | ❌ | ✅ |
| 序列建模 | ❌ | ✅ | ✅ |
| 训练效率 | ❌ | ✅ | ✅ |
| 生成质量 | ❌ | ✅ | 接近✅ |
Steerling-8B(Guide Labs,2026年初):
# 传统1D RoPE
θ_i = 10000^(-2i/d)
R(p) = [cos(pθ), sin(pθ)]
# 2D RoPE(CaDDi)
θ_i = 10000^(-2i/d)
φ_j = 10000^(-2j/d) # 时间维度
R(p, t) = [cos(pθ + tφ), sin(pθ + tφ)]
原始ELBO:复杂,难以优化
简化ELBO:weighted cross-entropy
L = Σ_t w(t) * CE(model(x_t, t), x_0)
| 特性 | Block Diffusion | CaDDi |
|---|---|---|
| 因果性 | 块间无显式因果 | 严格块间因果 |
| 位置编码 | 1D | 2D RoPE |
| AR退化 | 不支持 | T=1精确退化 |
| 预训练兼容 | 有限 | 完全兼容 |
CaDDi是离散扩散走向实用大模型的关键一步。
它证明了:
"打破马尔可夫假设,让扩散模型学会回顾历史——这是生成模型从'够用'走向'好用'的关键一步。"
还没有人回复