Découvrez comment YAML rationalise les workflows d'IA. Découvrez comment utiliser les fichiers YAML pour configurer des ensembles de données et former les modèles Ultralytics afin d'accélérer et de faciliter les opérations MLOps.
YAML (YAML Ain't Markup Language) est une norme de sérialisation de données lisible par l'homme qui est largement utilisée dans l'industrie du logiciel pour écrire des fichiers de configuration. Contrairement aux langages de balisage plus complexes, YAML privilégie un formatage clair et la lisibilité, ce qui en fait un excellent choix pour les développeurs et les scientifiques de données 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 aux utilisateurs de définir des structures de données hiérarchiques telles que des listes et des dictionnaires avec un encombrement visuel minimal. Dans le contexte de l'intelligence artificielle et de l'apprentissage automatique, YAML sert de pont essentiel entre l'intention humaine et l'exécution machine, stockant tout, des chemins d'accès aux ensembles de données aux paramètres de réglage des hyperparamètres, dans un format facile à contrôler et à partager.
Dans les opérations modernes d'apprentissage automatique (MLOps), il est essentiel de maintenir des expériences reproductibles et organisées. Les fichiers YAML servent de plans pour ces expériences, encapsulant tous les détails de configuration nécessaires dans un seul document. Des cadres tels que les modèles Ultralytics s'appuient fortement sur ces fichiers de configuration pour définir les architectures des modèles et les protocoles d'entraînement.
Lorsque vous entraînez un modèle de vision par ordinateur, vous devez souvent spécifier l'emplacement de vos données d'entraînement, le nombre de classes que vous détectez et les noms de ces classes. Au lieu de coder en dur ces valeurs dans Python , ce qui peut entraîner des bases de code désordonnées, vous séparez ces données dans un fichier YAML. Cette séparation des préoccupations permet aux chercheurs d'échanger des ensembles de données ou d'ajuster les taux d'apprentissage sans toucher à la base de code principale, ce qui facilite un meilleur suivi des expériences et la collaboration.
Bien que le YAML soit souvent comparé au JSON (JavaScript Object Notation) et au XML (eXtensible Markup Language), ces formats ont des objectifs légèrement différents dans l'écosystème de l'IA.
YAML trouve sa place dans plusieurs étapes critiques du cycle de vie du développement de l'IA :
data.yaml) définit généralement les chemins d'accès aux 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 (personne, vélo, voiture), garantissant ainsi que le modèle comprend la structure des données.
L'exemple suivant montre comment un fichier YAML type sert d'interface de jeu de données pour l'entraînement d'un modèle YOLO26. Python ci-dessous montre comment la Ultralytics utilise ce fichier pour lancer le processus d'entraînement.
1. Le coco8.yaml fichier (Concept) :Ce fichier contiendrait les chemins d'accès aux 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. Python :le code lit la configuration et lance l'entraînement à l'aide des paramètres spécifiés. paramètres.
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)
Comprendre quelques règles syntaxiques clés permet d'éviter les erreurs courantes, telles que ScannerError ou
ParserError, qui surviennent souvent en raison d'une indentation incorrecte.
key: value. Par exemple,
epochs: 100 définit le nombre de cycles d'entraînement.
-. Ceci est utile pour définir des listes de
augmentation des données étapes ou plusieurs sources d'entrée
.
# sont ignorées par l'analyseur, ce qui vous permet de laisser des notes
sur des éléments spécifiques.
hyperparamètres directement dans le fichier.
En maîtrisant YAML, les praticiens peuvent rationaliser leurs workflows de formation de modèles, réduire les erreurs de configuration et garantir que leurs projets d'IA restent évolutifs et faciles à maintenir.