Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

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 d'optimisation puissante dans apprentissage profond qui combine stratégiquement combinant stratégiquement différents formats numériques - en particulier les types de virgule flottante 16 bits (demi-précision) et 32 bits (simple précision) - afin d'accélérer le processus d'apprentissage profond. pour accélérer l'entraînement l'apprentissage du modèle modèle et de réduire l'utilisation de la mémoire. En effectuant des opérations de calcul intensives en basse précision tout en conservant une copie maîtresse des données de l poids des modèles avec une précision plus élevée, cette approche permet d'obtenir des accélérations significatives sur le matériel moderne sans compromettre la précision du modèle. précision ou la stabilité du réseau final. Elle permet effectivement aux chercheurs et aux ingénieurs de former des réseaux plus vastes. réseaux neuronaux ou d'augmenter la taille du lot dans les mêmes contraintes matérielles. mêmes contraintes matérielles.

Comment fonctionne la précision mixte

Le mécanisme central de la précision mixte repose sur l'architecture des accélérateurs modernes, tels que ceux équipés de NVIDIA Tensor Coresqui peuvent effectuer des multiplications de matrices en demi-précision (FP16) beaucoup plus rapidement qu'en simple précision standard (FP32). Le processus comprend généralement trois étapes clés :

  1. Coulée : Opérations comme convolutions et les multiplications les multiplications de matrices sont transférées au format FP16. Cela permet de réduire la largeur de bande de la mémoire nécessaire et d'accélérer les calculs.
  2. Maintenance des poids de référence : Une copie maîtresse des paramètres du modèle est conservée dans FP32. Au cours de la période de rétropropagationles gradients sont calculés en FP16 mais sont appliqués aux poids maîtres en FP32. Cela permet de préserver les petites mises à jour du gradient du gradient qui pourraient être perdues en raison de la portée limitée du FP16, ce qui permet d'éviter des problèmes tels que l'utilisation du FP32. l'évanouissement des gradients.
  3. Mise à l'échelle des pertes : Afin d'assurer une plus grande stabilité numérique, la valeur de l'indice de perte de fonction de perte est souvent multipliée par un facteur d'échelle. Cela déplace les valeurs du gradient dans une plage que FP16 peut représenter plus efficacement, en évitant les erreurs de sous-débit avant qu'elles ne soient reconverties pour la mise à jour du poids. les erreurs de sous-débit avant qu'elles ne soient reconverties pour la mise à jour du poids.

Applications concrètes

La précision mixte est devenue une pratique courante dans divers domaines de l'intelligence artificielle en raison de sa capacité à maximiser l'efficacité du matériel.

  • Former des modèles de vision de pointe : Développer des modèles de vision performants vision par ordinateur de vision par ordinateur, telles que Ultralytics YOLO11impliquent l'entraînement sur des ensembles de données massifs tels que COCO. La précision mixte permet d'effectuer ces entraînements beaucoup plus rapidement, ce qui permet d'effectuer un plus grand nombre d'itérations de la méthode réglage des hyperparamètres et des cycles de déploiement plus rapides.
  • Grands modèles linguistiques (LLM) : La création de modèles de base et Grands modèles linguistiques nécessitent le traitement de téraoctets de données textuelles. La précision mixte est essentielle ici, car elle réduit de moitié la mémoire nécessaire pour les activations, ce qui permet aux modèles comportant des milliards de paramètres de s'adapter aux clusters. mémoire requise pour les activations, ce qui permet aux modèles comportant des milliards de paramètres de s'adapter à des clusters de GPU.

Mise en œuvre de la précision mixte avec Ultralytics

Le ultralytics simplifie l'utilisation de la précision mixte automatique (AMP). Par défaut, les routines vérifient la compatibilité du matériel et activent l'AMP pour garantir des performances optimales.

from ultralytics import YOLO

# Load the YOLO11 model for training
model = YOLO("yolo11n.pt")

# Train using Automatic Mixed Precision (AMP)
# 'amp=True' is the default setting, ensuring faster training on supported GPUs
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)

Précision mixte et termes apparentés

Il est utile de distinguer la précision mixte d'autres concepts d'optimisation et de représentation des données :

  • Vs. Demi-précision: La demi-précision pure (FP16) stocke et calcule tout en format 16 bits. précision (FP16) stocke et calcule tout en format 16 bits. Bien que cela maximise la vitesse, cela conduit souvent à une instabilité numérique et à une mauvaise convergence pendant l'apprentissage. une instabilité numérique et une convergence médiocre pendant l'apprentissage. La précision mixte atténue ce problème en conservant une copie maîtresse en FP32 pour des mises à jour de poids stables.
  • Vs. Quantification du modèle: La quantification réduit encore davantage la précision, en convertissant généralement les poids en nombres entiers (INT8) afin d'optimiser la précision. la latence de l'inférence et la taille modèle pour le déploiement sur des systèmes d périphériques d'IA en périphérie. La précision mixte est principalement une optimisation du temps de formation utilisant des nombres à virgule flottante, tandis que la quantification est souvent appliquée après la formation pour l'inférence. souvent appliquée après l'apprentissage pour l'inférence.
  • Vs. Bfloat16: Brain Floating Point (Bfloat16) est un format alternatif de 16 bits développé par Google. Contrairement au format standard IEEE 754 FP16, Bfloat16 conserve la même plage d'exposants que FP32, ce qui le rend plus robuste contre le sous-débit sans gamme d'exposants que FP32, ce qui le rend plus robuste contre les sous-débits sans mise à l'échelle agressive des pertes. Il est couramment utilisé dans l'apprentissage de la précision mixte sur TPU et les GPU les plus récents.

Soutenu par des frameworks tels que PyTorch AMPla précision mixte reste l'un des moyens les plus efficaces de démocratiser l'accès à l'apprentissage profond à haute performance, permettant aux développeurs d'entraîner des modèles complexes sur du matériel accessible.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant