⁉️RL における FP16 と BF16 の比較

学習と推論の不一致を克服する FP16: https://arxiv.org/pdf/2510.26788 は float16 を bfloat16 よりも優れていることを示しています

Float16 と Bfloat16 の比較

次のタイトルの論文がありました「トレーニングと推論の不一致を FP16 で克服する" https://arxiv.org/pdf/2510.26788arrow-up-right 強化学習を行う際に、bfloat16 よりも float16 の精度を使用する方が劇的に優れていることを示しています。

実際、生成が長くなるほど、bfloat16 を使用した場合の悪化が大きくなります:

我々は調査を行い、 float16 の方がより安定していることを確認しました bfloat16 よりも勾配ノルムがはるかに小さいことが見られます。詳細は https://x.com/danielhanchen/status/1985557028295827482arrow-up-right および https://x.com/danielhanchen/status/1985562902531850472arrow-up-right

🤯A100 のカスケードアテンションのバグ

以下によれば https://x.com/RichardYRLi/status/1984858850143715759arrow-up-right および https://yingru.notion.site/When-Speed-Kills-Stability-Demystifying-RL-Collapse-from-the-Training-Inference-Mismatch-271211a558b7808d8b12d403fd15eddaarrow-up-right古い vLLM バージョン(0.11.0 より前)では A100 や類似の GPU に対してアテンション機構が壊れていました。vLLM をアップデートしてください!また、Unsloth の強化学習中に古い vLLM バージョンを検出した場合、vLLM ではデフォルトでカスケードアテンションを無効にしています。

ハードウェアが変わると結果も変わり、より新しく高価な GPU の方が推論側とトレーニング側の KL 差が小さくなります:

🔥Unsloth RL での float16 の使用

Unsloth の GRPO および RL で float16 精度を使用するには、次のように設定するだけです dtype = torch.float16 あとはこちらで処理します!

最終更新

役に立ちましたか?