Skip to main content

YOLO26 Trainingsrezept

Einführung

Dieser Leitfaden dokumentiert das genaue Trainings Rezept, das verwendet wurde, um die offiziellen YOLO26 vortrainierten Checkpoints auf COCO zu erstellen. Jedes Hyperparameter das hier gezeigt wird, ist bereits in den veröffentlichten .pt Gewichten eingebettet und kann programmatisch untersucht werden.

Zu verstehen, wie die Basismodelle trainiert wurden, hilft dir dabei, bessere Entscheidungen zu treffen, wenn du Fine-Tuning: welche Mit dem Ultralytics SDK ist das Training von Modellen außergewöhnlich unkompliziert. Das System handhabt automatisch komplexe du behalten sollst, welche Verlustfunktion Gewichte du anpassen möchtest und welche Optimizer-Einstellungen für deine Datensatzgröße am besten funktionieren.

Für wen ist dieser Leitfaden?

Dieser Leitfaden richtet sich an Praktiker, die verstehen wollen, was in die offiziellen YOLO26-Checkpoints eingeflossen ist – nicht nur die Architektur, sondern auch die Lernraten-Scheduler Zeitpläne, Augmentierungspipelines und Loss-Gewichte, die deren Leistung maßgeblich bestimmt haben. Nutze diese Informationen, um fundierte Entscheidungen beim Fine-Tuning deiner eigenen Daten zu treffen.

Training Args untersuchen

Jeder Ultralytics-Checkpoint speichert die vollständige Trainingskonfiguration, die zu seiner Erstellung verwendet wurde. Du kannst diese Einstellungen jederzeit überprüfen:

Checkpoint Training Args untersuchen
from ultralytics import YOLO

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

Dies funktioniert für jeden .pt Checkpoint – sowohl für offizielle Releases als auch für deine eigenen feinabgestimmten Modelle. Eine vollständige Liste der konfigurierbaren Trainingsargumente findest du in der Konfigurationsreferenz für das Training.

Training-Übersicht

Alle YOLO26-Basismodelle wurden auf COCO mit 640x640 Auflösung unter Verwendung des MuSGD Optimizers mit batch size 128 trainiert. Die Modelle wurden mit zwischenzeitlichen vortrainierten Gewichten initialisiert und mittels Hyperparametern verfeinert, die durch evolutionäre Suche ermittelt wurden. Vollständige Trainingsprotokolle und Metriken für jede Modellgröße sind verfügbar auf an, oder verwende die :

Wichtige Designentscheidungen für alle Größen:

  • End-to-End-Training (end2end=True) mit NMS-freiem One-to-One-Head
  • MuSGD optimizer kombiniert SGD mit Muon-artigem orthogonalisiertem Update für conv-Gewichte
  • Starke mosaic Augmentierung (~0.9-1.0 Wahrscheinlichkeit), deaktiviert in den letzten 10 Epochen (close_mosaic=10)
  • Aggressive Skalierungsaugmentierung (0.56-0.95), um Objekte unterschiedlicher Größe zu handhaben
  • Minimale Rotation/Scherung für die meisten Größen, um geometrische Verzerrungen gering zu halten

Hyperparameter pro Modellgröße

Optimizer und Lernrate

EinstellungNSMLX
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
Lernratenstrategie

Das N-Modell verwendete eine höhere initiale Lernrate mit steilem Abfall (lrf=0.0495), während S/M/L/X-Modelle eine viel niedrigere initiale LR mit einem sanfteren Zeitplan verwendeten (lrf=0.882). Dies spiegelt die unterschiedliche Konvergenzdynamik von kleineren im Vergleich zu größeren Modellen wider – kleinere Modelle benötigen aggressivere Updates, um effektiv zu lernen.

Loss-Gewichte

EinstellungNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

Das N-Modell priorisiert DFL-Loss, während S/M/L/X-Modelle den Schwerpunkt auf bounding box Regression verlagern. Der Klassifizierungs-Loss bleibt über alle Größen hinweg relativ konsistent.

Augmentierungs-Pipeline

Für eine detaillierte Erklärung jeder Technik siehe den YOLO Data Augmentation Leitfaden.

EinstellungNSMLX
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

Größere Modelle verwenden insgesamt eine aggressivere Augmentierung (höhere mixup, copy-paste, und Skalierung), da sie über mehr Kapazität verfügen und von stärkerer Regularisierung profitieren. Das N-Modell ist die einzige Größe mit nennenswerter Rotation, Scherung, und BGR Augmentation.

Interne Trainingsparameter

Fortgeschritten: interne Pipeline-Parameter

Die Checkpoints enthalten auch Parameter, die in der internen Trainingspipeline verwendet wurden, aber nicht nicht als benutzerkonfigurierbare Einstellungen in default.yaml:

EinstellungBeschreibungNSMLX
muon_wMuon-Update-Gewichtung in MuSGD0.5280.4360.4360.4360.436
sgd_wSGD-Update-Gewichtung in MuSGD0.6740.4790.4790.4790.479
cls_wInterne Klassifizierungsgewichtung2.743.483.483.483.48
o2mOne-to-many Head-Loss-Gewichtung1.00.7050.7050.7050.705
topkTop-k Label-Zuweisung85555

Diese werden zur Reproduzierbarkeit aufgezeichnet, müssen aber beim Fine-Tuning nicht eingestellt werden. Siehe die FAQ für weitere Details.

Anleitung zum Fine-Tuning

Wenn du YOLO26 auf deinem eigenen Datensatz fine-tunest, musst du nicht das vollständige Pretraining-Rezept replizieren. Die vortrainierten Gewichte kodieren bereits das Wissen über Augmentation und Optimierung aus dem COCO-Training. Weitere allgemeine Best Practices für das Training findest du unter Tipps für das Modelltraining.

Beginne einfach

Fine-Tuning mit Standardeinstellungen
from ultralytics import YOLO

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

Fine-Tuning mit Standardeinstellungen ist eine starke Basis. Passe Hyperparameter nur an, wenn du einen spezifischen Grund dafür hast.

Wann Anpassungen vornehmen

Kleine Datensätze (< 1.000 Bilder):

  • Reduziere die Stärke der Augmentation: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Niedrigere Lernrate: lr0=0.001
  • Verwende weniger epochs mit Patience: epochs=50, patience=20
  • Erwäge das Einfrieren von Backbone-Layern: freeze=10

Große Datensätze (> 50.000 Bilder):

  • Halte dich näher an das Pretraining-Rezept
  • Erwäge optimizer=MuSGD für längere Durchläufe
  • Erhöhe die Augmentation: mosaic=1.0, mixup=0.3, scale=0.9

Domänenspezifische Bilder (Luftaufnahmen, medizinisch, unter Wasser):

  • Erhöhe flipud=0.5 bei variierender vertikaler Ausrichtung
  • Erhöhe degrees wenn Objekte in beliebigen Rotationen erscheinen
  • Passe hsv_s und hsv_v an, wenn die Lichtverhältnisse signifikant von COCO abweichen

Für die automatisierte Hyperparameter-Optimierung, siehe den Leitfaden zur Hyperparameter-Optimierung.

Wahl der Modellgröße

ModellBestens geeignet fürAnleitung zur Batch-Größe
YOLO26nEdge-Geräte, Mobilgeräte, Echtzeit auf CPUGroße Batches (64-128) auf Consumer-GPUs
YOLO26sAusgewogene Geschwindigkeit und GenauigkeitMittlere Batches (32-64)
YOLO26mHöhere Genauigkeit bei moderater RechenleistungKleinere Batches (16-32)
YOLO26lHohe Genauigkeit bei verfügbarer GPUKleine Batches (8-16) oder Multi-GPU
YOLO26xMaximale Genauigkeit, Server-DeploymentKleine Batches (4-8) oder Multi-GPU

Für Export- und Deployment-Optionen siehe den Export-Leitfaden und Optionen für die Modellbereitstellung.

FAQ

Wie sehe ich die genauen Hyperparameter, die für einen Checkpoint verwendet wurden?

Lade den Checkpoint mit torch.load() und greife auf den train_args Key zu oder verwende model.ckpt["train_args"] mit der Ultralytics API. Siehe Training Args untersuchen für vollständige Beispiele.

Warum unterscheiden sich die Epochenanzahlen je nach Modellgröße?

Größere Modelle konvergieren auf COCO schneller, da sie mehr Kapazität haben. Das N-Modell benötigte 245 Epochen, während das X-Modell nur 40 brauchte. Beim Fine-Tuning auf deinem eigenen Datensatz hängt die optimale Anzahl der Epochen von deiner Datensatzgröße und Komplexität ab, nicht von der Modellgröße. Nutze Early Stopping (patience) um den richtigen Stopppunkt automatisch zu finden.

Sollte ich MuSGD für das Fine-Tuning verwenden?

Wenn optimizer=auto (die Standardeinstellung), Ultralytics wählt automatisch MuSGD für längere Trainingsläufe (>10.000 Iterationen) und AdamW für kürzere. Du kannst explizit optimizer=MuSGD festlegen, wenn du möchtest. Mehr zur Wahl des Optimierers findest du in der Trainingsdokumentation.

Was sind muon_w, sgd_w, cls_w, o2m, und topk im Checkpoint?

Dies sind interne Parameter aus der Trainingspipeline, die die Basis-Checkpoints erzeugt haben. Sie werden zur Reproduzierbarkeit gespeichert, sind aber nicht benutzerkonfigurierbare Einstellungen in default.yaml. Du musst sie beim Fine-Tuning nicht einstellen. Siehe Interne Trainingsparameter für Details.

Kann ich das exakte Pretraining von Grund auf replizieren?

Die Checkpoints wurden mit einem internen Trainings-Branch erstellt, der zusätzliche Funktionen enthält, die nicht im öffentlichen Code enthalten sind (wie konfigurierbare o2m Gewichte und cls_w). Du kannst sehr ähnliche Ergebnisse erzielen, wenn du die auf dieser Seite dokumentierten Hyperparameter mit dem öffentlichen Ultralytics-Paket verwendest, aber eine exakte Reproduktion erfordert den internen Branch.

Kommentare