Glossaire

YAML

Découvrez la puissance de YAML dans l'IA/ML ! Simplifiez les configurations, rationalisez les flux de travail et améliorez la lisibilité grâce à ce format de données polyvalent.

YAML, acronyme de "YAML Ain't Markup Language", est une norme de sérialisation des données lisible par l'homme, utilisée pour écrire des fichiers de configuration et transmettre des données entre systèmes. Sa conception privilégie la clarté et la simplicité, ce qui permet aux développeurs et aux scientifiques des données de définir des structures de données complexes d'une manière facile à lire et à écrire. Contrairement aux formats plus verbeux, YAML utilise l'indentation pour indiquer la structure, ce qui permet d'obtenir des fichiers propres et intuitifs, idéaux pour gérer les paramètres dans les projets logiciels, y compris ceux de l'apprentissage automatique (ML). La spécification officielle et les ressources sont disponibles sur le site yaml.org.

Rôle et application dans l'IA et la ML

Dans le contexte de l'intelligence artificielle (IA), YAML est l'épine dorsale de la gestion de la configuration, jouant un rôle crucial pour assurer la reproductibilité et simplifier l'expérimentation. Les projets d'apprentissage profond (DL) impliquent souvent de nombreux paramètres, de l'architecture du modèle aux paramètres d'entraînement. Le stockage de ces paramètres dans un fichier YAML facilite le suivi, la modification et le partage des configurations expérimentales. Vous pouvez explorer une antisèche de la syntaxe YAML pour une référence rapide.

Voici deux exemples courants d'applications de l'IA dans le monde réel :

  1. Configuration de l'ensemble de données: Avant d'entraîner un modèle, vous devez définir le jeu de données. Un fichier YAML spécifie le chemin vers les images d'entraînement et de validation, le nombre de classes d'objets et les noms de ces classes. Cette approche est utilisée par Ultralytics pour gérer des ensembles de données tels que COCO. Le modèle sait ainsi exactement où trouver ses données et ce qu'il est censé apprendre.
  2. Formation et configuration des hyperparamètres: Un fichier YAML est parfait pour définir tous les paramètres nécessaires à une session de formation. Cela inclut la spécification de l'architecture du modèle (par ex, YOLO11n), taille du lot, taux d'apprentissagenombre de époqueset les réglages pour augmentation des données. La centralisation de ces paramètres permet une réglage des hyperparamètres et facilite la reproduction des expériences. Les Documentation Ultralytics fournit des exemples détaillés de ces fichiers de configuration.

YAML et les autres formats de données

YAML est souvent comparé à d'autres formats de sérialisation de données tels que JSON et XML.

  • YAML vs. JSON: Bien que fonctionnellement similaire et que YAML soit un surensemble de JSON (JavaScript Object Notation), YAML est souvent préféré pour les fichiers de configuration en raison de sa lisibilité supérieure. Il supprime les crochets et les virgules au profit de l'indentation et, surtout, il prend en charge les commentaires, qui sont très utiles pour documenter les choix de configuration.
  • YAML vs. XML: Comparé à XML (eXtensible Markup Language), YAML est beaucoup moins verbeux. L'utilisation par XML de balises d'ouverture et de fermeture rend ses fichiers plus volumineux et plus difficiles à analyser rapidement, alors que la syntaxe minimaliste de YAML est conçue pour une édition directe.

Écosystème élargi et outils

L'utilité de YAML va bien au-delà de la vision artificielle. C'est un composant fondamental dans le monde DevOps, utilisé par des outils comme Kubernetes pour définir les orchestrations de conteneurs et Ansible pour les playbooks d'automatisation informatique. Ce concept est souvent appelé Configuration as Code (CaC).

Pour les développeurs utilisant Python, la bibliothèque PyYAML est un outil courant pour analyser et générer des données YAML. Pour éviter les erreurs de syntaxe, qui peuvent être fréquentes en raison de la sensibilité à l'indentation, l'utilisation d'un validateur YAML est une bonne pratique recommandée. Cet écosystème d'outils fait de YAML un choix robuste pour gérer l'ensemble du cycle de vie des MLOps, de la configuration initiale dans un bloc-notes Jupyter au déploiement de modèles à grande échelle à l'aide de Docker et de pipelines CI/CD avec des outils tels que GitHub Actions. La facilité de gestion de la configuration simplifie également l'intégration avec des plateformes comme Ultralytics HUB pour une expérience de formation et de déploiement transparente.

Rejoindre la communauté Ultralytics

Rejoignez l'avenir de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

S'inscrire
Lien copié dans le presse-papiers