MAR:无需码本的自回归
交互教程
自回归规定条件依赖关系,并不要求 token 是整数。
前置阅读:扩散与 Flow Matching · 注意力与自回归 · 评估
之前已经能做什么
Section titled “之前已经能做什么”类别头预测离散 ID 的概率;直接 L2 回归连续下一 token,对应固定方差高斯模型的条件均值。MAR 用小型条件扩散模型表示每个连续 token 的更丰富分布。
改变了什么,为什么
Section titled “改变了什么,为什么”首先,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)逐步理解机制
Section titled “逐步理解机制”默认 KL-16 tokenizer 将 256² 图像变成 16 × 16 × 16 连续 latent。遮罩位置在编码器前移除,再作为 queries 在解码器恢复。生成顺序随机时,空间位置仍绑定原网格。
演示分开外层生成组与内层去噪步。16 个 token、组大小 4、内层 4 步时,有 4 个外层组和 16 次组内步骤。这些步骤运行小输出头,不一定运行完整 Transformer,因此教学计数不是耗时测量。
改变参数,查看计算值,再把它与上方的真实模型说明对照。
解析教学模型 · 控件改变的是例子,不是训练后的研究模型。
数字表示生成组,不是 token 值;耗时还取决于网络大小和缓存。
| 量 | 值 |
|---|---|
| 外层组数 | 4 |
| 每组内层步数 | 4 |
| 组数 × 步数 | 16 |
训练与采样的区别
Section titled “训练与采样的区别”Diffusion Loss 训练输出头对目标 token 去噪,并非直接 L2 预测干净下一 token。固定默认值中,外层 MAR 用 64 轮,输出头用 100 步去噪。单次 token-head 轨迹可复用上下文特征。完成的 latent 网格再由独立图像解码器变为 RGB。
论文证据(并非本地复现)
Section titled “论文证据(并非本地复现)”| 条件 | 指标 | 数值 | 解释 |
|---|---|---|---|
| ImageNet-256,400 epochs,连续 token,无 CFG | FID ↓ raster causal / random causal | 19.23 / 13.07 | 表 1,改变顺序 |
| 同表,随机双向:单位置 / 分组 | FID ↓ | 3.43 / 3.50 | 注意力与分组是独立变量 |
这些结果不能证明什么
Section titled “这些结果不能证明什么”分组预测不具备完全顺序分解的全部组内依赖;双向上下文变化也使严格因果 KV cache 假设不能直接照搬。下列对照改变顺序与注意力,全部收益不能只归因于去除量化。
去噪平方损失等于直接下一 token 平方误差吗?
不是。去噪器在不同噪声级学习预测,从而定义可采样分布;直接回归从上下文输出一个点估计。
来源与后续阅读
Section titled “来源与后续阅读”本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。