Précision mixte
Améliorez l'efficacité de l'apprentissage profond grâce à l'entraînement en précision mixte ! Obtenez des vitesses plus rapides, une utilisation réduite de la mémoire et des économies d'énergie sans sacrifier la précision.
La précision mixte est une technique utilisée dans l'apprentissage profond pour accélérer l'entraînement des modèles et réduire la consommation de mémoire. Elle consiste à utiliser une combinaison de formats numériques de plus faible précision, comme le virgule flottante 16 bits (FP16), et de formats de plus haute précision, tels que le virgule flottante 32 bits (FP32), pendant le calcul. En utilisant stratégiquement des nombres de plus faible précision pour certaines parties du modèle, telles que la multiplication des poids, et en conservant les composants critiques comme les mises à jour des poids en plus haute précision, l'entraînement en précision mixte peut considérablement accélérer les performances sur les GPU modernes sans perte substantielle de la précision du modèle.
Comment fonctionne la précision mixte
L'idée centrale de la précision mixte est de tirer parti de la vitesse et de l'efficacité mémoire des types de données de plus faible précision. Le matériel moderne, en particulier les GPU NVIDIA avec Tensor Cores, peut effectuer des opérations sur des nombres de 16 bits beaucoup plus rapidement que sur des nombres de 32 bits. Le processus comporte généralement trois étapes clés :
- Conversion en précision inférieure : La plupart des opérations du modèle, en particulier les multiplications matricielles et les convolutions gourmandes en calcul, sont effectuées en utilisant l'arithmétique semi-précision (FP16). Cela réduit l'empreinte mémoire et accélère les calculs.
 - Maintien d'une copie principale des poids : Pour maintenir la précision et la stabilité du modèle, une copie principale des poids du modèle est conservée au format standard à virgule flottante 32 bits (FP32). Cette copie principale est utilisée pour accumuler les gradients et mettre à jour les poids pendant le processus d'entraînement.
 - Mise à l'échelle de la perte : Pour éviter le sous-dépassement numérique—où les petites valeurs de gradient deviennent nulles lorsqu'elles sont converties en FP16—une technique appelée mise à l'échelle de la perte est utilisée. Elle consiste à multiplier la perte par un facteur d'échelle avant la rétropropagation pour maintenir les valeurs de gradient dans une plage représentable pour FP16. Avant la mise à jour des poids, les gradients sont réduits.
 
Les frameworks d'apprentissage profond comme PyTorch et TensorFlow ont un support intégré pour la précision mixte automatique, ce qui facilite leur implémentation.
Applications et exemples
La précision mixte est largement adoptée dans l'entraînement de modèles d'apprentissage automatique (ML) à grande échelle, où l'efficacité est primordiale.
- Entraînement des grands modèles de langage (LLM) : Les modèles comme GPT-3 et BERT ont des milliards de paramètres. Les entraîner en utilisant uniquement FP32 nécessiterait des quantités prohibitives de mémoire GPU et de temps. La précision mixte rend possible l'entraînement de tels modèles de fondation en réduisant considérablement les besoins en mémoire et en accélérant les calculs. Cela permet aux chercheurs d'itérer plus rapidement et de construire des modèles de langage encore plus puissants.
 - Accélération des modèles de vision par ordinateur : Dans la vision par ordinateur (CV), la précision mixte accélère l'entraînement des modèles complexes comme les réseaux neuronaux convolutionnels (CNN) et les Vision Transformers (ViT). Pour des tâches comme la détection d'objets et la segmentation d'images, les modèles Ultralytics YOLO, y compris le dernier Ultralytics YOLO11, tirent parti de la précision mixte pour une convergence plus rapide. Ceci est particulièrement utile pour le réglage des hyperparamètres et le développement rapide au sein de plateformes comme Ultralytics HUB. Un entraînement plus rapide facilite également l'expérimentation plus rapide sur de grands ensembles de données tels que COCO. La précision mixte peut également être utilisée pendant l'inférence pour accélérer le déploiement du modèle, en particulier lors de l'exportation vers des formats comme TensorRT, qui est fortement optimisé pour des précisions plus faibles.
 
Concepts connexes
La précision mixte est l'une des nombreuses techniques d'optimisation utilisées pour rendre les modèles d'apprentissage profond plus efficaces. Il est important de la distinguer des concepts connexes :
- Quantification de modèle : La quantification réduit la taille du modèle et le coût de calcul en convertissant les nombres à virgule flottante (comme FP32 ou FP16) en formats d'entiers à plus faible nombre de bits, tels que INT8. Alors que la précision mixte utilise différents formats à virgule flottante pendant l'entraînement, la quantification est généralement appliquée après l'entraînement (quantification post-entraînement) ou pendant celui-ci (entraînement sensible à la quantification) pour optimiser l'inférence, en particulier sur les appareils périphériques.
 - Élagage de modèle : L'élagage est une technique qui consiste à supprimer les connexions (poids) redondantes ou non importantes d'un réseau neuronal. Contrairement à la précision mixte, qui modifie le format numérique des poids, l'élagage modifie l'architecture même du modèle pour réduire sa taille et sa complexité. Ces techniques peuvent être utilisées ensemble pour obtenir des gains de performance encore plus importants.