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 .
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.
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.
Pour configurer efficacement l'apprentissage, il est essentiel de distinguer la taille du lot des autres termes temporels dans la boucle d'apprentissage .
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.
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.