Token Lab搜索

FRONTIER / RESEARCH TO PRACTICE

扩散语言模型:掩码与迭代解码

先修:交叉熵、Transformer 与生成建模。理解 LLaDA 式掩码生成,不把并行性直接当作速度。

学习指南与本课目录LEARNING CONTRACT

理解 → 实现 → 研究

目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。

机制与假设

LLaDA 研究前向掩码与学习反向过程的语言扩散模型。模型根据可见上下文预测被掩码 token,迭代生成不同于从左到右的自回归分解。训练目标包含噪声水平加权,因此普通掩码分类器只是教学基线,并非忠实复现。工程选择包括序列长度、揭示调度、置信度校准和是否允许修订。并行更新 token 仍可能需要昂贵的重复全序列计算。

Text / 原始公式
Teaching masked loss = −(1/M) Σ_(i masked) log pθ(x_i | visible context)
M = number of masked positions; handle M=0 explicitly
Compute ledger ≈ steps × cost_per_full_sequence_pass

手算例子

两个掩码位置对正确 token 的概率为 0.8 和 0.5,平均掩码交叉熵为 −(ln 0.8+ln 0.5)/2≈0.458145。长度 128 的输出经过 16 次全序列计算,账本为 2048 次 token 位置评估。这不等于 2048 次自回归解码,因为内核、缓存与并行工作不同,必须测墙钟时间。

实现练习

从小型离散序列重建任务开始,在相同掩码和模型权重下比较随机揭示与置信度揭示。报告精确匹配率、逐位置准确率及步数敏感性。再设计同质量或同延迟的真实模型比较,包含停止行为与输出长度,不能只从重建推断通用推理能力。

交付代码、固定种子、原始结果与一个反例。这里是实验规范,不是已运行的 GPU benchmark。

为什么置信度揭示会锁定错误?

高掩码比例下置信度尤其可能失准。早期错误 token 改变后续条件,应比较不同噪声水平的校准并测试修订策略,而非盲信最高分。

arXiv ↗ · PDF ↗

原创教学例子,来源核对于 2026 年 10 月。这些是与工程相关的基础机制,并非覆盖所有最新模型。

关联先修与后续课程 →

系统课程与检查点 →前沿专题目录 →
MATHEMATICAL REVIEW · 2026-10-26

假设、参考实现与验收

所示交叉熵使用自然对数,单位 nats。遮罩位置均值须除以实际评价的遮罩数;教学损失不复现完整离散扩散目标。

已复核公式条件、单位及算例。实现隔离一个数值机制,不训练完整策略,也不控制真实硬件。

token → 采样遮罩位置 → 预测缺失 token 概率 → 累加负自然对数 → 除以被评价的遮罩数量
机制图:从上到下跟踪每次变换。

运行前:预测一个边界情况

结果单位为 nats;除以 ln2 得 bits,不能按未遮罩 token 数平均。

提示:隔离假设

固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。

最小可运行算例

将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node diffusion-language.mjs. 无需第三方运行依赖。

const solve=()=>{
const maskedProbabilities=[.8,.5];
return -maskedProbabilities.reduce((s,p)=>s+Math.log(p),0)/maskedProbabilities.length;
};
const actual=solve();
const expected=0.4581453659370775;
if(JSON.stringify(actual)===JSON.stringify(expected)){console.log('PASS',actual)}else{
const a=[actual].flat(), b=[expected].flat();
if(a.length!==b.length||a.some((v,i)=>!Number.isFinite(v)||Math.abs(v-b[i])>1e-10))throw Error('Numerical mismatch');
console.log('PASS within 1e-10',actual);
}
参考输出——先预测再展开
0.4581453659370775

测试与迁移

结果单位为 nats;除以 ln2 得 bits,不能按未遮罩 token 数平均。

在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。

下载完整代码包(.tar.gz) · 完整参考代码与回归检查

预测、检验与证据记录

展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。

打开记录/导出/清除 →

数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围