Meet YOLO26: next-gen vision AI.

Link to this sectionRecette d'entraînement YOLO26#

Link to this sectionIntroduction#

Ce guide documente la recette d'entraînement exacte utilisée pour produire les points de contrôle pré-entraînés officiels YOLO26 sur COCO. Chaque hyperparamètre présenté ici est déjà intégré dans les poids .pt publiés et peut être inspecté par programmation.

Comprendre comment les modèles de base ont été entraînés t'aide à prendre de meilleures décisions lors du fine-tuning : quelles augmentations de données conserver, quels poids de fonction de perte ajuster, et quels paramètres d'optimiseur fonctionnent le mieux pour la taille de ton jeu de données.

À qui s'adresse ce guide ?

Ce guide est destiné aux praticiens qui souhaitent comprendre ce qui a été inclus dans les points de contrôle officiels YOLO26 — pas seulement l'architecture, mais aussi les programmes de taux d'apprentissage, les pipelines d'augmentation et les poids de perte qui ont façonné leurs performances. Utilise ces informations pour faire des choix éclairés lors du fine-tuning sur tes propres données.

Link to this sectionInspection des arguments d'entraînement#

Chaque point de contrôle Ultralytics stocke la configuration d'entraînement complète utilisée pour le produire. Tu peux inspecter ces paramètres à tout moment :

Inspecter les arguments d'entraînement d'un point de contrôle
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])

Cela fonctionne pour n'importe quel point de contrôle .pt — aussi bien pour les versions officielles que pour tes propres modèles affinés. Pour la liste complète des arguments d'entraînement configurables, consulte la référence de configuration d'entraînement.

Link to this sectionVue d'ensemble de l'entraînement#

Tous les modèles de base YOLO26 ont été entraînés sur COCO à une résolution de 640x640 en utilisant l'optimiseur MuSGD avec une taille de lot de 128. Les modèles ont été initialisés à partir de poids pré-entraînés intermédiaires et affinés avec des hyperparamètres trouvés via une recherche évolutive. Les journaux d'entraînement complets et les métriques pour chaque taille de modèle sont disponibles sur Ultralytics Platform :

Principaux choix de conception pour toutes les tailles :

  • Entraînement de bout en bout (end2end=True) avec tête un-à-un sans NMS
  • Optimiseur MuSGD combinant SGD avec des mises à jour orthogonales de style Muon pour les poids de convolution
  • Augmentation mosaic intensive (probabilité ~0.9-1.0) désactivée lors des 10 dernières époques (close_mosaic=10)
  • Augmentation d'échelle agressive (0.56-0.95) pour gérer les objets de différentes tailles
  • Rotation/cisaillement minimal pour la plupart des tailles, maintenant une faible distorsion géométrique

Link to this sectionHyperparamètres par taille de modèle#

Link to this sectionOptimiseur et taux d'apprentissage#

ParamètreNSMLX
optimizerMuSGDMuSGDMuSGDMuSGDMuSGD
lr00.00540.000380.000380.000380.00038
lrf0.04950.8820.8820.8820.882
momentum0.9470.9480.9480.9480.948
weight_decay0.000640.000270.000270.000270.00027
warmup_epochs0.980.990.990.990.99
epochs24570806040
batch128128128128128
imgsz640640640640640
Stratégie de taux d'apprentissage

Le modèle N a utilisé un taux d'apprentissage initial plus élevé avec une décroissance abrupte (lrf=0.0495), tandis que les modèles S/M/L/X ont utilisé un LR initial beaucoup plus faible avec un programme plus doux (lrf=0.882). Cela reflète les différentes dynamiques de convergence des petits modèles par rapport aux plus grands — les plus petits modèles ont besoin de mises à jour plus agressives pour apprendre efficacement.

Link to this sectionPoids de perte#

ParamètreNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

Le modèle N donne la priorité à la perte DFL, tandis que les modèles S/M/L/X mettent l'accent sur la régression des boîtes englobantes. La perte de classification reste relativement cohérente pour toutes les tailles.

Link to this sectionPipeline d'augmentation#

Pour une explication détaillée de chaque technique, consulte le guide d'augmentation des données YOLO.

ParamètreNSMLX
mosaic0.9090.9920.9920.9920.992
mixup0.0120.050.4270.4270.427
copy_paste0.0750.4040.3040.4040.404
scale0.5620.90.950.950.95
fliplr0.6060.3040.3040.3040.304
degrees1.11~0~0~0~0
shear1.46~0~0~0~0
translate0.0710.2750.2750.2750.275
hsv_h0.0140.0130.0130.0130.013
hsv_s0.6450.3530.3530.3530.353
hsv_v0.5660.1940.1940.1940.194
bgr0.1060.00.00.00.0

Les modèles plus grands utilisent une augmentation globalement plus agressive (plus de mixup, copy-paste et scale), car ils ont plus de capacité et bénéficient d'une régularisation plus forte. Le modèle N est la seule taille avec une augmentation significative de rotation, cisaillement et BGR.

Link to this sectionParamètres d'entraînement internes#

Avancé : paramètres internes du pipeline

Les points de contrôle contiennent également des paramètres qui ont été utilisés dans le pipeline d'entraînement interne mais qui ne sont pas exposés en tant que paramètres configurables par l'utilisateur dans default.yaml :

ParamètreDescriptionNSMLX
muon_wPoids de mise à jour Muon dans MuSGD0.5280.4360.4360.4360.436
sgd_wPoids de mise à jour SGD dans MuSGD0.6740.4790.4790.4790.479
cls_wPoids de classification interne2.743.483.483.483.48
o2mPoids de perte de la tête un-à-plusieurs1.00.7050.7050.7050.705
topkAssignation d'étiquettes Top-k85555

Ces valeurs sont enregistrées pour la reproductibilité mais n'ont pas besoin d'être définies lors du réglage fin. Consulte la FAQ pour plus de détails.

Link to this sectionConseils pour le réglage fin#

Lors du réglage fin de YOLO26 sur ton propre jeu de données, tu n'as pas besoin de reproduire entièrement la recette de pré-entraînement. Les poids pré-entraînés encodent déjà les connaissances en matière d'augmentation et d'optimisation issues de l'entraînement sur COCO. Pour des meilleures pratiques d'entraînement plus générales, consulte les Conseils pour l'entraînement de modèles.

Link to this sectionCommencer simplement#

Réglage fin avec les paramètres par défaut
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

Le réglage fin avec les paramètres par défaut constitue une base solide. Ne modifie les hyperparamètres que si tu as une raison spécifique de le faire.

Link to this sectionQuand effectuer des ajustements#

Petits jeux de données (< 1 000 images) :

  • Réduis la force de l'augmentation : mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Diminue le taux d'apprentissage : lr0=0.001
  • Utilise moins d'époques avec patience : epochs=50, patience=20
  • Envisage de geler les couches de base : freeze=10

Grands jeux de données (> 50 000 images) :

  • Respecte plus fidèlement la recette de pré-entraînement
  • Envisage optimizer=MuSGD pour les exécutions plus longues
  • Augmente l'augmentation : mosaic=1.0, mixup=0.3, scale=0.9

Imagerie spécifique à un domaine (aérienne, médicale, sous-marine) :

  • Augmente flipud=0.5 si l'orientation verticale varie
  • Augmente degrees si les objets apparaissent avec des rotations arbitraires
  • Ajuste hsv_s et hsv_v si les conditions d'éclairage diffèrent considérablement de celles de COCO

Pour une optimisation automatisée des hyperparamètres, consulte le guide de réglage des hyperparamètres.

Link to this sectionChoisir une taille de modèle#

ModèleIdéal pourGuide pour la taille des lots (batch size)
YOLO26nAppareils Edge, mobile, temps réel sur CPUGrands lots (64-128) sur GPU grand public
YOLO26sVitesse et précision équilibréesLots moyens (32-64)
YOLO26mPrécision supérieure avec un calcul modéréPetits lots (16-32)
YOLO26lPrécision élevée lorsque le GPU est disponiblePetits lots (8-16) ou multi-GPU
YOLO26xPrécision maximale, déploiement sur serveurPetits lots (4-8) ou multi-GPU

Pour les options d'exportation et de déploiement, consulte le guide d'exportation et les options de déploiement de modèle.

Link to this sectionFAQ#

Link to this sectionComment voir les hyperparamètres exacts utilisés pour n'importe quel point de contrôle ?#

Charge le point de contrôle avec torch.load() et accède à la clé train_args, ou utilise model.ckpt["train_args"] avec l'API Ultralytics. Consulte Inspecter les arguments d'entraînement pour des exemples complets.

Link to this sectionPourquoi les nombres d'époques sont-ils différents pour chaque taille de modèle ?#

Les modèles plus grands convergent plus rapidement sur COCO car ils ont une plus grande capacité. Le modèle N avait besoin de 245 époques tandis que le modèle X n'en avait besoin que de 40. Lors du réglage fin sur ton propre jeu de données, le nombre optimal d'époques dépend de la taille et de la complexité de ton jeu de données, et non de la taille du modèle. Utilise l'arrêt précoce (patience) pour trouver automatiquement le bon point d'arrêt.

Link to this sectionDois-je utiliser MuSGD pour le réglage fin ?#

Lorsque optimizer=auto (le réglage par défaut), Ultralytics sélectionne automatiquement MuSGD pour les entraînements longs (>10 000 itérations) et AdamW pour les entraînements plus courts. Tu peux explicitement définir optimizer=MuSGD si tu préfères. Pour en savoir plus sur la sélection de l'optimiseur, consulte la documentation sur l'entraînement.

Link to this sectionQue sont muon_w, sgd_w, cls_w, o2m et topk dans le point de contrôle ?#

Ce sont des paramètres internes du pipeline d'entraînement qui ont produit les points de contrôle de base. Ils sont stockés pour la reproductibilité mais ne sont pas des paramètres configurables par l'utilisateur dans default.yaml. Tu n'as pas besoin de les définir lors du réglage fin. Consulte Paramètres d'entraînement internes pour plus de détails.

Link to this sectionPuis-je reproduire exactement le pré-entraînement à partir de zéro ?#

Les points de contrôle ont été produits à l'aide d'une branche d'entraînement interne avec des fonctionnalités supplémentaires absentes de la base de code publique (comme les poids configurables o2m et cls_w). Tu peux obtenir des résultats très proches en utilisant les hyperparamètres documentés sur cette page avec le package public Ultralytics, mais une reproduction exacte nécessite la branche interne.

Commentaires