跳转到内容
English

MAR:无需码本的自回归

交互教程

自回归规定条件依赖关系,并不要求 token 是整数。

前置阅读:扩散与 Flow Matching · 注意力与自回归 · 评估

类别头预测离散 ID 的概率;直接 L2 回归连续下一 token,对应固定方差高斯模型的条件均值。MAR 用小型条件扩散模型表示每个连续 token 的更丰富分布。

首先,Transformer 读取已知 token,为未知位置输出上下文特征;随后 diffusion MLP 以该特征为条件采样 token。论文研究因果 AR 与 masked AR。默认 MAR 按随机顺序分组填充,已知 token 可双向交互,但看不到未知目标真值。

阅读顺序从左到右。点击模块,将它与计算和代码对应。代码为教学伪代码;来源链接提供论文方法或已核查的实现。

已知 token 上下文

未知真值不会进入编码器。

visible = remove_masked(latents,mask)
context = masked_transformer(visible,positions)

条件扩散头

内层去噪循环复用 MLP。

prediction = diffusion_mlp(noisy_target,t,context)
loss = mse(prediction,target_noise)

分组采样

插入新采样 token 后重新计算外层上下文。

for group in generation_order:
    context = transformer(known)
    known[group] = token_sampler(context[group])
image = tokenizer.decode(known)

查看固定版本来源

p(x)=∏gpθ(xGg∣xG<g)p(x)=\prod_g p_\theta(x_{G_g}\mid x_{G_{<g}})

默认 KL-16 tokenizer 将 256² 图像变成 16 × 16 × 16 连续 latent。遮罩位置在编码器前移除,再作为 queries 在解码器恢复。生成顺序随机时,空间位置仍绑定原网格。

演示分开外层生成组与内层去噪步。16 个 token、组大小 4、内层 4 步时,有 4 个外层组和 16 次组内步骤。这些步骤运行小输出头,不一定运行完整 Transformer,因此教学计数不是耗时测量。

改变参数,查看计算值,再把它与上方的真实模型说明对照。

解析教学模型 · 控件改变的是例子,不是训练后的研究模型。

1111222233334444

数字表示生成组,不是 token 值;耗时还取决于网络大小和缓存。

当前例子的计算值
量值
外层组数4
每组内层步数4
组数 × 步数16

Diffusion Loss 训练输出头对目标 token 去噪,并非直接 L2 预测干净下一 token。固定默认值中,外层 MAR 用 64 轮,输出头用 100 步去噪。单次 token-head 轨迹可复用上下文特征。完成的 latent 网格再由独立图像解码器变为 RGB。

条件指标数值解释
ImageNet-256,400 epochs,连续 token,无 CFGFID ↓ raster causal / random causal19.23 / 13.07表 1,改变顺序
同表,随机双向:单位置 / 分组FID ↓3.43 / 3.50注意力与分组是独立变量

分组预测不具备完全顺序分解的全部组内依赖;双向上下文变化也使严格因果 KV cache 假设不能直接照搬。下列对照改变顺序与注意力,全部收益不能只归因于去除量化。

去噪平方损失等于直接下一 token 平方误差吗?

不是。去噪器在不同噪声级学习预测,从而定义可采样分布;直接回归从上下文输出一个点估计。

返回学习地图

本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。