YAML
Lerne, wie YAML KI-Workflows optimiert. Entdecke, wie du YAML-Dateien verwendest, um Datensätze zu konfigurieren und Ultralytics YOLO26-Modelle für schnellere, einfachere MLOps zu trainieren.
YAML (YAML Ain't Markup Language) ist ein für Menschen lesbarer Datenserialisierungsstandard, der in der Softwareindustrie häufig zum Schreiben von Konfigurationsdateien verwendet wird. Im Gegensatz zu komplexeren Auszeichnungssprachen priorisiert YAML saubere Formatierung und Lesbarkeit, was es zu einer hervorragenden Wahl für Entwickler und Data Scientists macht, die Parameter schnell überprüfen oder ändern müssen. Seine einfache Struktur stützt sich auf Einrückungen statt auf Klammern oder Tags, wodurch Benutzer hierarchische Datenstrukturen wie Listen und Wörterbücher mit minimalem visuellen Ballast definieren können. Im Kontext von künstlicher Intelligenz und maschinellem Lernen dient YAML als entscheidende Brücke zwischen menschlicher Absicht und maschineller Ausführung und speichert alles von Datensatzpfaden bis hin zu Hyperparameter-Tuning-Einstellungen in einem Format, das leicht zu versionieren und zu teilen ist.
Relevanz im Machine Learning#
In modernen Machine Learning Operations (MLOps) ist es unerlässlich, reproduzierbare und organisierte Experimente beizubehalten. YAML-Dateien fungieren als Blaupausen für diese Experimente und kapseln alle erforderlichen Konfigurationsdetails in einem einzigen Dokument. Frameworks wie die Ultralytics YOLO26-Modelle sturzbezogen sich stark auf diese Konfigurationsdateien, um Modellarchitekturen und Trainingsprotokolle zu definieren.
Wenn du ein Computer-Vision-Modell trainierst, musst du häufig angeben, wo sich deine Trainingsdaten befinden, wie viele Klassen du erkennst und wie diese Klassen heißen. Anstatt diese Werte fest in Python-Skripte zu codieren, was zu unübersichtlichen Codebasen führen kann, trennst du diese Daten in einer YAML-Datei auf. Diese Trennung der Belange ermöglicht es Forschern, Datensätze auszutauschen oder Lernraten anzupassen, ohne die Kerncodebasis anzufassen, was ein besseres Experiment-Tracking und eine bessere Zusammenarbeit erleichtert.
YAML vs. JSON vs. XML#
Während YAML oft mit JSON (JavaScript Object Notation) und XML (eXtensible Markup Language) verglichen wird, erfüllen sie im KI-Ökosystem leicht unterschiedliche Zwecke.
- YAML: Am besten geeignet für Konfigurationsdateien, die von Menschen geschrieben und gelesen werden. Es unterstützt Kommentare, die entscheidend sind, um zu dokumentieren, warum bestimmte Modellgewichte oder Parameter ausgewählt wurden.
- JSON: Ideal für die Maschine-zu-Maschine-Kommunikation, wie Web-APIs oder zum Speichern von Inferenzergebnissen. Es ist strenger und für Menschen aufgrund von erforderlichen Anführungszeichen und Klammern schwieriger manuell zu bearbeiten, und es fehlt ihm an Unterstützung für Kommentare.
- XML: Ein ausführlicheres Format, das oft in Altsystemen oder komplexen Dokumentenspeichern (wie Pascal VOC-Annotationen) verwendet wird. Es wird im Allgemeinen als zu schwer für einfache Konfigurationsaufgaben in modernen Deep-Learning-Workflows angesehen.
Reale Anwendungen in der KI#
YAML findet seinen Platz in mehreren kritischen Phasen des KI-Entwicklungszyklus:
- Datensatzkonfiguration: Wenn du mit Objekterkennungs-Datensätzen wie COCO oder benutzerdefinierten Daten auf der Ultralytics Platform arbeitest, definiert eine YAML-Datei (
data.yaml) typischerweise die Verzeichnispfade für Trainings-, Validierungs- und Testsätze. Sie ordnet außerdem Klassenindizes (0, 1, 2) Klassennamen (Person, Fahrrad, Auto) zu, um sicherzustellen, dass das Modell die Datenstruktur versteht. - CI/CD-Pipelines: In Continuous Integration-Workflows verwenden Tools wie GitHub Actions YAML, um Automatisierungsschritte zu definieren. Dies kann das Ausführen von Unit-Tests für eine neue neuronale Netzarchitektur oder das Bereitstellen eines Modells in einem Docker-Container umfassen, wann immer Code in ein Repository gepusht wird.
Beispiel: Konfiguration eines YOLO-Trainingslaufs#
Das folgende Beispiel zeigt, wie eine typische YAML-Datei als Datensatzschnittstelle für das Training eines YOLO26-Modells dient. Der Python-Ausschnitt unten zeigt, wie die Ultralytics-Bibliothek diese Datei verbraucht, um den Trainingsprozess zu starten.
1. Die coco8.yaml Datei (Konzept): Diese Datei würde Pfade zu Bildern und eine Liste von Klassennamen enthalten.
path: ../datasets/coco8 # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
# Classes
names:
0: person
1: bicycle
2: car
...2. Python-Verwendung: Der Code liest die Konfiguration und initiiert das Training unter Verwendung der angegebenen Parameter.
from ultralytics import YOLO
# Load the YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model using the dataset configuration defined in the YAML file
# The 'data' argument points directly to the YAML file
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)Wichtige Syntax-Konzepte#
Das Verständnis einiger wichtiger Syntaxregeln hilft dabei, häufige Fehler zu vermeiden, wie z. B. ScannerError oder ParserError, die oft aufgrund falscher Einrückungen auftreten.
- Einrückung: YAML verwendet Leerzeichen (Spaces, keine Tabs), um die Struktur zu kennzeichnen. Verschachtelte Elemente müssen weiter eingerückt sein als ihre übergeordneten Elemente.
- Schlüssel-Wert-Paare: Daten werden als
key: valuegespeichert. Zum Beispiel legtepochs: 100die Anzahl der Trainingszyklen fest. - Listen: Sequenzen werden durch einen Bindestrich
-gekennzeichnet. Dies ist nützlich, um Listen von Datenaugmentierungs-Schritten oder mehrere Eingabequellen zu definieren. - Kommentare: Zeilen, die mit
#beginnen, werden vom Parser ignoriert, sodass du Notizen zu spezifischen Hyperparametern direkt in der Datei hinterlassen kannst.
Durch das Beherrschen von YAML können Anwender ihre Modelltraining-Workflows optimieren, Konfigurationsfehler reduzieren und sicherstellen, dass ihre KI-Projekte skalierbar und leicht zu warten bleiben.






