Glossaire

Demi-précision

Découvrez comment la demi-précision (FP16) accélère l'IA grâce à des calculs plus rapides, une utilisation réduite de la mémoire et un déploiement efficace des modèles.

La demi-précision, également connue sous le nom de FP16, est un format de nombres à virgule flottante qui utilise 16 bits de mémoire pour représenter un nombre, contrairement aux formats plus courants de 32 bits en simple précision (FP32) ou de 64 bits en double précision (FP64). Dans le contexte de l'apprentissage profond, l'utilisation de la demi-précision réduit considérablement l'empreinte mémoire et les exigences de calcul d'un modèle. Ce compromis se fait au prix d'une réduction de la plage numérique et de la précision. Cependant, les techniques modernes, en particulier l'apprentissage en précision mixte, ont fait du format FP16 une pierre angulaire de l'apprentissage automatique efficace en permettant un apprentissage et une inférence plus rapides avec un impact minimal sur la précision du modèle.

Comment fonctionne la demi-précision

Le passage de FP32 à FP16 réduit de moitié la mémoire nécessaire au stockage des poids et des activations du modèle. Cela permet d'utiliser des modèles plus importants, des lots plus volumineux ou de s'entraîner sur des GPU disposant de moins de mémoire. En outre, les GPU modernes, tels que ceux équipés de NVIDIA Tensor Cores, sont spécifiquement conçus pour effectuer des opérations matricielles sur 16 bits à des vitesses bien supérieures à celles des opérations sur 32 bits.

Le principal défi du FP16 est sa plage numérique limitée, qui peut entraîner des problèmes tels que l'évanouissement des gradients pendant l'apprentissage. Pour y remédier, la demi-précision est presque toujours mise en œuvre à l'aide d'une approche de précision mixte. Cette stratégie consiste à effectuer la plupart des calculs en FP16 pour plus de rapidité, mais à utiliser stratégiquement FP32 pour les opérations critiques, telles que les mises à jour de poids et certains calculs de fonctions de perte, afin de maintenir la stabilité numérique. Les frameworks d'apprentissage profond tels que PyTorch et TensorFlow offrent une prise en charge intégrée de l'apprentissage automatique en précision mixte.

Applications et exemples

La demi-précision, principalement par le biais de techniques de précision mixte, est largement utilisée :

  1. Accélérer la formation des modèles : La formation de grands modèles d'apprentissage profond, tels que ceux pour la classification d'images ou le traitement du langage naturel (NLP), peut être considérablement accélérée en utilisant la précision mixte, réduisant ainsi le temps et les coûts de formation. Les plateformes comme Ultralytics HUB utilisent souvent ces optimisations lors des sessions de formation dans le cloud.
  2. Optimisation de l'inférence de la détection d'objets : Les modèles comme Ultralytics YOLO11 peuvent être exportés vers des formats comme ONNX ou TensorRT avec une précision FP16 pour une inférence en temps réel plus rapide. Ceci est crucial pour les applications nécessitant un débit élevé, telles qu'un système de sécurité analysant plusieurs flux vidéo ou le contrôle qualité sur une chaîne de production à grande vitesse.
  3. Déploiement sur des appareils à ressources limitées : L'empreinte mémoire et le coût de calcul réduits des modèles FP16 les rendent adaptés au déploiement sur des plates-formes d'IA de pointe telles que NVIDIA Jetson ou des appareils mobiles utilisant des cadres tels que TensorFlow Lite ou Core ML d'Apple.
  4. Formation de grands modèles linguistiques (LLM) : La taille énorme de modèles tels que le GPT-3 et d'autres modèles de base nécessite l'utilisation de formats 16 bits afin d'intégrer les modèles dans la mémoire et de terminer la formation dans des délais raisonnables.

Demi-précision et autres formats

  • Bfloat16 (BF16) : Format alternatif de 16 bits développé par Google, Bfloat16 alloue plus de bits à l'exposant et moins à la mantisse que FP16. Il dispose ainsi de la même plage dynamique que le FP32, ce qui le rend plus résistant aux débordements (underflow et overflow), mais au prix d'une précision moindre. Il est largement utilisé dans les TPU de Google. Pour en savoir plus, consultez le blog Google Cloud AI.
  • Quantification de modèle : Bien qu'il s'agisse dans les deux cas de techniques d'optimisation de modèle, la quantification de modèle convertit généralement les poids en virgule flottante (FP32 ou FP16) en formats entiers de bits inférieurs, le plus souvent des entiers de 8 bits (INT8). Cette méthode permet d'obtenir des accélérations encore plus importantes, en particulier sur les processeurs et certains accélérateurs, mais elle nécessite souvent un processus de calibrage plus minutieux, comme l'apprentissage conscient de la quantification (QAT), afin d'éviter une baisse significative des performances du modèle.
  • Simple précision (FP32) : Il s'agit du format par défaut dans la plupart des cadres d'apprentissage profond. Il offre une grande précision et une large plage dynamique, ce qui le rend robuste pour l'apprentissage. Cependant, il est plus lent et plus gourmand en mémoire que la demi-précision, ce qui le rend moins idéal pour le déploiement de grands modèles ou pour les applications nécessitant une vitesse maximale. Les compromis entre ces formats sont un élément clé, comme le montrent diverses comparaisons de modèles.

Rejoindre la communauté Ultralytics

Rejoignez l'avenir de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

S'inscrire
Lien copié dans le presse-papiers