⁉️FP16 vs BF16 pour le RL

Vaincre le décalage entraînement-inférence via FP16 https://arxiv.org/pdf/2510.26788 montre comment l'utilisation du float16 est meilleure que le bfloat16

Float16 vs Bfloat16

Il y avait un article intitulé "Défaire le décalage entraînement-inférence via FP16" https://arxiv.org/pdf/2510.26788arrow-up-right montrant comment l'utilisation de la précision float16 peut être considérablement meilleure que l'utilisation de bfloat16 lors d'un apprentissage par renforcement.

En fait, plus la génération est longue, plus c'est pire lors de l'utilisation de bfloat16 :

Nous avons mené une enquête, et constatons que le float16 est plus stable que le bfloat16 avec des normes de gradient bien plus petites voir https://x.com/danielhanchen/status/1985557028295827482arrow-up-right et https://x.com/danielhanchen/status/1985562902531850472arrow-up-right

🤯Bug d'attention en cascade sur A100

Comme indiqué par https://x.com/RichardYRLi/status/1984858850143715759arrow-up-right et https://yingru.notion.site/When-Speed-Kills-Stability-Demystifying-RL-Collapse-from-the-Training-Inference-Mismatch-271211a558b7808d8b12d403fd15eddaarrow-up-right, les anciennes versions de vLLM (avant 0.11.0) avaient des mécanismes d'attention défectueux pour les A100 et GPU similaires. Veuillez mettre à jour vLLM ! Nous désactivons également par défaut l'attention en cascade dans vLLM lors de l'apprentissage par renforcement Unsloth si nous détectons une ancienne version de vLLM.

Différents matériels modifient également les résultats, où les GPU plus récents et plus coûteux présentent une moindre différence KL entre l'inférence et l'entraînement :

🔥Utiliser le float16 dans Unsloth RL

Pour utiliser la précision float16 dans Unsloth GRPO et RL, il vous suffit de définir dtype = torch.float16 et nous nous occupons du reste !

Mis à jour

Ce contenu vous a-t-il été utile ?