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.
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:
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
| Einstellung | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
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
| Einstellung | N | S | M | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.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.
| Einstellung | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.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:
| Einstellung | Beschreibung | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | Muon-Update-Gewichtung in MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | SGD-Update-Gewichtung in MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Interne Klassifizierungsgewichtung | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | One-to-many Head-Loss-Gewichtung | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Top-k Label-Zuweisung | 8 | 5 | 5 | 5 | 5 |
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
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=MuSGDfü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.5bei variierender vertikaler Ausrichtung - Erhöhe
degreeswenn Objekte in beliebigen Rotationen erscheinen - Passe
hsv_sundhsv_van, wenn die Lichtverhältnisse signifikant von COCO abweichen
Für die automatisierte Hyperparameter-Optimierung, siehe den Leitfaden zur Hyperparameter-Optimierung.
Wahl der Modellgröße
| Modell | Bestens geeignet für | Anleitung zur Batch-Größe |
|---|---|---|
| YOLO26n | Edge-Geräte, Mobilgeräte, Echtzeit auf CPU | Große Batches (64-128) auf Consumer-GPUs |
| YOLO26s | Ausgewogene Geschwindigkeit und Genauigkeit | Mittlere Batches (32-64) |
| YOLO26m | Höhere Genauigkeit bei moderater Rechenleistung | Kleinere Batches (16-32) |
| YOLO26l | Hohe Genauigkeit bei verfügbarer GPU | Kleine Batches (8-16) oder Multi-GPU |
| YOLO26x | Maximale Genauigkeit, Server-Deployment | Kleine 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.