作者:李季 LI JI
AI 前沿技术跟进
全局:

训练与数据 Training & Data

低精度训练、RL 训练系统、奖励/数据构造与训练稳定性。

条目(1 项)

日期条目 / 一句话通俗分类
2026-10-06TRACE: Rollout-Guided Quantization-Aware Training for FP4 Reinforcement Learning of MoE Language Models
RL 里用 FP4 做采样(rollout)省时间,但训练端与采样端对同一个数「舍入」得不一样,会放大偏差;TRACE 让训练端的舍入方向去「照抄」采样端,并只传一点点必要信息。
训练与数据 推理与服务 推理与强化学习

条目详解

2026-10-06arXiv 论文第1期 · 2026-10-31

TRACE: Rollout-Guided Quantization-Aware Training for FP4 Reinforcement Learning of MoE Language Models

TRACE:面向 MoE 模型 FP4 强化学习的「rollout 引导」量化感知训练
Xin Wang, Hao Yu, Zhengyang Zhuge, Bochao Mao, Zheng Li, Junda Feng 等共 12 位(HF 页面机构标注:Qwen;致谢:Alibaba Research Intern Program)
一句话通俗:RL 里用 FP4 做采样(rollout)省时间,但训练端与采样端对同一个数「舍入」得不一样,会放大偏差;TRACE 让训练端的舍入方向去「照抄」采样端,并只传一点点必要信息。
阅读模式:

报告的主要结果(均为原文自报,非本站复现)

(原文自报,Table 1:Qwen3.5-35B-A3B,联合 NVFP4 W/A + NVFP4 KV rollout。)

方法LiveCodeBenchAIME24AIME25HMMT25平均
BF16 rollout(参考)67.183.881.367.574.9
QAT55.170.763.449.259.6
QaRL54.173.357.949.258.6
QUADS60.480.575.459.068.8
TRACE66.486.378.570.075.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)