Ultralytics YOLO27:
Get Started

YOLO26-Trainingsrezept#

Einführung#

Dieser Leitfaden dokumentiert das genaue Trainings-Rezept, mit dem die offiziellen vortrainierten YOLO26-Checkpoints für COCO erstellt wurden. Jeder hier gezeigte Hyperparameter ist bereits in den veröffentlichten .pt-Gewichten enthalten, zusammen mit dem Trainingsprotokoll pro Epoche und der Code-Revision des Laufs. All das lässt sich programmatisch untersuchen.

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 Fine-Tuning bessere Entscheidungen treffen: welche Datenaugmentierungen du beibehältst, welche Gewichte der Verlustfunktion du anpasst und welche Optimierereinstellungen sich für die Größe deines Datensatzes am besten eignen.

Lies das Paper für einen vollständigen Überblick

Diese Seite behandelt die in den veröffentlichten Checkpoints gespeicherten Hyperparameter. Die Hintergründe dazu – darunter die Architektur, Änderungen an Verlustfunktion und Labelzuweisung sowie die Ablationsstudien – findest du im Paper Ultralytics YOLO26: Einheitliche Echtzeit-End-to-End-Vision-Modelle.

Trainingsübersicht#

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

Wichtige Designentscheidungen für alle Modellgrößen:

  • Vortraining mit Objects365 jeder Modellgröße vor der COCO-Phase
  • Training mit zwei Heads mit One-to-Many- und One-to-One-Supervision; bei der Inferenz wird standardmäßig NMS verwendet, während nms=False den NMS-freien Head auswählt
  • MuSGD-Optimierer, der SGD mit Muon-ähnlichen orthogonalisierten Updates für Gewichtsmatrizen kombiniert (lineare 2D-Gewichte und 4D-Faltungsfilter, die in 2D umgeformt werden)
  • Starke Mosaic-Augmentierung (~0.9-1.0 Wahrscheinlichkeit), die in den letzten Epochen deaktiviert wird (close_mosaic=8 beim Vortraining, close_mosaic=10 auf COCO)
  • Starke Skalierungsaugmentierung (0.5-0.95), um Objekte unterschiedlicher Größe zu verarbeiten
  • Minimale Rotation und Scherung bei den meisten Modellgrößen, um geometrische Verzerrungen gering zu halten

Phase 1: Vortraining mit Objects365#

Jeder YOLO26-COCO-Checkpoint wurde mit einem Objects365v1-Checkpoint derselben Größe feinabgestimmt. Diese vortrainierten Gewichte wurden ebenfalls veröffentlicht und sind auf der Objects365-Datensatzseite dokumentiert. Jeder COCO-Checkpoint nennt seine Ausgangsgewichte in der Trainingskonfiguration, die in der Datei .pt eingebettet ist. Im Folgenden wird unter Trainingsargumente des YOLO26-Checkpoints untersuchen gezeigt, wie du diese 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

Beim Vortraining wurden größtenteils Standardeinstellungen statt durch Suche ermittelter Werte verwendet. lr0, lrf, momentum, weight_decay, box und cls stimmen mit default.yaml überein, während warmup_epochs, close_mosaic und dfl überschrieben wurden. Abgesehen von warmup_epochs bei X, den Augmentierungsstärken und den internen MuSGD- und Head-Gewichten, die nach den Tabellen aufgeführt sind, gelten für alle Modellgrößen dieselben Einstellungen:

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 beeinflussen, aber 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.

Erweitert: interne Parameter des Vortrainings

Beim Vortraining wurden außerdem ähnliche Parameter experimenteller Branches variiert wie unter Interne Trainingsparameter beschrieben. cls_w hatte bei allen Modellgrößen 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
Beginne mit den Objects365-Gewichten

Du benötigst den Objects365-Datensatz nicht, um Stage 1 erneut zu verwenden. Die vortrainierten Checkpoints werden wie jedes andere Ultralytics-Asset automatisch heruntergeladen, sodass du sie mit 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-Stage erneut auszuführen, beginne mit denselben Gewichten und übergib für diese Modellgröße die Optimizer-, Loss- und Augmentierungswerte aus Stage 2 aus den Tabellen unten. In diesen Tabellen fehlen kleinere, nicht standardmäßige Argumente wie warmup_momentum, warmup_bias_lr, perspective, flipud und cutmix. Gib daher train_args aus dem Checkpoint aus, um die exakte Konfiguration zu erhalten. Das veröffentlichte Paket weist die internen Parameter zurück; du benötigst dafür den experimentellen Branch.

Trainingsargumente des YOLO26-Checkpoints untersuchen#

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

Trainingsargumente des Checkpoints untersuchen
from ultralytics import YOLO

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

Die Ausgabe listet die vollständige Konfiguration mit über 100 Einträgen auf, einschließlich aller auf dieser Seite dokumentierten Rezeptwerte. 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

Das funktioniert mit jedem .pt-Checkpoint – sowohl mit offiziellen Releases als auch mit deinen eigenen feinabgestimmten Modellen. Die 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 des Laufs, mit dem er erstellt wurde, sowie dessen abschließende Validierungsmetriken. Die Kurven der offiziellen YOLO26-Checkpoints werden auf der Ultralytics Platform veröffentlicht. Jede .pt-Datei kann auf ein Projekt gezogen und dort abgelegt werden, um dieselben Daten grafisch darzustellen; die Metadaten werden dabei automatisch aus der Datei ausgelesen.

Jeder Checkpoint umfasst die Stage, in der er erstellt wurde. Die COCO-Kurven befinden sich daher in yolo26s.pt, die 150-Epochen-Kurven von Objects365 in yolo26s-objv1-150.pt.

Codeversion überprüfen#

ckpt["git"] speichert den Commit, mit dem der Checkpoint erstellt wurde. Diese Commits befinden sich auf öffentlichen experimentellen Branches des Ultralytics-Repositorys, sodass du den exakten 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 es nie in main geschafft haben, beispielsweise konfigurierbare o2m und cls_w. Das Training mit main und den unten dokumentierten Hyperparametern liefert keine bitgenauen Ergebnisse, liegt aber nur vernachlässigbar weit von den veröffentlichten Metriken entfernt.

YOLO26-Trainingshyperparameter nach Modellgröße#

Dies sind die Werte aus Stage 2, die auf die Objects365-Gewichte oben angewendet werden. Die Tabellen unten ordnen das Rezept nach Kategorien: Optimizer und Zeitplan, Loss-Gewichte und Augmentierung. Jeder Wert stammt direkt aus dem in den veröffentlichten Checkpoints eingebetteten train_args.

Optimizer und Lernrate#

Diese Optimizer- und Zeitplaneinstellungen bestimmten die COCO-Feinabstimmung für jede Größe. Beachte, dass sich das N-Modell von den anderen unterscheidet:

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 verwendeten (lrf=0.882). Das spiegelt die unterschiedlichen Konvergenzdynamiken kleinerer und größerer Modelle wider: Kleinere Modelle benötigen aggressivere Aktualisierungen, um effektiv zu lernen.

Loss-Gewichte#

Die Loss-Gewichte gleichen die drei Komponenten des Detektions-Losses aus: die IoU-Regression der Bounding Box (box), die Klassifizierung (cls) und einen Regressionsterm für Boxabstände (dfl). Beachte, dass das DFL-freie YOLO26 den Gain dfl neu verwendet, um einen L1-Loss auf normalisierte Boxabstände statt des 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 gewichtet den Distanzregressionsterm dfl höher, während die Modelle S/M/L/X den Schwerpunkt auf die IoU-basierte Boxregression verlagern. Der Klassifizierungs-Loss bleibt bei allen Größen relativ ähnlich.

Augmentierungspipeline#

Eine ausführliche Erläuterung der einzelnen Techniken findest du im Leitfaden zur 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

Die im Checkpoint tatsächlich hinterlegten Werte für ~0 liegen unter 0,01 (zum Beispiel degrees=0.00012 für das S-Modell) – die Augmentierung ist damit praktisch deaktiviert.

Größere Modelle verwenden insgesamt stärkere Augmentierung (höhere MixUp- und Skalierungswerte), 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-Augmentierung.

Interne Trainingsparameter#

Erweitert: interne Pipelineparameter

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

EinstellungBeschreibungNSMLX
muon_wMuon-Aktualisierungsgewicht in MuSGD0.5280.4360.4360.4360.436
sgd_wSGD-Aktualisierungsgewicht in MuSGD0.6740.4790.4790.4790.479
cls_wInternes Klassifizierungsgewicht2.743.483.483.483.48
o2mLoss-Gewicht des One-to-many-Heads1.00.7050.7050.7050.705
topkTop-k-Labelzuweisung85555

Was diese Parameter bei der Feinabstimmung bedeuten, erfährst du im FAQ-Eintrag zu diesen Parametern.

YOLO26 mit deinem eigenen Datensatz feinabstimmen#

Wenn du YOLO26 mit deinem eigenen Datensatz feinabstimmst, musst du das vollständige Vortrainingsrezept nicht nachbilden. Die vortrainierten Gewichte enthalten bereits das Wissen aus der COCO-Trainingsaugmentierung und -optimierung. Allgemeine Empfehlungen zum Training findest du unter Tipps zum 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 Standardeinstellungen ist eine solide Ausgangsbasis. Passe Hyperparameter nur an, wenn es dafür einen konkreten Grund gibt.

Wann solltest du YOLO26-Hyperparameter anpassen?#

Kleine Datensätze (< 1.000 Bilder):

  • Verringere die Stärke der Augmentierung: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Verringere die Lernrate und gib einen Optimizer explizit an: optimizer=AdamW, lr0=0.001
  • Verwende weniger Epochen und lege einen Patience-Wert fest: epochs=50, patience=20
  • Ziehe in Betracht, Backbone-Schichten einzufrieren: freeze=10

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

  • Orientiere dich stärker am Vortrainingsrezept
  • Ziehe optimizer=MuSGD für längere Trainingsläufe in Betracht
  • Erhöhe die Augmentierung: mosaic=1.0, mixup=0.3, scale=0.9

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

  • Erhöhe flipud=0.5, wenn die vertikale Ausrichtung variiert
  • Erhöhe degrees, wenn Objekte in beliebigen Drehungen auftreten
  • Passe hsv_s und hsv_v an, wenn sich die Lichtverhältnisse deutlich von COCO unterscheiden

Eine automatisierte Optimierung von Hyperparametern wird im Leitfaden zur Hyperparameteroptimierung beschrieben.

Modellgröße auswählen#

ModellAm besten geeignet fürEmpfehlungen zur Batchgröße
YOLO26nEdge-Geräte, Mobilgeräte, Echtzeitbetrieb auf der CPUGroße Batches (64–128) auf GPUs für Endverbraucher
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 ServernKleine Batches (4–8) oder mehrere GPUs

Export- und Bereitstellungsoptionen findest du im Exportleitfaden und unter Optionen zur Modellbereitstellung.

Fazit#

Die YOLO26-Checkpoints enthalten das vollständige Trainingsrezept, sodass du die exakten Hyperparameter für jede Modellgröße jederzeit mit einer Abfrage von train_args findest. Beginne die Feinabstimmung mit den Standardeinstellungen, passe sie anhand der Tabellen auf dieser Seite gezielt an und überprüfe jede Änderung mit deinem eigenen Validierungsdatensatz. Wenn du Fragen hast, wende dich an die Community im Ultralytics-GitHub-Repository oder auf dem Ultralytics-Discord-Server.

Häufig gestellte Fragen#

  • 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 des YOLO26-Checkpoints untersuchen.

  • Jede Modellgröße erhielt dieselben 150 Epochen Vortraining mit Objects365. Die COCO-Epochenzahlen beziehen sich daher nur auf die Feinabstimmung. Größere Modelle konvergieren mit COCO in weniger Epochen: 40 für X gegenüber 245 für N. Die Zahlen steigen nicht strikt monoton (S verwendete 70, M 80), da sie aus der Hyperparametersuche für die jeweilige Größe hervorgingen. Bei der Feinabstimmung mit deinem eigenen Datensatz hängt die optimale Epochenzahl von Größe und Komplexität deines Datensatzes ab, nicht von der Modellgröße. Mit Early Stopping (patience) findest du automatisch den passenden Abbruchzeitpunkt.

  • Diese Parameter stammen aus dem experimentellen Branch, mit dem die Basis-Checkpoints erstellt wurden, und sind zur Reproduzierbarkeit in train_args festgehalten. Sie sind in default.yaml keine benutzerkonfigurierbaren Einstellungen. Wenn du sie an model.train() übergibst, wird ein Fehler wegen eines ungültigen Arguments ausgelöst, da das veröffentlichte Paket sie nicht ausliest. Bei der Feinabstimmung musst du sie nicht festlegen. Die Werte für die einzelnen Modellgrößen findest du unter Interne Trainingsparameter.

  • Nein. Jeder COCO-Checkpoint wurde aus einem Objects365v1-Checkpoint derselben Größe feinabgestimmt, der bereits 150 Epochen trainiert worden war. Das wird unter Stage 1: Vortraining mit Objects365 und im YOLO26-Paper beschrieben. Den veröffentlichten Zahlen liegt kein COCO-Lauf von Grund auf zugrunde. Ein Vergleich mit diesen Zahlen wäre daher nicht gleichwertig.

  • Sie befinden sich in den Checkpoints und sind auf der Ultralytics Platform grafisch dargestellt. Jeder Checkpoint speichert das vollständige results.csv seines Laufs. Wenn du eine .pt-Datei auf ein Platform-Projekt ziehst, werden Loss-Werte, mAP-Verlauf und Lernraten ohne zusätzlichen Code grafisch dargestellt. Weitere Informationen findest du unter Trainingskurven anzeigen. Die Objects365-Stage hat 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 ein identisches Setup checke den im Checkpoint festgehaltenen Commit aus und trainiere auf diesem Branch. Weitere Informationen findest du unter Codeversion überprüfen.

Kommentare