Formation de précision mixte
L'entraînement de précision mixte accélère l'entraînement du réseau neuronal et réduit l'utilisation de la mémoire en effectuant la plupart des calculs en virgule flottante 16 bits au lieu de 32 bits.
Aperçu
It lets the same GPU train bigger models faster with almost no loss in accuracy.
Plongée profonde
La formation traditionnelle stocke les poids et exécute les mathématiques en virgule flottante 32 bits (FP32). La précision mixte utilise des formats 16 bits de moindre précision (FP16 ou bfloat16) pour les multiplications matricielles lourdes, tout en conservant une « copie principale » 32 bits des poids pour des mises à jour stables. Étant donné que les nombres 16 bits sont deux fois plus petits, ils tiennent davantage dans la mémoire GPU et les cœurs Tensor les traitent environ 2 à 8 fois plus rapidement. Le problème est la plage étroite du FP16 : de minuscules gradients peuvent descendre jusqu'à zéro. La solution standard est la mise à l'échelle des pertes, qui multiplie la perte par un facteur important avant la rétropropagation afin que les petits gradients restent représentables, puis la divise avant la mise à jour du poids. Apex de NVIDIA et AMP (Automatic Mixed Precision) intégré dans PyTorch et TensorFlow automatisent cela.
Aperçu technique
FP16 n'a que 5 bits d'exposant, ce qui donne une petite plage dynamique qui provoque un dépassement inférieur du gradient. Bfloat16 conserve 8 bits d'exposant (correspondant à la plage du FP32) mais moins de bits de mantisse, il a donc rarement besoin d'une mise à l'échelle des pertes - une raison principale pour laquelle les TPU Google et les GPU modernes le privilégient. Les cœurs Tensor accélèrent le travail en multipliant les opérandes de 16 bits mais en accumulant des sommes partielles dans FP32, préservant ainsi la précision là où les erreurs de sommation s'aggraveraient autrement.
Impact stratégique
Coût et budget
Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.
Décisions plus claires
La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.
Contrôle qualité
De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.
L’avenir de la formation de précision mixte
La précision ne cesse de baisser. La formation FP8, prise en charge sur les GPU NVIDIA Hopper et Blackwell, devient la norme pour les modèles frontières, et la recherche sur les formats FP4 et microscaling (MXFP) va plus loin. Attendez-vous à ce que les frameworks sélectionnent automatiquement la précision par couche, le matériel gère nativement des formats toujours plus restreints et la formation prenant en compte la quantification pour brouiller la frontière entre la formation de faible précision et l'inférence, réduisant ainsi le coût de formation de modèles comportant des milliards de paramètres.
Mise en œuvre dans le monde réel
torch.cuda.amp.autocast de PyTorch encapsulant une boucle d'entraînement pour réduire de moitié environ la mémoire et doubler le débit sur un seul GPU
Entraîner des modèles de langage volumineux tels que des transformateurs de style GPT dans bfloat16 sur des TPU pour éviter le réglage de la mise à l'échelle des pertes
Adaptation d'une taille de lot plus grande sur un GPU RTX grand public en faisant passer la formation d'images ResNet du FP32 au FP16
Précision mixte FP8 sur les GPU NVIDIA H100 pour réduire le coût de pré-entraînement des modèles à l'échelle frontière
Risques et garde-fous
L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.
Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.
Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.
Feuille de route de mise en œuvre
Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.
Benchmark dans des conditions de charge et de données réalistes.
Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.
Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.
Continuez à explorer
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Mixed Precision Training quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Guide suivant
Pseudo-étiquetage et auto-formation
Questions fréquemment posées
What is Mixed Precision Training?
L'entraînement de précision mixte accélère l'entraînement du réseau neuronal et réduit l'utilisation de la mémoire en effectuant la plupart des calculs en virgule flottante 16 bits au lieu de 32 bits. Il permet au même GPU d’entraîner des modèles plus gros plus rapidement, sans pratiquement aucune perte de précision.
Pourquoi l'entraînement de précision mixte conserve-t-il une « copie principale » 32 bits des poids ?
Les mises à jour de poids sont souvent très petites ; les accumuler en 16 bits perdrait en précision, donc une copie principale de pleine précision maintient les mises à jour exactes.
Quel problème la mise à l’échelle des pertes résout-elle dans la formation FP16 ?
FP16 a une plage dynamique limitée, de sorte que les petits gradients peuvent être arrondis à zéro ; multiplier la perte avant le backprop les maintient représentables.
Quel avantage bfloat16 a-t-il par rapport au FP16 ?
Bfloat16 conserve 8 bits d'exposant comme FP32, donc sa plage dynamique est large et le dépassement de gradient est rare.
Comment les Tensor Cores préservent-ils la précision tout en utilisant des entrées 16 bits ?
Les cœurs Tensor multiplient les opérandes de 16 bits mais s'accumulent en 32 bits, empêchant ainsi les erreurs de sommation de s'aggraver.
Quel est le principal avantage de l’utilisation de valeurs 16 bits au lieu de 32 bits pendant l’entraînement ?
Les nombres demi-taille contiennent plus de données dans la mémoire GPU et permettent au matériel spécialisé de traiter les mathématiques matricielles plusieurs fois plus rapidement.