TRACE: Rollout-Guided Quantization-Aware Training for FP4 Reinforcement Learning of MoE Language Models
报告的主要结果(均为原文自报,非本站复现)
(原文自报,Table 1:Qwen3.5-35B-A3B,联合 NVFP4 W/A + NVFP4 KV rollout。)
| 方法 | LiveCodeBench | AIME24 | AIME25 | HMMT25 | 平均 |
|---|---|---|---|---|---|
| BF16 rollout(参考) | 67.1 | 83.8 | 81.3 | 67.5 | 74.9 |
| QAT | 55.1 | 70.7 | 63.4 | 49.2 | 59.6 |
| QaRL | 54.1 | 73.3 | 57.9 | 49.2 | 58.6 |
| QUADS | 60.4 | 80.5 | 75.4 | 59.0 | 68.8 |
| TRACE | 66.4 | 86.3 | 78.5 | 70.0 | 75.3 |
Table 2(更大模型,BF16 / QAT / QUADS / TRACE):Qwen3.5-122B-A10B(DeepSWE)33.4 / 28.8 / 29.1 / 33.0;Qwen3.8-Flash-Next(Terminal-Bench)68.8 / 60.4 / 66.4 / 70.6;Qwen3.8-2.4T-A95B(GDPval)90.3 / 88.7 / 85.9 / 90.2。
效率:解码吞吐最高达 BF16 rollout 的 5.4×(128K 输出长度);端到端 RL 步时间从 664 增至 713(+7.4%);rollout 引导开销:权重侧 4%、KV 侧 2%,KV 反量化 8%,前向 86%。
通俗解释
强化学习后训练要先让模型大量「生成答案」(rollout),这一步很耗时间和显存,所以大家想把模型压成 4 位浮点数(FP4)来加速。但训练时用的是另一套高精度计算,两边的数值总是对不上;FP4 的「格子」又很粗,两个原本只差一点点的数,可能被舍入到相邻两格,差距一下被放大。MoE 模型还会因路由选择不同进一步放大。
TRACE 的做法:采样时把「这个数被舍入到了哪一格」记下来,训练做量化感知(QAT)时,遇到要在两个相邻格子里二选一,就选采样端选的那一个,而不是按「四舍五入」。这样两端的偏差不会被舍入放大。
但是全量记录太大:例子里一步 RL 要多存约 51 TB。论文发现 99% 的不一致只差相邻一格,所以只需要传「尾数的 1 位 + 缩放系数」,并且只传后半部分层。
专业解释
问题:FP4(W4A4)rollout 能显著加速与省显存,但训练与 rollout 两条量化执行路径的数值差异会造成 policy mismatch,MoE 下还与专家路由相互作用而放大。已有方法(QUADS、Rollout-ResQ)通过提高每条路径各自的量化精度(降低 $\|X-Q(X)\|_F$)来间接缓解,但各自变准并不等于两端更一致——论文用具体数值例子说明(QUADS 反而把差距从 0 变为 0.10;另一例保持 0.99 对 1.0)。
TRACE(Train-Rollout Quantization Alignment via Compact GuidancE):
(1) Rollout-guided QAT:关键洞察是不一致的 FP4 舍入会放大原本微小的 BF16 差异(论文举例:60.24 vs 59.76 仅差 0.48,归一化后 2.51 与 2.49 位于舍入边界两侧,被舍入到 3 与 2,差距放大到 24)。训练侧在两个相邻 E2M1 码字 $\{q_-,q_+\}$ 中选择最接近 rollout 侧实际码字的那个,取代 RTN;在候选集相同的前提下,对每个被记录位点局部差异不会大于 RTN(式 3);注意该局部保证不推出整网或策略层面的单调下降。
(2) Mantissa-only 通信:>99% 的失配值只相差一个相邻码字,因此只需传尾数的少量比特与 scale;并且向更低码字的修正多发生在深层,所以只缓存后半部分层。以 Qwen3.5-35B-A3B 为例,保留 1 位尾数与摊销后的 scale 约为每 token 7.5 KB,较缓存完整量化激活约小 6×。
作用范围:rollout 时仅量化 MoE 路由专家与 softmax-attention 层的 KV cache,其余模块保持 BF16;训练用 GRPO + R3(回放路由)+ token 级重要性比(裁剪上界 5)。
详细算法
1. 问题设定
RL 后训练的两条执行路径:rollout(推理引擎,用 FP4 加速;这里用 SGLang)与训练(Megatron,BF16 前向/反向,QAT 时前向做 FP4 fake quantization)。对同一轨迹、token 位置与量化位点(site),记训练侧激活 $X_{\rm train}$ 与 rollout 侧激活 $X_{\rm rollout}$。目标:降低两条路径量化后的差异,同时不引入难以承受的存储 / 通信开销。
2. 关键公式
局部量化差异(式 1):
$$\mathcal D_{\rm act}=\big\|Q^{\rm train}_{\rm FP4}(X_{\rm train})-Q^{\rm rollout}_{\rm FP4}(X_{\rm rollout})\big\|_F$$
既有方法的目标(只降低各自量化误差):$\mathcal L_{\rm error}(X)=\|X-Q(X)\|_F$。
Rollout 引导舍入(式 2;$q_\pm$ 为 rollout 侧 scale 下训练激活相邻的两个归一化 E2M1 码字,$q_{\rm rollout}$ 为对应 rollout 激活实际得到的码字):
$$q_{\rm TRACE}=\arg\min_{q\in\{q_-,q_+\}}\big|q-q_{\rm rollout}\big|$$
局部不劣于 RTN(式 3):
$$|q_{\rm TRACE}-q_{\rm rollout}|\ \le\ |q_{\rm RTN}-q_{\rm rollout}|$$
相对额外差异(诊断量):
$$\frac{D_{\rm FP4}-D_{\rm BF16}}{D_{\rm BF16}}$$
($D$ 为训练—rollout 激活 MSE。)压缩通信下的参考重建:选择低 $b$ 位码与记录 $c$ 一致、且幅值最接近 $|z|$ 的 E2M1 幅值,符号取训练激活的符号;仅作局部引导目标,而非精确还原。
3. 逐步伪代码
# 据 §3 与 A.1 的文字描述整理 (论文 Algorithm 1 的框内行文本在抽取中缺失)
Rollout 阶段 (SGLang, FP4 路由专家 + FP4 KV):
for 每个生成的 token, 每个量化位点 (MoE 专家输入 / 后半层 KV):
记录 rollout 侧的 (尾数低 b 位 [b=1], scale) # 后半层才记录
激活侧: 先写入临时 GPU buffer -> 异步卸载到 CPU; KV 侧: 请求结束后从 FP4 KV cache 收集
序列化并按 (trajectory, token, site) 索引保存
QAT 训练阶段 (Megatron, BF16 反向):
for 每个微批:
载入对应记录并按 (trajectory, token, site) 配对
for 每个被记录位点的训练激活 z:
(q-, q+) = BracketFP4(z) # 相邻 E2M1 舍入候选
ref = Reconstruct(记录 c, scale s, z) # 低 b 位码匹配的最近 E2M1 幅值, 符号取自 z
q = 距 ref 更近的候选 # 代替 RTN
z_q = STE(z, q * s) # 前向用 q, 梯度穿透到 z
GRPO + R3 路由回放 + token 级重要性比 (clip 上界 5, max_version_diff=3)
4. 训练 / 推理流程
模型:Qwen3.5-35B-A3B(推理 RL,400 步)、Qwen3.5-122B-A10B(代码 RL,50 步,DeepSWE v1.1)、Qwen3.8-Flash-Next(125B 总 / 6B 激活,代码 RL,400 步,Terminal-Bench 2.1)、Qwen3.8-2.4T-A95B(长程 RL,50 步,GDPval)。基线:vanilla NVFP4、QAT、QaRL、QUADS、Score Centering;MXFP4 变体;以及 BF16 训练后再做 post-hoc FP4(4over6、H-Scale)。设置:VeRL 异步 RL + Megatron + SGLang,disaggregated 部署;GRPO + R3 + token 级重要性比(上界 5)。每步采样 $256{\times}16$ / $128{\times}16$ / $64{\times}16$ / $64{\times}8$ 条轨迹。
与既有方法对比
- QUADS / Rollout-ResQ(提高各自量化精度):目标是 $\|X-Q(X)\|_F$,不直接缩小两端之间的差异;论文以数值例子说明可能反而扩大。
- Vanilla NVFP4 + QAT / QaRL:在 Qwen3.5-35B-A3B 联合 NVFP4 W/A + KV 下,平均 59.6 / 58.6,远低于 BF16 的 74.9。
- Post-hoc FP4(先 BF16 训练再量化):论文称 TRACE 的最终 FP4 性能更强(§4.5,本站未逐项核对数值)。
- 全量引导(保存完整 rollout 量化信息):效果有但吞吐显著下降;mantissa-only 把缓存降到约 1/6,吞吐接近 vanilla FP4 rollout。
优势
- 问题诊断清晰:从「舍入边界放大」这个具体机制出发,指出间接降低量化误差并不等于缩小两端差异。
- 方法极简:只改变候选码字选择,局部上不劣于 RTN;配合 mantissa-only 压缩,把通信 / 存储降低约 6×。
- 覆盖 4 个 MoE 模型(35B ~ 2.4T 总参)与推理、代码、长程三类 RL 任务;训练动态(log-prob 差、熵、响应长度)有诊断图。
- 额外训练开销小(+7.4% 步时间),且 FP4 rollout 的吞吐收益基本保留。
劣势 / 局限
- 论文明确:局部保证不等于整网差异或策略层面发散的单调下降;也不能消除由异步训练的策略陈旧(staleness)引起的激活差异。
- 依赖 rollout 与训练的精确配对(trajectory/token/site)与持久化 / 通信管线,对 RL 系统工程侵入较深;需要同一量化 scale 才能对齐。
- 仅量化路由专家与 softmax-attention 的 KV,其余保持 BF16;对全模型 W4A4 的适用性没有展示。
- Qwen3.8-2.4T-A95B 只训练 50 步;TRACE 90.2 略低于 BF16 90.3,长程任务上的长期稳定性证据较短。
- 无独立 Limitations 小节(本站文本抽取未发现);作者来自 Qwen / 阿里实习项目,模型与基础设施高度相关,外部复现难度大(待确认)。
与工业 AI 的关系(作者判断,非论文结论)
对我们的相关性主要在「用更少 GPU 做 RL 后训练」:如果要在企业内部对运维 / 工艺大模型做 RL 微调,rollout 占大头,FP4 采样 + 训练对齐是潜在的降本手段。但门槛高:需要 Blackwell 级 FP4 硬件与 SGLang/Megatron 级别的 RL 基础设施,当前阶段更适合关注而非落地。
待确认事项
- 待确认:论文 Algorithm 1 的逐行伪代码 依据:文本抽取只保留了说明段,伪代码框缺失;上方伪代码为按 §3 / A.1 文字整理(2026-10-31)
- 待确认:是否有代码开源 依据:HF 页面无 githubRepo;全文抽取中未见链接(2026-10-31)
- 待确认:§4.5 与 post-hoc FP4 的具体数值对比 依据:本站未摘录该节表格(2026-10-31)