YAML
Découvre comment YAML simplifie les workflows d’IA. Apprends à utiliser les fichiers YAML pour configurer les jeux de données et entraîner les modèles Ultralytics YOLO26 afin de rendre le MLOps plus rapide et plus simple.
YAML (YAML n'est pas un langage de balisage) est un standard de sérialisation des données lisible par l'humain, largement utilisé dans le secteur des logiciels pour rédiger des fichiers de configuration. Contrairement aux langages de balisage plus complexes, YAML privilégie une mise en forme claire et la lisibilité, ce qui en fait un excellent choix pour les développeurs et les data scientists qui doivent inspecter ou modifier rapidement des paramètres. Sa structure simple repose sur l'indentation plutôt que sur des crochets ou des balises, ce qui permet aux utilisateurs de définir des structures de données hiérarchiques telles que des listes et des dictionnaires avec un minimum d'encombrement visuel. 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, en stockant aussi bien les chemins des jeux de données que les paramètres de réglage des hyperparamètres dans un format facile à versionner et à partager.
Pertinence dans le machine learning#
Dans les opérations modernes de machine learning (MLOps), il est essentiel de maintenir des expériences reproductibles et organisées. Les fichiers YAML servent de plans pour ces expériences, en regroupant tous les détails de configuration nécessaires dans un seul document. Des frameworks comme les modèles Ultralytics YOLO26 s'appuient fortement sur ces fichiers de configuration pour définir les architectures des modèles et les protocoles d'entraînement.
Lorsque tu entraînes un modèle de vision par ordinateur, tu dois souvent préciser où se trouvent tes données d'entraînement, combien de classes tu détectes et quels sont les noms de ces classes. Au lieu de coder ces valeurs en dur dans des scripts Python, ce qui peut rendre les bases de code difficiles à maintenir, tu sépares ces données dans un fichier YAML. Cette séparation des responsabilités permet aux chercheurs de changer de jeu de données ou d'ajuster les taux d'apprentissage sans toucher au code principal, ce qui facilite un meilleur suivi des expériences et la collaboration.
YAML vs JSON vs XML#
Bien que YAML soit souvent comparé à JSON (notation objet JavaScript (JSON)) et à XML (langage de balisage extensible (XML)), ces formats répondent à des objectifs 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 essentiels pour documenter les raisons du choix de certains poids du modèle ou paramètres.
- JSON : Idéal pour la communication de machine à machine, par exemple avec des API web ou pour enregistrer des résultats d'inférence. Il est plus strict et plus difficile à modifier manuellement pour les humains en raison des guillemets et des accolades obligatoires, et il ne prend pas en charge les commentaires.
- XML : Format plus verbeux, souvent utilisé dans les systèmes existants ou pour le stockage de documents complexes, comme les annotations Pascal VOC. Il est généralement considéré comme trop lourd pour les tâches de configuration simples dans les workflows modernes de deep learning.
Applications concrètes dans l'IA#
YAML intervient à plusieurs étapes essentielles du cycle de développement de l'IA :
- Configuration du jeu de données : Lorsque tu travailles avec des jeux de données de détection d’objets comme COCO ou avec des données personnalisées sur la plateforme Ultralytics, un fichier YAML (
data.yaml) définit généralement les chemins d’accès aux répertoires des ensembles d’entraînement, de validation et de test. Il associe également les indices de classes (0, 1, 2) aux noms de classes (personne, vélo, voiture), afin que le modèle comprenne la structure des données. - Pipelines CI/CD : Dans les workflows d'intégration continue, 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 neuronal ou le déploiement d'un modèle dans un conteneur Docker chaque fois que du code est envoyé vers un dépôt.
Exemple : configuration d'un entraînement YOLO#
L'exemple suivant montre comment un fichier YAML classique sert d'interface de jeu de données pour entraîner un modèle YOLO26. L'extrait Python ci-dessous montre comment la bibliothèque Ultralytics utilise ce fichier pour démarrer 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 de Python : Le code lit la configuration et lance l'entraînement à l'aide des 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 clés de syntaxe aide à éviter les erreurs courantes, telles que ScannerError ou ParserError, qui surviennent souvent à cause d'une indentation incorrecte.
- Indentation : YAML utilise les espaces blancs (des espaces, pas des tabulations) pour représenter la structure. Les éléments imbriqués doivent être davantage indentés 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 trait d'union
-. Cela est utile pour définir des listes d'étapes d'augmentation des données ou plusieurs sources d'entrée. - Commentaires : Les lignes commençant par
#sont ignorées par l'analyseur, ce qui te permet de laisser directement dans le fichier des notes sur des hyperparamètres spécifiques.
En maîtrisant YAML, les professionnels peuvent rationaliser leurs workflows d'entraînement des modèles, réduire les erreurs de configuration et garantir que leurs projets d'IA restent évolutifs et faciles à maintenir.









