Glossaire

Précision mixte

Booste l'efficacité de l'apprentissage profond avec un entraînement de précision mixte ! Obtiens des vitesses plus rapides, une utilisation réduite de la mémoire et des économies d'énergie sans sacrifier la précision.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

L'apprentissage en précision mixte est une technique utilisée dans l'apprentissage profond pour accélérer le calcul et réduire les besoins en mémoire sans compromettre de manière significative les performances du modèle. Elle y parvient en utilisant stratégiquement différents formats de précision numérique - principalement la virgule flottante 16 bits (FP16 ou demi-précision) et la virgule flottante 32 bits (FP32 ou simple précision) - pour différentes parties du modèle pendant la formation et l'inférence. Cette approche permet d'équilibrer la vitesse et l'efficacité de la mémoire d'une précision plus faible avec la stabilité numérique et la précision offertes par une précision plus élevée.

Comprendre la précision numérique

Les modèles d'apprentissage profond s'appuient traditionnellement sur le format standard IEEE 754 en virgule flottante simple précision (FP32) pour stocker les poids, les activations et les gradients. FP32 offre une large plage dynamique et une grande précision, ce qui le rend robuste pour les calculs complexes. Cependant, les opérations en FP32 nécessitent une puissance de calcul et une bande passante mémoire importantes. Les formats de moindre précision, comme FP16, n'utilisent que 16 bits, ce qui réduit de moitié l'empreinte mémoire et permet souvent des calculs beaucoup plus rapides sur du matériel compatible, comme les GPU modernes équipés de NVIDIA Tensor Cores.

Comment fonctionne la précision mixte

L'entraînement à la précision mixte combine intelligemment les formats FP16 et FP32. L'idée de base est d'effectuer des opérations à forte intensité de calcul, comme les convolutions et les multiplications de matrices dans les couches du modèle, en utilisant le format FP16, plus rapide. Cependant, certaines opérations sont sensibles à la portée et à la précision réduites du format FP16. Pour maintenir la stabilité et la précision du modèle, les parties critiques du processus de formation, telles que le calcul des pertes et les mises à jour du gradient, sont souvent conservées dans le format FP32, plus robuste. Des techniques telles que la mise à l'échelle dynamique des pertes sont employées pour éviter les problèmes de sous-débit ou de débordement numérique lorsque les gradients deviennent trop petits ou trop grands pour la représentation FP16. Des frameworks comme PyTorch (via Automatic Mixed Precision - AMP) et TensorFlow (via tf.keras.mixed_precision API) fournissent un support automatisé pour la mise en œuvre de l'entraînement en précision mixte.

Avantages de la précision mixte

La mise en œuvre de la précision mixte offre plusieurs avantages clés :

  • Formation plus rapide : Les opérations FP16 peuvent être nettement plus rapides sur le matériel pris en charge, ce qui permet de réduire les temps de formation.
  • Utilisation réduite de la mémoire : Le stockage des poids et des activations du modèle en FP16 divise par deux la mémoire nécessaire, ce qui permet d'utiliser des modèles plus grands ou d'augmenter la taille des lots, ce qui peut améliorer la dynamique de l'entraînement.
  • Efficacité énergétique : Un calcul plus rapide et une réduction des mouvements de données entraînent une baisse de la consommation d'énergie pendant la formation et l'inférence.
  • Précision maintenue : Lorsqu'elle est correctement mise en œuvre avec des techniques telles que l'échelonnement des pertes, la précision mixte permet généralement d'obtenir une précision comparable à celle d'une formation FP32 complète. Pour plus de détails sur l'optimisation de la formation, voir ces conseils sur la formation des modèles.

Applications dans le monde réel

La précision mixte est largement utilisée dans divers domaines de l'intelligence artificielle :

  1. Vision par ordinateur : Modèles de détection d'objets à la pointe de la technologie, y compris Ultralytics YOLO comme YOLOv8 et YOLO11Les modèles YOLO, comme YOLOv8 et YOLO11, tirent souvent parti de la précision mixte pendant l'entraînement. Cela leur permet de s'entraîner plus rapidement et de traiter des ensembles de données plus importants comme COCO ou Objects365, ce qui permet en fin de compte un déploiement efficace sur des plateformes allant des serveurs dans le nuage aux appareils périphériques comme le NVIDIA Jetson.
  2. Traitement du langage naturel (NLP) : La formation de grands modèles de langage massifs (LLM) tels que GPT-3 et BERT est très gourmande en ressources informatiques. La formation de précision mixte est cruciale pour gérer les exigences en matière de mémoire et de calcul, ce qui permet de former ces modèles pour des tâches telles que la génération de texte, la traduction automatique et l'analyse des sentiments.

Considérations et concepts connexes

Bien que très bénéfique, une mise en œuvre réussie de la précision mixte nécessite :

  • Support matériel : Les accélérations optimales nécessitent un matériel spécialement conçu pour le calcul accéléré FP16 (par exemple, NVIDIA Volta, Turing, Ampere, ou des GPU plus récents).
  • Stabilité numérique : Une manipulation prudente, souvent par le biais d'outils d'encadrement automatisés et d'une mise à l'échelle des pertes, est nécessaire pour éviter les problèmes liés à la portée limitée du FP16.
  • Intégration du cadre de travail : Tirer parti de la prise en charge intégrée dans les cadres d'apprentissage profond tels que PyTorch ou TensorFlow simplifie la mise en œuvre.

Il est important de distinguer la formation à la précision mixte de la quantification des modèles. Bien que les deux impliquent l'utilisation d'une précision inférieure, la quantification convertit généralement les modèles en formats de bits encore plus faibles (comme INT8) principalement pour optimiser la vitesse d'inférence et réduire la taille du modèle pour le déployer sur des appareils à ressources limitées, souvent après la formation initiale. La précision mixte se concentre sur l'accélération du processus de formation lui-même en combinant FP16 et FP32.

La précision mixte est devenue une technique standard dans la boîte à outils de l'apprentissage profond, permettant de développer et d'entraîner des modèles plus grands et plus complexes plus rapidement et plus efficacement.

Tout lire