PaperWeekly 前天 19:45
BF16并非最优,可能导致RL微调训练与推理不匹配
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

一篇来自NUS和Sea AI Lab的研究指出,在强化学习(RL)微调过程中,使用BF16精度可能导致训练与推理阶段出现不匹配现象,即使训练指标一切正常。研究发现,BF16的数值精度不足以在高精度自回归链条中精确表示log prob,从而在每一步训练中累积误差,导致模型上线后表现不稳定。通过将RL微调阶段从BF16切换回FP16,可以显著缩小训练与推理之间的差距,恢复模型的稳定性。该研究强调,在RL微调对比实验中,FP16应作为基础实验前提,以确保结果的可解释性。

BF16精度可能加剧RL微调中的训练-推理不匹配:研究发现,尽管RL微调在训练过程中各项指标表现正常,但使用BF16精度时,模型在实际部署后表现可能与训练时存在显著差异。这种不匹配并非模型退化,而是BF16数值精度在自回归链条中累积误差所致,每一步的微小偏差都会被放大。

数值精度是训练-推理不匹配的根源:BF16的mantissa bit数量少于FP16,导致其在数值表示层面上,尤其是在token-level的log prob上,精度不够精细。这种精度上的不足使得在多步递推过程中,训练和推理的数值轨迹产生差异,最终影响模型在真实应用中的稳定性。

FP16是解决不匹配问题的有效方案:实验证明,将RL微调阶段的精度从BF16切换回FP16,能够显著缩小训练与推理之间的差距,使模型表现更稳定。FP16在精度和计算成本之间达到了更优的平衡,是确保RL微调模型可解释性和可靠性的关键。

RL微调实验需以FP16为基准:该研究的核心论点是,任何基于BF16的RL微调对比实验,若未先建立FP16基线,其结果的可解释性将受到质疑。在讨论算法改进之前,确保精度的对齐是至关重要的前提,FP16应成为RL微调实验的必要组成部分。

原创 让你更懂AI的 2025-11-03 21:32 北京

BF16不是最优,而是风险源

RL 微调训练时一切正常,为什么一上线就像换了个模型?这篇被 Andrej Karpathy 点赞的 NUS 研究给出一个极其反直觉的答案:不是模型退化,是你用的 BF16 在悄悄放大误差。

这个现象不是偶然事件,而是许多团队在实际落地 RL 微调时反复遭遇的真实痛点:训练期的各类指标都正常、曲线持续向好,可一旦投入真实推理流程,表现就不再一致,仿佛训练和推理在走两条不同的轨道。

这篇来自 NUS × Sea AI Lab 并获得 Andrej Karpathy 点赞的论文提醒我们:真正让模型“训练一个样、上线一个样”的,不一定是算法没调好,而是一件大家几乎都忽略的底层设定——BF16 的数值精度不够。

▲ Karpathy 表示最近时间线上不断看到这篇工作,他已在 nanochat 本地分支尝试

作者的结果说明:只要把 RL 微调阶段从 BF16 换回 FP16,训练端与推理端的差距会大幅缩小,许多“以前要靠不断兜底才能保住”的设置,会在 FP16 下自然恢复稳定。

论文标题:

Defeating the Training-Inference Mismatch via FP16

论文链接:

https://arxiv.org/pdf/2510.26788

代码链接:

https://github.com/sail-sg/Precision-RL

研究背景

RL 微调是逐 token 推进的生成过程,每一步的输出会变成下一步的输入,不是“一次性算到底”。这意味着:只要每一步存在微小偏差,它就会在后续不断被放大。

论文在 introduction 里指出:训练引擎和推理引擎虽然数学公式等价,但在实际执行中并不是完全同一条数值路径,这个差异即使很小,也会在多步累积中显性化。

因此,“训练期稳定”本身不能保证“推理端稳定”。只要训练与推理不是严格的同一数值轨迹,training-inference mismatch 就是一个可能在多步递推中被累积并放大的风险源。

方法

本文并不是提出新算法,而是讨论 standard REINFORCE 在数值精度下的敏感性。

我们从目标函数  写起:

Policy Gradient 的基本 REINFORCE 形式为:

上述两式是标准 policy gradient 的基线,还不涉及本文关注的 precision 维度。

在实际 RL 微调中,rollout 的采样分布与训练分布并不严格一致。因此 mismatch 第一次显式出现的位置,是 importance weight 的比值 

ratio 的数值偏移不是“工程噪声”,自回归链条会在每一步继续把它往后带,从而逐步累积。

论文进一步使用 truncated importance sampling,把比值限制在阈值 

这一式是转折点,因为从这里起 mismatch 可以直接“看得见”。

作者在下图中用 reward learning curves 展示:在相同 pipeline 配置下,仅仅改变 precision,训练过程本身就会呈现不同的稳定性轨迹。

▲ 图1. 在相同 pipeline 下,仅切换 precision,就会使 BF16 的 reward learning 曲线显著更不稳定;precision 会改变训练动力学本身。

precision 之所以在这里产生差异,并不是因为 RL 出现“异常表现”,而是因为 BF16 mantissa bit 更少,在数值表示层难以维持足够的 token 级 log prob 精细度,这就是 training–inference mismatch 的数值根源。

Precision机制

上文中,我们已经看到 mismatch 会直接落在  上。放大与否不是“实现细节”,而是由浮点格式本身决定。论文强调 BF16 虽然 exponent 更大,但 mantissa bit 更少,这会导致 token-level 的 log prob 在小数尺度上可表达精度更粗。

在自回归链条中,这不是“个位数差一点”这种概念,因为每一步的输出会成为下一步的输入。因此 precision 的差异最终表现为 log prob 在小数粒度上的表示范围不同。

这也是论文之所以能直接解释:为什么同一策略在 BF16 下 rollout 和训练对不上,但换成 FP16 后 mismatch 就明显收敛到可控范围内。

▲ 表1. BF16 mantissa bits 明显低于 FP16

实验

4.1 为什么要先看 mismatch?

要证明 precision 会把训练与推理带到不同轨道,第一步必须先确认 mismatch 是真实存在的。

为了验证 mismatch 并非“肉眼观感”,作者先直观测量在同一模型下 token 分布与序列级 log 概率比值的差异。如果 mismatch 是 BF16 才被放大,那么 FP16 的分布应该更“收”,而 BF16 应该更“散”。

结果确实如此:在同条件下,BF16 的概率统计明显更发散,而 FP16 更紧(见下图)。

▲ 图2. FP16 下训练与推理概率分布对齐更紧;BF16 更散,更易累积偏差

4.2 为什么不是算法原因?

既然 mismatch 已经被确认存在,下一步就必须排除“是算法差异导致的”。 为了排除“是不是 reward / schedule / baseline 算法不同导致的差异”,作者把训练端 precision 单独切成 FP16,不动其他超参。

如果差异来自算法,那么 FP16 不应该自动更稳;但实验显示,单换 precision 就能让 RL 微调显著更稳定、能跑更久,同时在同一 FP16 框架下比较不同算法,差异才反映算法本身(见下图)。

▲ 图3. BF16 换成 FP16 后训练稳定性显著提升

▲ 图4. 在统一 FP16 条件下才有意义比较不同算法

▲ 图5. 训练与推理统一 FP16 最能减少不匹配累积

既然算法因素已被排除,最后一步就是确认 mismatch 是否落在最终可量化的任务表现上。如果 precision 真是根因,那么最终 checkpoint 在 AMC / AIME 等客观评测也应该呈现差异。

作者把不同精度训练的模型直接摊在 benchmark 上,结果非常一致:FP32 最稳但成本太高;BF16 明显最不稳;FP16 在“算力成本 / 行为稳定”之间落在一个最合理的位置(见下图)。

▲ 表2. AMC / AIME 等评测分数对比:FP16 在稳定性与效率之间落在可接受区间

总结

这篇论文最锋利的地方根本不是“BF16 不稳”,而是它直接把过去半年整个 RL 微调社区讨论的方法差异,全部推进了一个更底层的假设层:如果训练与推理的数值轨道都不一致,那么你看到的 “R1 vs GRPO vs DPO 曲线差异”,可能根本不是算法差异,而是精度没对齐造成的错觉。

作者并不是在给 FP16 打广告,而是用三层链式证据(分布层 → 过程层 → benchmark层)证明:BF16 mismatch 是“可测量、可复现、可在 checkpoint 上量化的”。

换句话说,它不是 side-effect,不是边界 case,而是默认 BF16 本身就会改变 RL 的数值动力学

这意味着:任何基于 BF16 的 RL 对比实验,如果没有先跑 FP16 baseline,理论上都不具备“可解释”资格。

也就是说,在开始讨论“R1 的 ratio 是否改进”、“GRPO reward shaping 是否更稳定”之前,最底层那一步其实是 —— 先确认你不是把论证建在一个错的精度设定上

所以如果你现在还在跑 R1 / GRPO / DPO,下一次把实验 push 上线之前,不要先调 reward,也不要先换 loss,先把 FP16 baseline 跑稳

换句话说,在这篇论文之后,FP16 不是一个工程偏好,而是一个必须先成立的实验前提 —— precision 没对齐,RL 微调就没有可解释性。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

BF16 FP16 RL微调 训练-推理不匹配 数值精度 强化学习 模型稳定性 Andrej Karpathy NUS Sea AI Lab BF16 FP16 RL Fine-tuning Training-Inference Mismatch Numerical Precision Reinforcement Learning Model Stability Andrej Karpathy NUS Sea AI Lab
相关文章