⁉️RL 中的 FP16 与 BF16
通过 FP16 击败训练-推理不匹配 https://arxiv.org/pdf/2510.26788 表明使用 float16 比 bfloat16 更好
Float16 与 Bfloat16
有一篇题为“通过 FP16 解决训练-推理不匹配" https://arxiv.org/pdf/2510.26788 展示了在进行强化学习时,使用 float16 精度在很多情况下会比使用 bfloat16 好得多。

事实上,生成越长,使用 bfloat16 时情况就越糟:

我们做了一项调查,并且 确实发现 float16 更稳定 相比 bfloat16,其梯度范数要小得多,见 https://x.com/danielhanchen/status/1985557028295827482 和 https://x.com/danielhanchen/status/1985562902531850472



🤯A100 级联注意力 Bug
根据 https://x.com/RichardYRLi/status/1984858850143715759 和 https://yingru.notion.site/When-Speed-Kills-Stability-Demystifying-RL-Collapse-from-the-Training-Inference-Mismatch-271211a558b7808d8b12d403fd15edda,较旧版本的 vLLM(0.11.0 之前)在 A100 及类似 GPU 上的注意力机制存在故障。请更新 vLLM!如果我们检测到较旧的 vLLM 版本,在 Unsloth 强化学习期间我们也会默认禁用级联注意力。

不同的硬件也会改变结果,其中更新、更昂贵的 GPU 在推理端和训练端之间的 KL 差异更小:

🔥在 Unsloth RL 中使用 float16
要在 Unsloth GRPO 和 RL 中使用 float16 精度,你只需要设置 dtype = torch.float16 剩下的就交给我们!
最后更新于
这有帮助吗?

