Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Taille de lot

Découvrez comment la taille des lots influe sur la vitesse et la précision de l'apprentissage automatique. Explorez les contraintes matérielles et optimisez Ultralytics à l'aide d'AutoBatch.

Dans le domaine de l'apprentissage automatique, et en particulier de l'apprentissage profond, la taille du lot fait référence au nombre d'exemples d'entraînement utilisés dans une itération de l'entraînement du modèle. Plutôt que d'introduire l'ensemble des données d'entraînement dans le réseau neuronal en une seule fois, ce qui est souvent impossible d'un point de vue informatique en raison des contraintes de mémoire, l'ensemble de données est divisé en sous-ensembles plus petits appelés lots. Le modèle traite un lot, calcule l'erreur et met à jour ses pondérations internes via la rétropropagation avant de passer au lot suivant. Cet hyperparamètre joue un rôle essentiel dans la détermination de la vitesse de formation et de la stabilité du processus d'apprentissage .

La dynamique de la formation par lots

Le choix de la taille du lot modifie fondamentalement la manière dont l'algorithme d'optimisation, généralement une variante de la descente stochastique du gradient, navigue dans le paysage des pertes.

  • Petites tailles de lots : l'utilisation d'un petit nombre (par exemple, 8 ou 16) entraîne des mises à jour « bruitées ». Bien que l'estimation du gradient soit moins précise pour l'ensemble des données, ce bruit peut parfois aider le modèle à échapper aux minima locaux, ce qui peut conduire à une meilleure généralisation. Cependant, les lots plus petits nécessitent davantage de mises à jour par époque, ce qui peut ralentir l'entraînement en termes de temps réel en raison de la surcharge.
  • Grandes tailles de lots : un lot plus grand (par exemple, 128 ou 256) fournit une estimation plus précise du gradient, ce qui conduit à une convergence plus fluide de la fonction de perte. Il permet une parallélisation massive sur le matériel moderne, ce qui accélère considérablement les calculs. Cependant, si le lot est trop grand, le modèle peut se stabiliser à des minima suboptimaux, ce qui entraîne un surajustement et une capacité réduite à généraliser à de nouvelles données.

Implications en matière de matériel et de mémoire

Les praticiens doivent souvent choisir une taille de lot en fonction des limitations matérielles plutôt que d'une préférence purement théorique. Les modèles d'apprentissage profond, en particulier les architectures de grande taille telles que les transformateurs ou les réseaux convolutifs avancés, sont stockés dans la VRAM d'un GPU.

Lorsque vous utilisez NVIDIA CUDA pour l'accélération, la VRAM doit contenir les paramètres du modèle, le lot de données d'entrée et les sorties d'activation intermédiaires nécessaires au calcul du gradient. Si la taille du lot dépasse la mémoire disponible, l'entraînement se bloquera avec une erreur « Out of Memory » (OOM). Des techniques telles que l'entraînement en précision mixte sont souvent utilisées pour réduire l'utilisation de la mémoire, ce qui permet d'utiliser des lots plus importants sur le même matériel.

Distinguer les concepts apparentés

Pour configurer efficacement l'apprentissage, il est essentiel de distinguer la taille du lot des autres termes temporels dans la boucle d'apprentissage .

  • Taille du lot vs époque : une époque représente un passage complet dans l'ensemble de données d'entraînement. La taille du lot détermine le nombre de morceaux dans lesquels les données sont divisées au cours de cette époque. Par exemple, si vous avez 1 000 images et une taille de lot de 100, il faudra 10 itérations pour terminer une époque.
  • Taille du lot vs itération : Une itération (ou étape) consiste à traiter un lot et à mettre à jour les poids. Le nombre total d'itérations dans l'entraînement correspond au nombre de lots par époque multiplié par le nombre total d'époques.
  • Taille du lot vs normalisation par lots : Bien qu'ils partagent le même nom, la normalisation par lots est un type de couche spécifique qui normalise les entrées de la couche en fonction de la moyenne et de la variance du lot actuel. Cette technique dépend fortement de la taille du lot ; si celle-ci est trop petite (par exemple, 2), les estimations statistiques deviennent peu fiables, ce qui peut nuire aux performances.

Applications concrètes

L'ajustement de la taille des lots est une nécessité courante lors du déploiement de solutions de vision par ordinateur dans divers secteurs.

  1. Imagerie médicale haute fidélité : dans le domaine de l' IA appliquée à la santé, les praticiens travaillent souvent avec des données volumétriques 3D telles que des IRM ou des scanners. Ces fichiers sont extrêmement denses et gourmands en mémoire. Pour effectuer des tâches telles que l'analyse d'images médicales ou la segmentation complexe d' images sans planter le système, les ingénieurs réduisent souvent la taille des lots à un nombre très faible, parfois même à un seul lot. Dans ce cas, la priorité est traitée aux détails haute résolution plutôt qu'à la vitesse brute de formation.
  2. Contrôle qualité industriel : À l'inverse, dans le domaine de l' IA appliquée à la fabrication, la vitesse est primordiale. Les systèmes automatisés qui inspectent les produits sur un tapis roulant doivent traiter des milliers d'images par heure. Pendant l' inférence, les ingénieurs peuvent regrouper les flux provenant des caméras en lots plus importants afin d'optimiser l'utilisation des dispositifs d'IA de pointe, garantissant ainsi un débit élevé pour la détection des défauts en temps réel .

Configuration de la taille des lots dans Python

Lors de l'utilisation du Paquet Ultralytics Python, la définition de la taille du lot est simple. Vous pouvez spécifier un nombre entier fixe ou utiliser la fonction dynamique batch=-1 paramètre, qui utilise le Fonction AutoBatch pour calculer automatiquement la taille maximale de lot que votre matériel peut traiter en toute sécurité.

L'exemple suivant montre comment entraîner un modèle YOLO26(la dernière norme en matière de vitesse et de précision) à l'aide d'un paramètre de lot spécifique.

from ultralytics import YOLO

# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")

# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)

Pour gérer des expériences à grande échelle et visualiser comment différentes tailles de lots affectent vos métriques d'entraînement, des outils tels que la Ultralytics fournissent un environnement complet pour enregistrer et comparer les exécutions. Un réglage approprié des hyperparamètres de la taille des lots est souvent la dernière étape pour tirer le meilleur parti de votre modèle.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant