⁉️FP16 vs BF16 für RL

Das Überwinden der Trainings-Inferenz-Unstimmigkeit via FP16 https://arxiv.org/pdf/2510.26788 zeigt, wie die Verwendung von float16 besser als bfloat16 ist

Float16 vs Bfloat16

Es gab ein Paper mit dem Titel „Überwindung der Trainings-Inferenz-Unstimmigkeit mittels FP16" https://arxiv.org/pdf/2510.26788arrow-up-right in dem gezeigt wird, dass die Verwendung von Float16-Präzision beim Reinforcement Learning deutlich besser sein kann als die Verwendung von Bfloat16.

Tatsächlich wird es bei längeren Generierungen immer schlimmer, wenn man Bfloat16 verwendet:

Wir haben eine Untersuchung durchgeführt, und FESTGESTELLT, dass Float16 stabiler ist als Bfloat16 mit deutlich kleineren Gradientennormen siehe https://x.com/danielhanchen/status/1985557028295827482arrow-up-right und https://x.com/danielhanchen/status/1985562902531850472arrow-up-right

🤯A100 Cascade-Attention-Fehler

Laut https://x.com/RichardYRLi/status/1984858850143715759arrow-up-right und https://yingru.notion.site/When-Speed-Kills-Stability-Demystifying-RL-Collapse-from-the-Training-Inference-Mismatch-271211a558b7808d8b12d403fd15eddaarrow-up-right, hatten ältere vLLM-Versionen (vor 0.11.0) fehlerhafte Attention-Mechanismen für A100 und ähnliche GPUs. Bitte aktualisieren Sie vLLM! Wir deaktivieren außerdem standardmäßig Cascade Attention in vLLM während Unsloth-Reinforcement-Learning, wenn wir eine ältere vLLM-Version feststellen.

Verschiedene Hardware verändert ebenfalls die Ergebnisse; neuere und teurere GPUs zeigen geringere KL-Differenzen zwischen Inferenz- und Trainingsseite:

🔥Verwendung von Float16 in Unsloth RL

Um Float16-Präzision in Unsloth GRPO und RL zu verwenden, müssen Sie lediglich dtype = torch.float16 setzen, und wir kümmern uns um den Rest!

Zuletzt aktualisiert

War das hilfreich?