⁉️FP16 vs. BF16 für RL
„Defeating the Training-Inference Mismatch via FP16“ https://arxiv.org/pdf/2510.26788 zeigt, dass die Verwendung von float16 besser ist als bfloat16
Float16 vs. Bfloat16
Es gab ein Paper mit dem Titel "Die Trainings-Inferenz-Diskrepanz durch FP16 überwinden" https://arxiv.org/pdf/2510.26788 das zeigt, wie die Verwendung von float16-Präzision beim Reinforcement Learning deutlich besser sein kann als die Verwendung von bfloat16.

Tatsächlich gilt: Je länger die Generierung, desto schlimmer wird es bei der Verwendung von bfloat16:

Wir haben dies untersucht, und stellten fest, dass float16 stabiler ist als bfloat16 mit viel kleineren Gradienten-Normen, siehe https://x.com/danielhanchen/status/1985557028295827482 und https://x.com/danielhanchen/status/1985562902531850472



🤯A100 Cascade-Attention-Bug
Gemäß https://x.com/RichardYRLi/status/1984858850143715759 und https://yingru.notion.site/When-Speed-Kills-Stability-Demystifying-RL-Collapse-from-the-Training-Inference-Mismatch-271211a558b7808d8b12d403fd15edda, ältere vLLM-Versionen (vor 0.11.0) hatten defekte Attention-Mechanismen für A100 und ähnliche GPUs. Bitte aktualisiere vLLM! Wir deaktivieren außerdem standardmäßig Cascade Attention in vLLM während des Unsloth-Reinforcement-Learnings, wenn wir eine ältere vLLM-Version erkennen.

Auch unterschiedliche Hardware verändert die Ergebnisse, wobei neuere und teurere GPUs einen geringeren KL-Unterschied zwischen Inferenz und Training aufweisen:

🔥Verwendung von float16 in Unsloth RL
Um float16-Präzision in Unsloth GRPO und RL zu verwenden, musst du nur setzen dtype = torch.float16 und wir kümmern uns um den Rest!
Zuletzt aktualisiert
War das hilfreich?

