YAML
Apprends comment YAML rationalise les flux de travail IA. Découvre comment utiliser les fichiers YAML pour configurer les datasets et entraîner des modèles Ultralytics YOLO26 pour des MLOps plus rapides et plus faciles.
YAML (YAML Ain't Markup Language) est un standard de sérialisation de données lisible par l'homme, largement utilisé dans l'industrie logicielle pour rédiger des fichiers de configuration. Contrairement aux langages de balisage plus complexes, YAML privilégie un formatage épuré et la lisibilité, ce qui en fait un excellent choix pour les développeurs et data scientists qui ont besoin d'inspecter ou de modifier rapidement des paramètres. Sa structure simple repose sur l'indentation plutôt que sur des crochets ou des balises, ce qui permet de définir des structures de données hiérarchiques telles que des listes et des dictionnaires avec un minimum de surcharge visuelle. Dans le contexte de l'intelligence artificielle et du machine learning, YAML sert de pont essentiel entre l'intention humaine et l'exécution par la machine, stockant tout, des chemins de jeux de données aux paramètres de hyperparameter tuning, dans un format facile à versionner et à partager.
Pertinence dans le Machine Learning#
Dans les machine learning operations (MLOps) modernes, il est essentiel de maintenir des expériences reproductibles et organisées. Les fichiers YAML fonctionnent comme des plans directeurs pour ces expériences, encapsulant tous les détails de configuration nécessaires dans un seul document. Des frameworks comme les modèles Ultralytics YOLO26 dépendent fortement de ces fichiers de configuration pour définir les architectures de modèles et les protocoles d'entraînement.
Quand tu entraînes un modèle de computer vision, tu dois souvent spécifier où se trouvent tes training data, combien de classes tu détectes et les noms de ces classes. Au lieu de coder en dur ces valeurs dans des scripts Python, ce qui peut mener à des bases de code désordonnées, tu sépares ces données dans un fichier YAML. Cette séparation des préoccupations permet aux chercheurs de changer de jeu de données ou d'ajuster les learning rates sans toucher au code source principal, facilitant ainsi le experiment tracking et la collaboration.
YAML vs. JSON vs. XML#
Bien que YAML soit souvent comparé à JSON (JavaScript Object Notation) et à XML (eXtensible Markup Language), ils ont des rôles légèrement différents dans l'écosystème de l'IA.
- YAML : Idéal pour les fichiers de configuration écrits et lus par des humains. Il prend en charge les commentaires, qui sont indispensables pour documenter pourquoi des model weights ou des paramètres spécifiques ont été choisis.
- JSON : Idéal pour la communication de machine à machine, comme les API web ou l'enregistrement de inference results. Il est plus strict et plus difficile à modifier manuellement pour un humain en raison des guillemets et des accolades nécessaires, et il ne prend pas en charge les commentaires.
- XML : Un format plus verbeux souvent utilisé dans les systèmes existants ou pour le stockage de documents complexes (comme les Pascal VOC annotations). Il est généralement considéré comme trop lourd pour des tâches de configuration simples dans les flux de travail de deep learning modernes.
Applications concrètes en IA#
YAML trouve sa place dans plusieurs étapes critiques du cycle de développement IA :
- Configuration du jeu de données : Lorsque tu travailles avec des jeux de données d'object detection tels que COCO ou des données personnalisées sur la Ultralytics Platform, un fichier YAML (
data.yaml) définit généralement les chemins des répertoires pour les ensembles d'entraînement, de validation et de test. Il associe également les indices de classe (0, 1, 2) aux noms de classe (person, bicycle, car), garantissant que le modèle comprend la structure des données. - Pipelines CI/CD : Dans les flux de travail d'continuous integration, des outils comme GitHub Actions utilisent YAML pour définir les étapes d'automatisation. Cela peut inclure l'exécution de tests unitaires sur une nouvelle architecture de réseau de neurones ou le déploiement d'un modèle dans un Docker container chaque fois que du code est poussé vers un dépôt.
Exemple : Configuration d'une exécution d'entraînement YOLO#
L'exemple suivant montre comment un fichier YAML type sert d'interface de données pour l'entraînement d'un modèle YOLO26. L'extrait Python ci-dessous montre comment la bibliothèque Ultralytics utilise ce fichier pour lancer le processus d'entraînement.
1. Le fichier coco8.yaml (Concept) : Ce fichier contiendrait les chemins vers les images et une liste de noms de classes.
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. Utilisation en Python : Le code lit la configuration et lance l'entraînement en utilisant les paramètres spécifiés.
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)Concepts clés de la syntaxe#
Comprendre quelques règles de syntaxe clés aide à éviter les erreurs courantes, telles que ScannerError ou ParserError, qui se produisent souvent en raison d'une mauvaise indentation.
- Indentation : YAML utilise des espaces (des espaces, pas des tabulations) pour indiquer la structure. Les éléments imbriqués doivent être indentés davantage que leurs éléments parents.
- Paires clé-valeur : Les données sont stockées sous la forme
key: value. Par exemple,epochs: 100définit le nombre de cycles d'entraînement. - Listes : Les séquences sont indiquées par un tiret
-. Ceci est utile pour définir des listes d'étapes de data augmentation ou plusieurs sources d'entrée. - Commentaires : Les lignes commençant par
#sont ignorées par l'analyseur, ce qui te permet de laisser des notes sur des hyperparameters spécifiques directement dans le fichier.
En maîtrisant YAML, les praticiens peuvent optimiser leurs flux de travail de model training, réduire les erreurs de configuration et s'assurer que leurs projets d'IA restent évolutifs et faciles à maintenir.






