← 返回 2026-01-29

FP8-RL:面向大语言模型强化学习的实用稳定低精度推理栈 FP8-RL: A Practical and Stable Low-Precision Stack for LLM Reinforcement Learning

Zhaopeng Qiu, Shuang Yu, Jingqi Zhang, Shuai Zhang, Xue Huang, Jingyi Yang, Junjie Lai 📅 2026-01-26 👍 10 2026-07-13 08:35
FP8量化 KV缓存优化 MoE模型 大语言模型强化学习 推理加速

通过FP8量化RL rollout阶段实现最高44%吞吐提升,同时保持与BF16基线相当的学习效果。

前置知识

FP8量化格式

FP8是NVIDIA Hopper/Blackwell架构原生支持的8位浮点格式,包括E4M3(4位指数+3位尾数,动态范围约[-448, 448])和E5M2(5位指数+2位尾数,范围约[-57344, 57344])两种变体。E4M3精度更高但动态范围较窄,适合前向传播;E5M2动态范围更大但精度较低,适合梯度计算。本文采用E4M3进行权重和激活的量化,配合128×128的块级量化粒度(blockwise quantization),即对权重矩阵的每个128×128子块独立计算缩放因子 $scale_{ij} = \max(|W_{block}|)$,然后按公式 $\hat{W}_{ij} = \text{round}(W_{ij} / scale_{ij}) \in \text{FP8}$ 进行量化。

FP8量化是本文的核心技术基础,理解其格式特性(精度与动态范围的权衡)和块级量化机制是理解本文所有实验设计和消融研究的前提。

LLM强化学习中的Rollout机制

在LLM强化学习(如DAPO、PPO等算法)中,每一步优化都需要从当前策略 $\pi_\theta$ 采样生成新轨迹(即rollout)。这要求推理引擎加载最新的策略权重,对给定的prompt生成多个响应(本文中每个prompt生成n=16个响应),然后由奖励模型评分,再用于更新策略。Rollout阶段是RL流水线的主要瓶颈,据Seer报告,在同步LLM RL设置中rollout阶段约占总迭代时间的80%。

理解rollout机制才能理解为什么本文聚焦于加速rollout阶段,以及为什么RL中的FP8应用比静态推理更困难——策略权重每步都在变化,需要重复的权重同步和量化。

重要性采样(Importance Sampling)与截断重要性采样(TIS)

重要性采样是RL中纠正分布偏移的核心技术。当采样策略(rollout策略)与目标策略(训练策略)不同时,通过权重比 $w(a|s) = \pi_\theta(a|s) / \pi^{FP8}_\theta(a|s)$ 重新加权梯度贡献。截断重要性采样(TIS)将权重裁剪到有界范围:$w_{TIS}(a|s) = \text{clip}(w(a|s), C)$,本文中裁剪阈值C=2,以控制高方差并稳定训练。

TIS是本文保持FP8量化下训练稳定性的关键算法组件。实验表明,不使用TIS的FP8配置会出现明显的精度下降,证明了重要性采样在低精度RL中的不可或缺性。

混合专家(MoE)架构

MoE是一种稀疏激活架构,通过路由器(Router)将输入动态分配给不同的专家网络。例如Qwen3-30B-A3B-Base有30B总参数但每个token仅激活3B参数。MoE的路由决策对数值精度高度敏感,微小的logits扰动可能改变专家选择,导致级联行为差异。这使得MoE模型在训练-推理混合精度设置中比稠密模型更容易出现不稳定性。

本文的核心实验跨越稠密模型(Qwen3-8B)和MoE模型(Qwen3-30B-A3B),且MoE模型展现出独特的精度敏感性和不稳定性模式(如路由器精度消融、rollout-only配置崩溃),理解MoE架构是理解本文实验发现的关键。

KV缓存

KV缓存是Transformer推理中的关键优化,在自回归生成过程中缓存已计算的Key和Value张量以避免重复计算。在长上下文生成(本文最大20K tokens)中,KV缓存占用的GPU显存急剧增长,成为显存瓶颈。当显存不足时,推理引擎(如vLLM)会频繁抢占请求(preemption),浪费已完成的计算并降低吞吐。FP8 KV缓存可以将缓存容量翻倍,显著缓解显存压力。

KV缓存量化是本文的另一核心技术贡献,实验表明KV缓存FP8单独就能带来38%的速度提升(远超线性层W8A8的10-20%),对理解本文的性能分析至关重要。

verl框架与FSDP/Megatron-LM

verl是本文实现FP8 RL的主要开源框架,支持灵活集成多种训练后端(FSDP、Megatron-LM)和推理引擎(vLLM、SGLang)。FSDP(Fully Sharded Data Parallel)是PyTorch原生的分布式训练策略,将模型参数分片到多个GPU上。Megatron-LM是NVIDIA开发的大规模模型训练框架,支持张量并行和流水线并行。本文的动态权重同步需要从这些训练后端获取BF16/FP16权重,量化为FP8后加载到推理引擎。

理解框架架构才能理解本文的工程实现设计,特别是动态权重同步管道的三阶段流程(初始化→权重同步→推理)以及不同后端的兼容性。

研究动机

大语言模型强化学习(LLM RL)正面临严重的系统级瓶颈。与预训练和监督微分不同,RL流水线的每个优化步骤都需要从当前策略生成全新的rollout轨迹。据Seer的系统分析,在同步LLM RL设置中,rollout阶段消耗约80%的总迭代时间。这一瓶颈在长上下文生成场景中尤为突出:本文的实验设置中最大响应长度达20,000个token,此时注意力计算和KV缓存显存占用主导了端到端的步骤时间。现有的FP8推理技术虽然在静态服务场景中已经成熟(TensorRT-LLM、vLLM、SGLang等引擎均已支持),但直接应用于RL场景会引入两个独特的挑战:第一,RL中策略权重每步都在更新,推理引擎必须反复接收最新权重并重新量化,这在解耦训练和推理组件的现代RL栈中工程负担极大;第二,低精度rollout会产生训练-推理不匹配——训练算法假设rollout来自策略 $\pi_\theta$,但实际样本由量化策略 $\pi^{FP8}_\theta$ 生成,这种off-policy成分会严重破坏RL稳定性甚至导致训练崩溃。

本文的目标是本文旨在构建一个系统性的、工程实用的FP8 rollout解决方案,专门针对LLM RL场景。具体目标包括三个层面:第一,在工程层面,实现一个支持动态权重同步和量化加载的生产级FP8 rollout工作流,兼容主流训练后端(FSDP/Megatron-LM)和推理引擎(vLLM/SGLang);第二,在算法层面,通过重要性采样等技术缓解低精度rollout引入的训练-推理不匹配;第三,在验证层面,在稠密模型和MoE模型上全面评估FP8 RL的有效性,证明其能在保持学习效果的同时显著提升rollout吞吐量。

与已有工作不同的是,本文的独特切入角度在于将FP8量化从静态推理场景系统性地扩展到RL的动态场景。与现有工作不同,本文不仅关注单点的量化加速,而是构建了一个完整的端到端解决方案,涵盖三个关键维度:(1)线性层W8A8量化通过块级FP8量化降低计算成本;(2)KV缓存量化通过逐步QKV缩放重校准解决长上下文生成的显存瓶颈;(3)基于重要性采样的rollout校正维持训练稳定性。特别是,本文首次在RL场景中系统性地评估了FP8 KV缓存量化(而不仅仅是线性层量化),并揭示了KV缓存量化对长上下文RL的巨大加速潜力(38%速度提升,远超线性层量化的10-20%)。此外,本文首次在LLM RL中系统性地验证了端到端FP8(训练+推理都用FP8)的可行性,并通过MoE模型的消融实验深入分析了路由器精度、FP8训练配方、缩放因子格式等关键设计选择。

核心方法

本文的方法论遵循一个清晰的系统工程思路:首先识别LLM RL中的主要瓶颈(rollout阶段),然后在两个互补层面应用FP8量化——计算层面(W8A8线性层量化减少计算成本和权重加载带宽)和显存层面(KV缓存量化扩大有效缓存容量和并发度)。为了维持量化下的训练稳定性,引入基于token级截断重要性采样(TIS)的rollout校正机制。整个系统在verl框架中实现,通过三阶段管道(初始化、权重同步、推理)确保每一步RL迭代都能使用最新的FP8量化权重进行rollout。从直觉上讲,这就像把RL训练中的'快照-生成-评估-更新'循环的'生成'环节用低精度加速,同时用重要性采样'修正'低精度带来的偏差。

本文的核心创新点在于系统性地解决了FP8在RL场景中的两个独特挑战,这两个挑战在静态推理中不存在。第一个挑战是动态权重同步:RL每步更新策略权重,需要反复进行BF16到FP8的量化和加载。本文设计了自动化的权重同步管道,支持从FSDP和Megatron-LM获取最新权重并量化加载到vLLM/SGLang推理引擎。第二个挑战是训练-推理不匹配:低精度rollout引入分布偏移。本文采用token级截断重要性采样(TIS)进行校正,计算每个token的重要性权重 $w(a|s) = \pi_\theta(a|s) / \pi^{FP8}_\theta(a|s)$ 并裁剪到$[-C, C]$范围(C=2)。与已有方法的本质区别在于:(1)不仅量化线性层,还首次系统性地将FP8应用于RL场景的KV缓存,通过逐步QKV缩放重校准实现长上下文加速;(2)首次验证端到端FP8 RL(训练和推理都用FP8)的可行性,发现对齐精度可以减少分布偏移;(3)系统性地揭示了MoE模型在混合精度RL中的独特不稳定性模式。

方法步骤详情

本文的方法包含以下关键步骤:第一步,W8A8线性层量化。采用E4M3 FP8格式和128×128的块级量化粒度。权重在同步阶段静态量化(因为一个rollout batch内权重不变),激活在每次前向传播时动态量化以保持精度。量化范围覆盖注意力投影(q_proj, k_proj, v_proj, o_proj)、MLP层(gate_proj, up_proj, down_proj)和MoE专家层(fc1, fc2),但排除嵌入层、归一化层和输出投影(lm_head)。第二步,动态权重同步管道。每步RL迭代执行三个阶段:初始化阶段配置推理引擎的FP8量化并打补丁支持动态加载;权重同步阶段从训练后端获取BF16/FP16权重,执行块级FP8量化,加载到推理引擎;推理阶段推理引擎使用预加载的FP8权重生成rollout,激活量化在前向传播中动态执行。第三步,KV缓存FP8量化。采用推理端校准策略:利用vLLM原生的动态QKV缩放计算能力,在每步RL的rollout阶段前强制重校准(通过重置所有注意力层的calculate_kv_scales标志),确保KV缓存量化反映最新更新的策略权重。第四步,Token级截断重要性采样校正。在训练过程中,使用BF16策略 $\pi_\theta$ 计算FP8 rollout策略 $\pi^{FP8}_\theta$ 采样的token的对数概率,计算重要性权重 $w(a|s) = \pi_\theta(a|s) / \pi^{FP8}_\theta(a|s)$,并裁剪到$[-C, C]$范围(C=2)以控制方差。第五步,端到端FP8 RL(可选)。同时将FP8应用于训练和推理,使用混合配方(前向E4M3,反向E5M2)平衡精度和动态范围,路由器保持BF16以维持路由稳定性。

技术新颖性

本文的技术新颖性体现在多个层面。首先,在系统设计层面,本文首次构建了面向LLM RL的完整FP8 rollout栈,解决了RL特有的动态权重同步和训练-推理不匹配问题,而非简单地将静态推理的FP8方案移植到RL场景。其次,在量化策略层面,本文首次在RL中系统性地评估了KV缓存FP8量化,通过逐步QKV缩放重校准使其适应RL的动态权重更新,实验表明KV缓存量化(38%加速)远比线性层量化(10-20%加速)更有效——这是一个反直觉但重要的发现,因为它表明在长上下文RL中,显存瓶颈(KV缓存)比计算瓶颈(矩阵乘法)更关键。第三,在算法层面,本文首次在LLM RL中验证了端到端FP8的可行性,发现对齐训练和推理的精度可以减少分布偏移(rollout-only FP8的mismatch KL最终飙升导致训练崩溃,而端到端FP8则保持稳定),这一发现挑战了'训练用高精度、推理用低精度'的传统范式。第四,在消融分析层面,本文系统性地研究了MoE模型中路由器精度的影响、FP8训练配方(混合vs纯E4M3)的选择、缩放因子格式(FP32 vs UE8M0)的影响,提供了实用的设计指导。特别是对纯E4M3配方导致训练崩溃的梯度分析——发现MoE fc1层平均5%的量化tile超出E4M3可表示范围,最差tile超过50%——为FP8 RL的配方选择提供了定量依据。

The RL workflow in verl with FP8 W8A8 Linear quantization
Figure 1: The RL workflow in verl with FP8 W8A8 Linear quantization
Ablation on router precision during FP8 rollout for Qwen3-30B-A3B-Base (BF16 training)
Figure 6: Ablation on router precision during FP8 rollout for Qwen3-30B-A3B-Base (BF16 training)
Two implementation strategies for FP8 KV cache
Figure 7: Two implementation strategies for FP8 KV cache

实验结果

本文的核心实验发现可以归纳为以下几个方面。在稠密模型(Qwen3-8B-Base)上,FP8 W8A8线性层量化配合token级TIS的配置在所有关键训练指标上与BF16基线紧密对齐:验证精度、奖励曲线和响应长度增长趋势均高度一致,最终在AIME24基准上达到相当的精度。mismatch KL在FP8配置下自然更高,但在TIS校正下保持稳定。不使用TIS的FP8配置则出现明显的精度退化,证明了重要性采样的关键作用。系统性能方面,使用CUDA 12.9和DeepGEMM库,FP8 rollout在所有序列长度上持续优于BF16,整体加速约10-20%,在长序列上收益更显著。在MoE模型(Qwen3-30B-A3B-Base)上,FP8 W8A8配合TIS同样与BF16+TIS基线紧密对齐。MoE模型的独特观察是mismatch KL在训练过程中持续增长(BF16和FP8配置都如此),源于MoE架构的动态路由特性——推理引擎和训练后端之间的微小精度差异会导致不一致的专家选择,随训练进展逐渐累积。系统性能方面,MoE模型获得显著更大的加速(30-50%),是稠密模型的2-3倍,原因有三:更大的矩阵乘法使FP8张量核心的绝对时间节省更大;FP8的2倍显存占用减少直接加速权重加载和降低显存压力;量化30B权重释放的显存扩大了KV缓存容量,增加并发度并减少抢占。KV缓存量化实验揭示了反直觉但重要的发现:KV缓存FP8单独就能带来38%的速度提升,远超线性层W8A8的约20%加速。这是因为长上下文生成(20K tokens)中,工作负载高度显存受限,BF16基线和线性W8A8配置中vLLM出现频繁的请求抢占,而KV缓存FP8将有效容量翻倍,显著减少了抢占。全FP8(线性+KV+注意力)达到44%的综合加速。端到端FP8实验表明,FP8训练+FP8推理与BF16基线对齐良好,两者达到相当的最终精度(AIME24约0.55-0.6)。关键发现是mismatch KL的排序:仅rollout FP8 > 端到端FP8 > BF16。仅rollout FP8配置在约700步时KL飙升至5以上导致训练崩溃,而端到端FP8保持稳定,证明对齐精度可以减少分布偏移。消融研究发现:路由器精度方面,FP8路由器的mismatch KL最高(早期约0.004),BF16和FP32路由器表现相当,表明排除路由器于量化之外已足够;训练配方方面,混合配方(前向E4M3+反向E5M2)稳定训练600步,纯E4M3在约500步时崩溃,梯度分析显示MoE fc1层平均5%的tile超出E4M3范围,最差case超过50%;缩放因子方面,FP32缩放因子一致性地产生最低的mismatch KL,UE8M0(2的幂次)因量化粒度更粗而mismatch更高。

Training curves for Qwen3-8B-Base
Figure 2: Training curves for Qwen3-8B-Base
Rollout performance on Qwen3-8B-Base
Figure 3: Rollout performance on Qwen3-8B-Base
Training curves for Qwen3-30B-A3B-Base MoE
Figure 4: Training curves for Qwen3-30B-A3B-Base MoE
Rollout performance on Qwen3-30B-A3B-Base MoE
Figure 5: Rollout performance on Qwen3-30B-A3B-Base MoE
Training curves for Qwen3-8B-Base with KV cache FP8
Figure 8: Training curves for Qwen3-8B-Base with KV cache FP8
Rollout speedup on Qwen3-8B-Base
Figure 9: Rollout speedup on Qwen3-8B-Base
Training curves for end-to-end FP8 RL on Qwen3-30B-A3B-Base MoE
Figure 10: Training curves for end-to-end FP8 RL on Qwen3-30B-A3B-Base MoE
Ablation on FP8 training recipe for Qwen3-30B-A3B-Base
Figure 11: Ablation on FP8 training recipe for Qwen3-30B-A3B-Base
Ablation on scaling factor format
Figure 12: Ablation on scaling factor format
查看结构化数据
任务指标本文基线提升
稠密模型Rollout吞吐量(Qwen3-8B-Base, 20K tokens) Time-per-token (ms/token) 和整体加速比 FP8 W8A8线性层:约10-20%加速;KV缓存FP8:约38%加速;全FP8(线性+KV+注意力):约44%加速 BF16全精度推理 W8A8线性层:10-20%;KV缓存FP8:38%;全FP8:44%
MoE模型Rollout吞吐量(Qwen3-30B-A3B-Base, 20K tokens) Time-per-token (ms/token) 和整体加速比 FP8 W8A8线性层:约30-50%加速 BF16全精度推理 30-50%,是稠密模型的2-3倍
AIME24验证精度(稠密模型Qwen3-8B-Base) 验证精度(正确求解问题百分比) FP8 W8A8 + TIS:与BF16基线对齐 BF16无TIS 保持相当精度;无TIS的FP8出现明显退化
AIME24验证精度(MoE模型Qwen3-30B-A3B-Base) 验证精度(正确求解问题百分比) FP8端到端:约0.55-0.6 BF16端到端:约0.55-0.6 保持相当精度
训练-推理不匹配(mismatch KL) KL散度 $D_{KL}(\pi^{FP8}_\theta || \pi_\theta)$ 端到端FP8:稳定在合理范围内 仅rollout FP8:最终飙升至5+导致崩溃 端到端FP8对齐精度显著降低分布偏移

局限与改进

本文的局限性体现在多个方面。首先,在模型规模验证上,本文仅在8B稠密模型和30B MoE模型上进行了实验,尚未验证在更大规模模型(如70B+)上的有效性,而大规模模型可能面临更严峻的数值精度挑战。其次,在任务范围上,本文仅在数学推理任务(AIME24基准)上进行了端到端RL训练验证,未涉及代码生成、通用对话等其他RL应用场景,不同任务的奖励信号分布和梯度动态可能对FP8的容忍度不同。第三,训练端加速的缺失——在30B MoE模型的端到端FP8实验中,作者承认未观察到显著的训练端加速,因为RL训练循环中的非GEMM开销(数据加载、奖励计算、权重同步等)稀释了单算子的加速收益。第四,更激进格式的未探索——作者提到NVFP4等更激进格式因累积量化误差导致不稳定而未深入探索,限制了进一步压缩的潜力。第五,KV缓存量化的校准开销——推理端校准策略需要在每步rollout前重置和重新计算QKV缩放因子,虽然实验中未量化这一开销,但在高频RL更新场景中可能成为额外负担。第六,MoE模型的不稳定性——虽然本文揭示了MoE模型在混合精度下的不稳定性模式(rollout-only FP8配置在约700步崩溃),但仅依赖TIS校正可能不足,需要更强的校正机制如Rollout Router Replay(R3)或Masked Importance Sampling(MIS),这些技术在本文中仅被提及但未充分验证。

独立分析的弱点

本文存在几个值得关注的弱点。第一,缺乏对校正机制计算开销的量化分析——TIS校正需要在训练时用BF16策略重新计算所有FP8生成token的对数概率,这意味着额外的前向传播开销,但论文未提供这一开销的具体数据,读者难以评估'用训练时间换推理速度'的实际权衡。建议未来工作系统性地测量TIS的计算开销占比,并探索更轻量的校正方法。第二,MoE模型的mismatch KL持续增长问题未得到根本解决——虽然作者观察到这一现象并解释了原因(路由不一致性累积),但在实验中仅使用TIS(C=2)进行校正,未验证文中提到的更强校正机制(R3、MIS),对MoE模型在更长训练中的稳定性缺乏信心。建议在MoE模型上系统对比TIS、MIS和R3的效果。第三,KV缓存量化的精度分析不够深入——论文展示了KV缓存FP8与BF16基线在整体指标上对齐,但未分析不同注意力头、不同位置(浅层vs深层)的量化误差分布,也未提供不同量化粒度(如per-head vs per-tensor)的消融,难以判断当前方案是否最优。第四,端到端FP8实验中,混合配方崩溃发生在约500步,而实验总步数仅600步,缺乏更长训练的稳定性验证,特别是训练后期梯度分布可能发生更大变化。第五,缩放因子消融中UE8M0的mismatch KL更高,但论文未分析其在更激进设置(如更长序列、更大模型)下是否会导致更大的性能差距。

未来方向

论文作者提出了几个明确的未来方向,同时基于本文成果可以延伸出更多研究方向。作者明确提出的包括:(1)探索更激进的量化格式如NVFP4,但需解决累积量化误差导致的不稳定性;(2)在更大规模模型上验证FP8 RL的有效性;(3)扩展到多轮对话和智能体RL场景,其中长上下文进一步加剧rollout效率的压力。基于本文成果可延伸的方向包括:(1)自适应量化策略——根据训练阶段动态调整量化精度(如早期用更保守的精度,后期逐步降低),以平衡训练稳定性和推理加速;(2)FP8与异步RL的结合——异步架构(如AReaL)解耦了生成和训练,FP8可以进一步降低异步设置中off-policy的程度;(3)路由器感知的MoE量化——本文发现路由器精度对MoE至关重要,未来可以设计专门为MoE路由器优化的量化策略,而非简单排除;(4)FP8与其他低精度技术的协同——如与投机解码(speculative decoding)、稀疏注意力等技术结合;(5)跨任务泛化验证——在代码生成、通用对话、工具调用等多样化的RL任务上验证FP8 RL的普适性;(6)更精细的mismatch分析——研究不同层、不同token位置的量化误差对最终学习效果的贡献,以指导更智能的混合精度策略。

复现评估

本文的复现性评估较好。开源方面,核心实现基于verl开源框架(github.com/volcengine/verl),FP8 W8A8线性rollout可通过配置项actor_rollout_ref.rollout.quantization=fp8启用,降低了复现门槛。论文提供了详细的配置示例和使用说明(附录A),包括完整的训练脚本、软件版本和超参数设置。硬件要求方面,实验在H100-class GPU上进行(8×H100用于8B模型,2×8×H100用于30B模型),CUDA 12.9+和DeepGEMM库为依赖条件,这对大多数研究机构而言是可获取的。训练设置方面,使用DAPO算法、AIME24基准、prompt batch size 32、n=16、最大20K token响应长度,超参数相对标准且有明确记录。数据方面,AIME24是公开的数学竞赛基准,无需额外数据准备。复现难度主要体现在:(1)H100 GPU的硬件成本较高;(2)动态权重同步的工程实现涉及对推理引擎的补丁,可能需要特定版本的vLLM/SGLang;(3)RL训练的超参数高度依赖具体案例,论文中的'验证有效配方'可能需要针对不同模型重新调优。总体而言,在具备H100硬件和verl框架经验的团队中,复现本文的核心结果是可行的。