2026年10月23日,研究人员Yijing Ke、Tianle Cai、Ruosong Wang在arXiv发表论文,指出大语言模型强化学习训练崩溃的根因藏在一个工程细节里:推理栈与训练栈在三处数学运算上舍入时机不一致。修复这三处,即可在BF16精度下稳定强化学习训练过程,无需替换全局精度格式,无需修改学习算法,推理引擎、矩阵乘法内核和注意力计算内核全部保持不变。
问题的本质:两套系统、一套权重、两套舍入
大语言模型强化学习(无论RLHF还是GRPO等衍生方法)通常将推理与训练拆分在不同系统中运行。表面上,双边使用相同的权重和BF16张量,但底层实现的细微差异会让原本应该是"在策略(on-policy)"的梯度更新悄然变成"离策略(off-policy)"。
BF16的动态范围足够大,但精度位(mantissa)只有7位,远低于FP32的23位。当两套系统对同一数值在不同时机进行舍入时,微小的数值差异会在梯度反传中被放大,破坏训练与推理之间的数值一致性,最终触发策略崩溃。
既有方案的代价
业内此前应对这一问题主要有三条路:一是对齐推理与训练的完整执行栈;二是全局切换精度;三是修改学习算法引入额外校正项。
2025年10月,另一研究团队在arXiv发布的论文(arXiv:2510.26788)提出直接将BF16改为FP16,仅需修改几行代码。该方案认为BF16过大的舍入误差是根本原因,均匀使用FP16可带来更稳定的优化过程和更快的收敛速度,但FP16动态范围不及BF16,在某些训练场景下有溢出风险。
外科手术式修复:三个节点
Ke等人的新论文定位"哪几个计算位置的舍入误差对训练稳定性影响最大",只在那里做对齐。
研究团队锁定三个区域:
- RoPE(旋转位置编码):位置信息的计算节点,BF16精度损失会直接影响推理与训练之间的位置感知一致性;
- SwiGLU:当代大语言模型普遍采用的门控激活函数,其乘法门控机制对数值精度敏感;
- 残差RMSNorm:归一化层,跨层数值积累误差的经典聚集点。
修复方法在上述三个区域的计算过程中,将部分中间变量暂时保持FP32格式,只在最终输出到BF16时才进行舍入。推理引擎、矩阵乘法内核、注意力计算内核和学习目标函数全部保持不变。
验证结果与一个出人意料的发现
该论文在四款Qwen家族模型上进行了测试。同时对齐三个区域可以完全防止默认BF16基线下出现的训练崩溃。单独对齐RoPE路径,在所有测试运行中同样足够,尽管SwiGLU和RMSNorm区域的数值差异依然存在。这指向一个具体的工程结论:RoPE是推理与训练数值漂移的主要来源。
2024年11月,上海人工智能实验室等机构的研究揭示了BF16精度限制在长上下文训练中破坏RoPE相对位置编码的问题,并据此开发了AnchorAttention等补偿方案,在某些场景下将训练时间缩短超过50%。
工程价值:一个诊断框架
对于正在部署LLM强化学习训练流水线的团队,这篇论文提供了一条具体的故障定位路径。以往遇到RL训练不稳定,工程师往往只能"换精度、调超参数、改算法"三板斧轮番尝试。现在有了"检查推理与训练栈的舍入位置是否对齐"这一精确的诊断入口。
在三个局部区域保留FP32中间变量的额外显存开销相当有限,远低于全局切换精度带来的显存压力。与FP16方案相比,本文方法保持了BF16的大动态范围优势,对于梯度值跨度较大的训练场景具有实际意义。
独立判断
全局切换FP16同样可行,且工程实现更简单;如果团队的训练栈允许统一精度,FP16是一个合理的选择。本文方法的独特贡献是一种思维方式:数值不稳定的根源往往不在算法逻辑,而在运算顺序和舍入时机的工程细节。
四款Qwen模型上的验证是扎实的起点,但仅限于同一模型家族。这一结论能否平移到Llama、Mistral或其他激活函数组合,目前没有直接证据。
从更宏观的视角看,BF16训练稳定性修复方案目前呈多路并进态势——全局换精度、局部舍入对齐、算法修正同时存在,没有形成统一共识。这说明LLM强化学习的底层工程尚未标准化。
© 2026 Winzheng.com 赢政天下 | 转载请注明来源并附原文链接