YOLO Vision 2026:

YOLO26-Trainingsrezept#

Einleitung#

Dieser Leitfaden dokumentiert das exakte Training, mit dem die offiziellen vortrainierten YOLO26-Checkpoints auf COCO erstellt wurden. Jeder hier gezeigte Hyperparameter ist bereits zusammen mit dem Trainingsprotokoll pro Epoche und der Code-Version des Laufs in den veröffentlichten .pt-Gewichten eingebettet, und all diese Informationen können programmgesteuert untersucht werden.

Wenn du weißt, was in die offiziellen Checkpoints eingeflossen ist – nicht nur die Architektur, sondern auch die Lernraten, Augmentierungspipelines und Verlustgewichte, die ihre Leistung geprägt haben –, kannst du beim Feinabstimmen bessere Entscheidungen treffen: welche Datenaugmentierungen du beibehältst, welche Gewichte der Verlustfunktion du anpasst und welche Optimatoreinstellungen für die Größe deines Datensatzes am besten funktionieren.

Lies das Paper für das vollständige Bild

Diese Seite behandelt die in den veröffentlichten Checkpoints aufgezeichneten Hyperparameter. Lies Ultralytics YOLO26: Vereinheitlichte echtzeitfähige End-to-End-Visionsmodelle, um die Gründe dahinter zu verstehen, einschließlich der Architektur, der Änderungen an Verlustfunktion und Labelzuweisung sowie der Ablationsstudien.

Trainingsübersicht#

Alle YOLO26-Basismodelle wurden in zwei Stufen trainiert: Objects365v1-Vortraining über 150 Epochen, gefolgt von COCO-Feinabstimmung. Beide Stufen liefen mit einer Auflösung von 640x640, dem Optimierer MuSGD und einer Batchgröße von 128. Kein YOLO26-Checkpoint wurde mit zufälligen Gewichten direkt auf COCO trainiert. Deshalb ist die COCO-Phase für die meisten Größen kurz, und die Hyperparameter dieser Phase wurden durch eine evolutionäre Suche ermittelt. Vollständige Trainingsprotokolle und Metriken für jede Modellgröße sind in den veröffentlichten Checkpoints gespeichert und werden auf der Ultralytics Platform als Diagramme dargestellt.

Wichtige Designentscheidungen für alle Größen:

  • Objects365-Vortraining für jede Größe vor der COCO-Phase
  • Dual-Head-Training sowohl mit One-to-Many- als auch mit One-to-One-Überwachung; die Inferenz verwendet standardmäßig NMS, wobei nms=False den NMS-freien Kopf auswählt
  • MuSGD-Optimierer, der SGD mit orthogonalisierten Updates im Muon-Stil für Gewichtsmatrizen kombiniert (lineare Gewichte mit 2D und 4D-Faltungsfilter, die in 2D umgeformt werden)
  • Starke Mosaikaugmentierung (Wahrscheinlichkeit ~0.9–1.0), die in den letzten Epochen deaktiviert wird (close_mosaic=8 im Vortraining, close_mosaic=10 auf COCO)
  • Aggressive Maßstabsaugmentierung (0.5–0.95) zur Verarbeitung von Objekten in unterschiedlichen Größen
  • Minimale Rotation und Scherung für die meisten Größen, um geometrische Verzerrungen gering zu halten

Stufe 1: Objects365-Vortraining#

Jeder YOLO26-COCO-Checkpoint wurde aus einem Objects365v1-Checkpoint derselben Größe feinabgestimmt. Diese vortrainierten Gewichte werden ebenfalls veröffentlicht und auf der Objects365-Datensatzseite dokumentiert. Jeder COCO-Checkpoint nennt seine Ausgangsgewichte in der in der Datei .pt eingebetteten Trainingskonfiguration. Der Abschnitt Trainingsargumente eines YOLO26-Checkpoints untersuchen weiter unten zeigt, wie du sie ausliest:

COCO-CheckpointAusgangsgewichte
yolo26n.ptyolo26n-objv1-150.pt
yolo26s.ptyolo26s-objv1-150.pt
yolo26m.ptyolo26m-objv1-150.pt
yolo26l.ptyolo26l-objv1-150.pt
yolo26x.ptyolo26x-objv1-150.pt

Für das Vortraining wurden überwiegend Standardeinstellungen statt durch Suche ermittelter Werte verwendet. lr0, lrf, momentum, weight_decay, box und cls entsprechen default.yaml, während warmup_epochs, close_mosaic und dfl überschrieben wurden. Die Einstellungen sind für alle Größen gleich, abgesehen von warmup_epochs bei X, den Stärken der Augmentierungen sowie den internen MuSGD- und Kopfgewichten, die nach den Tabellen aufgeführt sind:

EinstellungWert
dataObjects365v1
epochs150
imgsz640
batch128
optimizerMuSGD
lr0 / lrf0.01 / 0.01
momentum0.937
weight_decay0.0005
warmup_epochs1 (2 für X)
close_mosaic8
box / cls / dfl7.5 / 0.5 / 6.0
AugmentierungNSMLX
mosaic1.01.01.01.01.0
mixup0.00.050.150.150.2
copy_paste0.10.150.40.50.6
scale0.50.90.90.90.9

Diese Tabellen enthalten die Einstellungen, die das Vortraining bestimmen, nicht die vollständige Konfiguration. Die Checkpoints speichern über 100 Argumente. Gib daher wie unten gezeigt train_args aus, um die maßgebliche Liste zu erhalten.

Fortgeschritten: interne Vortrainingsparameter

Beim Vortraining wurden außerdem experimentelle Parameter derselben Art variiert, wie sie unter Interne Trainingsparameter beschrieben sind. cls_w hatte für jede Größe den Wert 1.0:

EinstellungNSMLX
muon_w0.450.50.450.450.5
sgd_w0.550.50.550.550.6
o2m0.10.10.11.01.0
Mit den Objects365-Gewichten starten

Du brauchst den Objects365-Datensatz nicht, um Stufe 1 wiederzuverwenden. Die vortrainierten Checkpoints werden wie jedes andere Ultralytics-Asset automatisch heruntergeladen, sodass du sie auf deinem eigenen Datensatz feinabstimmen kannst:

from ultralytics import YOLO

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

Um stattdessen die COCO-Phase erneut auszuführen, starte mit denselben Gewichten und übergib die Werte für Optimierer, Verlustfunktion und Augmentierung der Stufe 2 für die jeweilige Größe aus den folgenden Tabellen. Diese Tabellen lassen kleinere, nicht standardmäßige Argumente wie warmup_momentum, warmup_bias_lr, perspective, flipud und cutmix aus. Gib daher train_args aus dem Checkpoint aus, um die exakte Konfiguration zu erhalten. Die internen Parameter werden vom veröffentlichten Paket abgelehnt und erfordern den experimentellen Branch.

Trainingsargumente eines YOLO26-Checkpoints untersuchen#

Jeder Ultralytics-Checkpoint speichert die vollständige Trainingskonfiguration, mit der er erstellt wurde, sodass du jede Zahl auf dieser Seite selbst überprüfen kannst:

Trainingsargumente des Checkpoints untersuchen
from ultralytics import YOLO

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

Die Ausgabe enthält die vollständige Konfiguration mit über 100 Einträgen, einschließlich jedes auf dieser Seite dokumentierten Rezeptwerts. Ein Auszug für yolo26n.pt:

batch: 128
...
box: 5.62767
...
close_mosaic: 10
cls: 0.56099
...
dfl: 9.03871
...
epochs: 245
...
lr0: 0.0054
lrf: 0.04952
...
optimizer: MuSGD

Dies funktioniert mit jedem .pt-Checkpoint – sowohl mit offiziellen Veröffentlichungen als auch mit deinen eigenen feinabgestimmten Modellen. Eine vollständige Liste der konfigurierbaren Trainingsargumente findest du in der Referenz zur Trainingskonfiguration.

Trainingskurven anzeigen#

train_args ist nicht das Einzige, was gespeichert wird. Jeder Checkpoint enthält außerdem das vollständige results.csv pro Epoche des Laufs, mit dem er erstellt wurde, sowie seine abschließenden Validierungsmetriken. Die Kurven der offiziellen YOLO26-Checkpoints werden auf der Ultralytics Platform veröffentlicht, und jede .pt-Datei kann per Drag-and-drop in ein Projekt gezogen werden, um dieselben Daten als Diagramm darzustellen, wobei die Metadaten automatisch aus der Datei ausgelesen werden.

Jeder Checkpoint deckt die Stufe ab, in der er erstellt wurde. Daher befinden sich die COCO-Kurven in yolo26s.pt und die Objects365-Kurven über 150 Epochen in yolo26s-objv1-150.pt.

Code-Version überprüfen#

ckpt["git"] zeichnet den Commit auf, mit dem der Checkpoint erstellt wurde. Diese Commits befinden sich in öffentlichen experimentellen Branches des Ultralytics-Repositorys, sodass du den exakt verwendeten Trainingscode auschecken kannst:

from ultralytics import YOLO

print(YOLO("yolo26n.pt").ckpt["git"])
# {'root': ..., 'branch': 'exp-main', 'commit': 'cb13d5f9cfbd6f299da3620c625f81d721dc2849', ...}
git fetch origin cb13d5f9cfbd6f299da3620c625f81d721dc2849
git checkout cb13d5f9cfbd6f299da3620c625f81d721dc2849

Experimentelle Branches enthalten Arbeiten, die nie in main übernommen wurden, etwa konfigurierbare o2m und cls_w. Das Training mit main und den unten dokumentierten Hyperparametern ist nicht bit-identisch, liegt aber praktisch auf demselben Niveau wie die veröffentlichten Metriken.

YOLO26-Trainingshyperparameter nach Modellgröße#

Dies sind die Werte der Stufe 2, die zusätzlich zu den obigen Objects365-Gewichten angewendet werden. Die folgenden Tabellen gliedern das Rezept nach Kategorien: Optimierer und Zeitplan, Verlustgewichte sowie Augmentierung. Jeder Wert stammt direkt aus dem in den veröffentlichten Checkpoints eingebetteten train_args.

Optimierer und Lernrate#

Diese Optimierer- und Zeitplaneinstellungen steuerten die COCO-Feinabstimmung für jede Größe. Beachte, wie sich das N-Modell vom Rest abhebt:

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 anfängliche Lernrate mit starkem Abfall (lrf=0.0495), während die Modelle S/M/L/X eine deutlich niedrigere anfängliche Lernrate mit einem sanfteren Zeitplan (lrf=0.882) nutzten. Dies spiegelt die unterschiedlichen Konvergenzdynamiken kleinerer und größerer Modelle wider – kleinere Modelle benötigen aggressivere Updates, um effektiv zu lernen.

Verlustgewichte#

Die Verlustgewichte verteilen die Gewichtung auf die drei Komponenten des Erkennungsverlusts – die IoU-Regression der Begrenzungsbox (box), die Klassifikation (cls) und einen Regressionsterm für die Boxdistanz (dfl). Beachte, dass das DFL-freie YOLO26 den Faktor dfl verwendet, um einen L1-Verlust auf normalisierte Boxdistanzen statt auf den Distribution-Focal-Loss zu gewichten:

EinstellungNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

Das N-Modell priorisiert den Distanzregressionsterm dfl, während die Modelle S/M/L/X den Schwerpunkt auf IoU-basierte Boxregression verlagern. Der Klassifikationsverlust bleibt über alle Größen hinweg relativ konstant.

Augmentierungspipeline#

Eine ausführliche Erklärung der einzelnen Techniken findest du im Leitfaden zu YOLO-Datenaugmentierung.

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

Werte, die als ~0 angezeigt werden, liegen in den tatsächlichen Checkpoints unter 0.01 (zum Beispiel degrees=0.00012 beim S-Modell) – die Augmentierung ist damit praktisch deaktiviert.

Größere Modelle verwenden insgesamt eine aggressivere Augmentierung (höheres MixUp und stärkere Maßstabsänderung), da sie über mehr Kapazität verfügen und von stärkerer Regularisierung profitieren. Das N-Modell ist die einzige Größe mit signifikanter Rotation, Scherung und BGR-Augmentierung.

Interne Trainingsparameter#

Fortgeschritten: interne Pipelineparameter

Die Checkpoints enthalten außerdem Parameter, die im experimentellen Trainingsbranch verwendet wurden, aber in default.yaml nicht als vom Benutzer konfigurierbare Einstellungen verfügbar sind:

EinstellungBeschreibungNSMLX
muon_wMuon-Update-Gewicht in MuSGD0.5280.4360.4360.4360.436
sgd_wSGD-Update-Gewicht in MuSGD0.6740.4790.4790.4790.479
cls_wInternes Klassifikationsgewicht2.743.483.483.483.48
o2mVerlustgewicht des Eins-zu-vielen-Kopfs1.00.7050.7050.7050.705
topkTop-k-Labelzuweisung85555

Welche Bedeutung diese Parameter beim Feinabstimmen haben, erfährst du im FAQ-Eintrag zu diesen Parametern.

YOLO26 auf deinem eigenen Datensatz feinabstimmen#

Wenn du YOLO26 auf deinem eigenen Datensatz feinabstimmst, musst du nicht das vollständige Vortrainingsrezept nachbilden. Die vortrainierten Gewichte enthalten bereits das Wissen über Augmentierung und Optimierung aus dem COCO-Training. Allgemeinere Best Practices für das Training findest du unter Tipps für das Modelltraining.

Mit Standardeinstellungen feinabstimmen#

Mit Standardeinstellungen feinabstimmen
from ultralytics import YOLO

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

Die Feinabstimmung mit den Standardeinstellungen ist eine starke Ausgangsbasis. Passe Hyperparameter nur an, wenn es einen konkreten Grund dafür gibt.

Wann du YOLO26-Hyperparameter anpassen solltest#

Kleine Datensätze (< 1.000 Bilder):

  • Stärke der Augmentierung reduzieren: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Niedrigere Lernrate mit einem expliziten Optimierer: optimizer=AdamW, lr0=0.001
  • Weniger Epochen mit Geduld verwenden: epochs=50, patience=20
  • Ziehe in Betracht, Schichten des Backbones einzufrieren: freeze=10

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

  • Das Vortrainingsrezept genauer übernehmen
  • optimizer=MuSGD für längere Läufe in Betracht ziehen
  • Augmentierung verstärken: mosaic=1.0, mixup=0.3, scale=0.9

Domänenspezifische Bilder (Luftaufnahmen, medizinische Bilder, Unterwasseraufnahmen):

  • flipud=0.5 erhöhen, wenn die Ausrichtung in der Vertikalen variiert
  • degrees erhöhen, wenn Objekte in beliebigen Drehwinkeln auftreten
  • hsv_s und hsv_v anpassen, wenn sich die Lichtverhältnisse deutlich von COCO unterscheiden

Informationen zur automatisierten Hyperparameteroptimierung findest du im Leitfaden zur Hyperparameterabstimmung.

Eine Modellgröße auswählen#

ModellAm besten geeignet fürLeitfaden zur Batchgröße
YOLO26nEdge-Geräte, Mobilgeräte, Echtzeitverarbeitung auf der CPUGroße Batches (64–128) auf Consumer-GPUs
YOLO26sAusgewogenes Verhältnis von Geschwindigkeit und GenauigkeitMittlere Batches (32–64)
YOLO26mHöhere Genauigkeit bei moderatem RechenaufwandKleinere Batches (16–32)
YOLO26lHohe Genauigkeit, wenn eine GPU verfügbar istKleine Batches (8–16) oder mehrere GPUs
YOLO26xMaximale Genauigkeit, Bereitstellung auf dem ServerKleine Batches (4–8) oder mehrere GPUs

Informationen zu Export- und Bereitstellungsoptionen findest du im Exportleitfaden und unter Optionen für die Modellbereitstellung.

Fazit#

Die YOLO26-Checkpoints enthalten das vollständige Trainingsrezept, sodass die exakten Hyperparameter hinter jeder Modellgröße jederzeit nur eine train_args-Abfrage entfernt sind. Beginne das Fine-Tuning mit den Standardwerten, passe sie anhand der Tabellen auf dieser Seite gezielt an und überprüfe jede Änderung anhand deines eigenen Validierungsdatensatzes. Wenn unterwegs Fragen aufkommen, kannst du die Community im Ultralytics GitHub-Repository oder auf dem Ultralytics Discord-Server fragen.

FAQ#

  • Lade den Checkpoint mit torch.load() und greife auf den Schlüssel train_args zu oder verwende model.ckpt["train_args"] mit der Ultralytics API. Vollständige Beispiele findest du unter Trainingsargumente eines YOLO26-Checkpoints untersuchen.

  • Jede Größe wurde 150 Epochen lang mit Objects365 vortrainiert, daher beziehen sich die COCO-Zahlen nur auf die Fine-Tuning-Phase. Größere Modelle konvergieren bei COCO innerhalb dieser Epochen schneller: 40 für X gegenüber 245 für N. Die Zahlen sind nicht streng monoton (S verwendete 70, M verwendete 80), da sie aus der Hyperparametersuche für die jeweilige Größe hervorgegangen sind. Beim Fine-Tuning mit deinem eigenen Datensatz hängt die optimale Epochenzahl von der Größe und Komplexität deines Datensatzes ab, nicht von der Modellgröße. Verwende Early Stopping (patience), um den richtigen Abbruchpunkt automatisch zu ermitteln.

  • Diese stammen aus dem experimentellen Branch, in dem die Basis-Checkpoints erstellt wurden, und sind zur Reproduzierbarkeit in train_args aufgezeichnet. Es handelt sich nicht um vom Benutzer konfigurierbare Einstellungen in default.yaml. Wenn du sie an model.train() übergibst, führt das zu einem Fehler wegen eines ungültigen Arguments, da das veröffentlichte Paket sie nicht ausliest. Beim Fine-Tuning musst du sie nicht festlegen. Ihre Werte für die einzelnen Modellgrößen findest du unter Interne Trainingsparameter.

  • Nein. Jeder COCO-Checkpoint wurde ausgehend von einem Objects365v1-Checkpoint derselben Größe feinjustiert, der bereits 150 Epochen lang trainiert worden war, wie in Phase 1: Objects365-Vortraining und im YOLO26-Paper beschrieben. Hinter den veröffentlichten Zahlen steht kein COCO-Lauf von Grund auf, daher ist ein Vergleich eines Trainings von Grund auf mit diesen Zahlen nicht direkt vergleichbar.

  • Sie befinden sich in den Checkpoints und werden auf der Ultralytics Platform als Diagramme dargestellt. Jeder Checkpoint speichert das vollständige results.csv seines Laufs für jede Epoche. Wenn du eine .pt-Datei in ein Platform-Projekt ziehst, werden die Verluste, der mAP-Verlauf und die Lernraten ohne Code als Diagramme dargestellt. Siehe Trainingskurven anzeigen. Die Objects365-Phase verfügt über ein eigenes Protokoll in den yolo26*-objv1-150.pt-Checkpoints.

  • Du wirst nahe an die veröffentlichten Metriken herankommen, aber sie nicht exakt reproduzieren. Für eine identische Konfiguration checke den im Checkpoint aufgezeichneten Commit aus und trainiere auf diesem Branch. Siehe Code-Revision überprüfen.

Kommentare