Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

YAML

Descubra cómo YAML optimiza los flujos de trabajo de IA. Descubra cómo utilizar archivos YAML para configurar conjuntos de datos y entrenar modelos Ultralytics para obtener MLOps más rápidos y sencillos.

YAML (YAML Ain't Markup Language) es un estándar de serialización de datos legible por humanos que se utiliza ampliamente en la industria del software para escribir archivos de configuración. A diferencia de los lenguajes de marcado más complejos, YAML da prioridad al formato limpio y a la legibilidad, lo que lo convierte en una excelente opción para los desarrolladores y científicos de datos que necesitan inspeccionar o modificar parámetros rápidamente. Su estructura simple se basa en la sangría en lugar de corchetes o etiquetas, lo que permite a los usuarios definir estructuras de datos jerárquicas, como listas y diccionarios, con un mínimo de desorden visual. En el contexto de la inteligencia artificial y el aprendizaje automático, YAML sirve como un puente crítico entre la intención humana y la ejecución de la máquina, almacenando todo, desde rutas de conjuntos de datos hasta ajustes de hiperparámetros, en un formato fácil de controlar y compartir.

Relevancia en el aprendizaje automático

En las modernas operaciones de aprendizaje automático (MLOps), es esencial mantener experimentos reproducibles y organizados. Los archivos YAML funcionan como planos para estos experimentos, encapsulando todos los detalles de configuración necesarios en un único documento. Marcos como los modelos Ultralytics dependen en gran medida de estos archivos de configuración para definir las arquitecturas de los modelos y los protocolos de entrenamiento.

Cuando entrenas un modelo de visión artificial, a menudo necesitas especificar dónde se encuentran tus datos de entrenamiento, cuántas clases estás detectando y los nombres de esas clases. En lugar de codificar estos valores en Python , lo que puede dar lugar a bases de código desordenadas, se separan estos datos en un archivo YAML. Esta separación de preocupaciones permite a los investigadores intercambiar conjuntos de datos o ajustar las tasas de aprendizaje sin tocar la base de código principal, lo que facilita un mejor seguimiento de los experimentos y la colaboración.

YAML frente a JSON frente a XML

Aunque YAML se compara a menudo con JSON (JavaScript Object Notation) y XML (eXtensible Markup Language), cumplen funciones ligeramente diferentes en el ecosistema de la IA.

  • YAML: Ideal para archivos de configuración escritos y leídos por humanos. Admite comentarios, que son cruciales para documentar por qué se eligieron determinados pesos o parámetros del modelo.
  • JSON: Ideal para la comunicación entre máquinas, como las API web o el almacenamiento de resultados de inferencia. Es más estricto y más difícil de editar manualmente para los humanos debido a las comillas y llaves necesarias, y carece de soporte para comentarios.
  • XML: un formato más detallado que se utiliza a menudo en sistemas heredados o en el almacenamiento de documentos complejos (como VOC Pascal VOC ). Por lo general, se considera demasiado pesado para tareas de configuración sencillas en los flujos de trabajo modernos de aprendizaje profundo.

Aplicaciones reales de la IA

YAML encuentra su lugar en varias etapas críticas del ciclo de vida del desarrollo de la IA:

  • Configuración del conjunto de datos: Cuando se trabaja con detección de objetos conjuntos de datos como COCO datos personalizados en el Plataforma Ultralytics, un archivo YAML (data.yaml) suele definir las rutas de los directorios para los conjuntos de entrenamiento, validación y prueba. También asigna índices de clase (0, 1, 2) a nombres de clase (persona, bicicleta, coche), lo que garantiza que el modelo comprenda la estructura de los datos.
  • Canales de CI/CD: En los flujos de trabajo de integración continua, herramientas como GitHub Actions utilizan YAML para definir pasos de automatización. Esto podría incluir la ejecución de pruebas unitarias en una nueva arquitectura de red neuronal o la implementación de un modelo en un contenedor Docker cada vez que se envía código a un repositorio.

Ejemplo: Configuración de una ejecución de YOLO

El siguiente ejemplo muestra cómo un archivo YAML típico actúa como interfaz de conjunto de datos para entrenar un modelo YOLO26. El Python que aparece a continuación muestra cómo la Ultralytics utiliza este archivo para iniciar el proceso de entrenamiento.

1. El coco8.yaml archivo (Concepto):Este archivo contendría rutas a imágenes y una lista de nombres de clases.

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 :El código lee la configuración e inicia el entrenamiento utilizando los parámetros especificados. .

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)

Conceptos clave de sintaxis

Comprender algunas reglas sintácticas clave ayuda a evitar errores comunes, tales como ScannerError o ParserError, que suelen producirse debido a una sangría incorrecta.

  • Sangría: YAML utiliza espacios en blanco (espacios, no tabulaciones) para denotar la estructura. Los elementos anidados deben tener más sangría que sus elementos principales.
  • Pares clave-valor: Los datos se almacenan como key: value. Por ejemplo, epochs: 100 Establece el número de ciclos de entrenamiento.
  • Listas: Las secuencias se indican con un guión. -. Esto es útil para definir listas de aumento de datos pasos o múltiples fuentes de entrada .
  • Comentarios: Líneas que comienzan con # son ignoradas por el analizador, lo que le permite dejar notas sobre aspectos específicos. hiperparámetros directamente en el archivo.

Al dominar YAML, los profesionales pueden optimizar sus flujos de trabajo de entrenamiento de modelos, reducir los errores de configuración y garantizar que sus proyectos de IA sigan siendo escalables y fáciles de mantener.

Únase a la comunidad Ultralytics

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

Únete ahora