Glosario

YAML

¡Descubra el poder de YAML en AI/ML! Simplifique las configuraciones, agilice los flujos de trabajo y mejore la legibilidad con este versátil formato de datos.

YAML, acrónimo de "YAML Ain't Markup Language", es un estándar de serialización de datos legible por humanos que se utiliza para escribir archivos de configuración y transmitir datos entre sistemas. Su diseño da prioridad a la claridad y la sencillez, lo que permite a los desarrolladores y científicos de datos definir estructuras de datos complejas de una forma fácil de leer y escribir. A diferencia de otros formatos más ampulosos, YAML utiliza la sangría para denotar la estructura, lo que resulta en archivos limpios e intuitivos que son ideales para gestionar configuraciones en proyectos de software, incluidos los de aprendizaje automático (ML). La especificación oficial y los recursos se encuentran en yaml.org.

Función y aplicación en IA y ML

En el contexto de la Inteligencia Artificial (IA), YAML es la columna vertebral de la gestión de la configuración, desempeñando un papel crucial para garantizar la reproducibilidad y simplificar la experimentación. Los proyectos de aprendizaje profundo (Deep Learning, DL) a menudo implican numerosos ajustes, desde la arquitectura del modelo hasta los parámetros de entrenamiento. Almacenar estos ajustes en un archivo YAML facilita el seguimiento, la modificación y el intercambio de configuraciones experimentales. Puede explorar una hoja de trucos de sintaxis Y AML para una referencia rápida.

Dos ejemplos comunes del mundo real en aplicaciones de IA son:

  1. Configuración del conjunto de datos: Antes de entrenar un modelo, es necesario definir el conjunto de datos. Un archivo YAML especifica la ruta a las imágenes de entrenamiento y validación, el número de clases de objetos y los nombres de esas clases. Ultralytics utiliza este método para gestionar conjuntos de datos como COCO. Esto garantiza que el modelo sepa exactamente dónde encontrar sus datos y qué se espera que aprenda.
  2. Formación y configuración de hiperparámetros: Un archivo YAML es perfecto para definir todos los parámetros necesarios para una sesión de entrenamiento. Esto incluye especificar la arquitectura del modelo (por ejemplo, YOLO11n), tamaño del lote, ritmo de aprendizajenúmero de épocasy la configuración de aumento de datos. La centralización de estos ajustes permite ajuste de hiperparámetros y facilita la reproducción de los experimentos. El sitio Documentación sobre Ultralytics ofrece ejemplos detallados de estos archivos de configuración.

YAML frente a otros formatos de datos

YAML se compara a menudo con otros formatos de serialización de datos como JSON y XML.

  • YAML vs. JSON: Aunque funcionalmente similares y con YAML siendo un superconjunto de JSON (JavaScript Object Notation), YAML es a menudo preferido para los archivos de configuración debido a su legibilidad superior. Prescinde de corchetes y comas en favor de la sangría y, lo que es más importante, admite comentarios, que son muy valiosos para documentar las opciones de configuración.
  • YAML frente a XML: Comparado con XML (eXtensible Markup Language), YAML es mucho menos verboso. El uso de etiquetas de apertura y cierre en XML hace que sus archivos sean más grandes y más difíciles de analizar rápidamente, mientras que la sintaxis minimalista de YAML está diseñada para la edición directa.

Ecosistema y herramientas más amplios

La utilidad de YAML va mucho más allá de la visión por ordenador. Es un componente fundamental en el mundo de DevOps, utilizado por herramientas como Kubernetes para definir orquestaciones de contenedores y Ansible para los playbooks de automatización de TI. Este concepto suele denominarse configuración como código (CaC).

Para los desarrolladores que utilizan Python, la biblioteca PyYAML es una herramienta común para analizar y generar datos YAML. Para evitar errores de sintaxis, que pueden ser comunes debido a la sensibilidad a la indentación, el uso de un validador de YAML es una mejor práctica recomendada. Este ecosistema de herramientas convierte a YAML en una opción sólida para gestionar todo el ciclo de vida de MLOps, desde la configuración inicial en un cuaderno Jupyter hasta el despliegue de modelos a gran escala mediante Docker y canalizaciones CI/CD con herramientas como GitHub Actions. La facilidad de gestión de la configuración también simplifica la integración con plataformas como Ultralytics HUB para una experiencia de formación y despliegue sin fisuras.

Únase a la comunidad Ultralytics

Únase al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo.

Únete ahora
Enlace copiado en el portapapeles