扩散语言模型(DLM)不是逐词解码,而是反复擦除重写,每一步去噪只提交一部分 token。这让量化很棘手——自回归那套「统一压到 4-bit」搬过来,常在关键的去噪窗口上翻车。
Technion 与本-古里安大学 INSIGHT Lab 团队在 arXiv 上给出 T2Quant,把量化精度从「一个全局数字」改成「沿去噪时间轴分配的一份预算」(论文)。
敏感度既看任务,也看时刻
三个被测模型的曲线形状截然不同。GSM8K 极度前置,峰值落在最初 8 步;MMLU-Pro 偏早但更宽,前四个窗口(第 0–31 步)都在峰值 10% 以内;HumanEval 相反,前期几乎不敏感,峰值宽泛落在第 40–63 步。项目页(T2Quant)读数更直观:沿 W4A4 轨迹,GSM8K 第一个窗口就承载 27% 的任务相关偏移,是均匀分配的 4.4 倍。这套形状也稳定:LLaDA-1.5 与 LLaDA-8B-Instruct 的逐窗口相关系数为 0.99、0.98、0.92。
不需要标签的「该加精度」信号
T2Quant 不去新造量化器:不改权重、不改采样器、不改底层 quantizer,只决定每个去噪窗口跑几比特,宽度取自 {3, 4, 6, 8},平均压在 4.00 bit。
难点在于没有标准答案、也没有任务专属指标时,怎么判断哪个窗口值得加精度。解法分两步:先用全精度模型生成参考轨迹,把保存的状态在候选宽度下重放,得到该窗口的量化散度;再乘上「下游影响」——这一步提交的 token 把后续未解码位置的信念推动了多少。两项相乘得到边际收益,再用动态规划选出最优宽度。
「下游影响」不能省:只看散度会误判 HumanEval 的最后一个窗口,那几步提交的 token 影响不了后面任何东西。
数字
三个扩散 LLM(Dream-7B-Instruct、LLaDA-1.5-8B、LLaDA-8B-Instruct)、六个基准(GSM8K / HumanEval / ARC-Challenge / MMLU-Pro / DROP / BBH)上,4-bit 权重、平均激活 4.00 bit:
- 9 个「基线 × 模型」组合的平均精度全部上升,54 个基准级对比里 42 个改善
- 最大增益在 Dream 上达 6.7 个百分点,LLaDA-1.5 为 3.4,LLaDA-8B-Instruct 为 3.5;最好的量化配置相对最强独立基线再领先 3.55 / 1.13 / 1.40 个点
- Dream 上 GSM8K 从 35.6 涨到 53.5(DLLMQuant)、从 46.1 涨到 58.8(STaR-Quant)
- 同为 4.00 bit 预算的随机调度,在 Dream 上比原基线低 14–19 个点;RTN 在 Dream 上直接崩到 0.00
消融指向同一结论:16 条无标签 prompt 就能拿到约 75% 的收益;LLaDA-8B-Instruct 的 GSM8K 上,统一 W4A4 是 44.1、T2Quant 是 49.4、FP16 是 52.9。
几点保留
论文自己也标了边界:硬件效率完全没测,量化是 bf16 算术下的模拟;精度调度与任务相关,换任务要重新标定;量化本身可能改变安全相关的行为。而 T2Quant 只是能插在任意后训练量化方法之上的调度层。
结论
自回归时代的习惯是「精度是一个全局常数」。扩散 LLM 打破了这个前提——不同去噪时刻的重要性可以差出数倍。把精度改成按时刻分配的预算,更值得推广。