YAML
Aprenda como o YAML simplifica os fluxos de trabalho de IA. Descubra como usar ficheiros YAML para configurar conjuntos de dados e treinar modelos Ultralytics YOLO26 para obter um MLOps mais rápido e fácil.
YAML (YAML não é uma linguagem de marcação) é um padrão de serialização de dados legível por humanos, amplamente utilizado na indústria de software para escrever ficheiros de configuração. Ao contrário de linguagens de marcação mais complexas, o YAML prioriza uma formatação limpa e a legibilidade, sendo uma excelente opção para programadores e cientistas de dados que precisam de inspecionar ou modificar parâmetros rapidamente. A sua estrutura simples baseia-se na indentação, em vez de parênteses retos ou etiquetas, permitindo aos utilizadores definir estruturas de dados hierárquicas, como listas e dicionários, com o mínimo de desordem visual. No contexto da inteligência artificial e do machine learning, o YAML funciona como uma ponte fundamental entre a intenção humana e a execução pela máquina, armazenando desde caminhos de conjuntos de dados até definições de ajuste de hiperparâmetros num formato fácil de controlar por versões e partilhar.
Relevância no machine learning#
Nas modernas operações de machine learning (MLOps), é essencial manter experiências reproduzíveis e organizadas. Os ficheiros YAML funcionam como plantas para estas experiências, encapsulando todos os detalhes de configuração necessários num único documento. Frameworks como os modelos Ultralytics YOLO26 dependem fortemente destes ficheiros de configuração para definir arquiteturas de modelos e protocolos de treino.
Quando treinas um modelo de visão computacional, precisas frequentemente de especificar onde estão os teus dados de treino, quantas classes estás a detetar e os nomes dessas classes. Em vez de codificares estes valores diretamente em scripts Python, o que pode originar bases de código desorganizadas, separas estes dados num ficheiro YAML. Esta separação de responsabilidades permite aos investigadores trocar de conjuntos de dados ou ajustar as taxas de aprendizagem sem alterar a base de código principal, facilitando um melhor acompanhamento de experiências e a colaboração.
YAML vs. JSON vs. XML#
Embora o YAML seja frequentemente comparado com JSON (notação de objetos JavaScript) e XML (linguagem de marcação extensível), cada formato serve finalidades ligeiramente diferentes no ecossistema de IA.
- YAML: Ideal para ficheiros de configuração escritos e lidos por humanos. Suporta comentários, que são essenciais para documentar por que motivo foram escolhidos determinados pesos do modelo ou parâmetros.
- JSON: Ideal para comunicação máquina a máquina, como APIs Web ou para guardar resultados de inferência. É mais rígido e mais difícil de editar manualmente por humanos devido às aspas e chavetas necessárias, além de não suportar comentários.
- XML: Um formato mais verboso, frequentemente utilizado em sistemas legados ou no armazenamento de documentos complexos (como anotações Pascal VOC). É geralmente considerado demasiado pesado para tarefas simples de configuração nos fluxos de trabalho modernos de deep learning.
Aplicações dos Vetores de Direcionamento no Mundo Real em IA#
O YAML encontra o seu lugar em várias fases críticas do ciclo de vida do desenvolvimento de IA:
- Configuração do conjunto de dados: Ao trabalhar com conjuntos de dados de deteção de objetos, como o COCO, ou com dados personalizados na Ultralytics Platform, um ficheiro YAML (
data.yaml) normalmente define os caminhos dos diretórios para os conjuntos de treino, validação e teste. Também mapeia os índices das classes (0, 1, 2) para os nomes das classes (person, bicycle, car), garantindo que o modelo compreende a estrutura dos dados. - Pipelines de CI/CD: Nos fluxos de trabalho de integração contínua, ferramentas como o GitHub Actions utilizam YAML para definir etapas de automação. Isto pode incluir a execução de testes unitários numa nova arquitetura de rede neural ou a implementação de um modelo num contentor Docker sempre que o código é enviado para um repositório.
Exemplo: configurar uma execução de treino YOLO#
O exemplo seguinte demonstra como um ficheiro YAML típico funciona como uma interface de conjunto de dados para treinar um modelo YOLO26. O trecho de código Python abaixo mostra como a biblioteca Ultralytics consome este ficheiro para iniciar o processo de treino.
1. O ficheiro coco8.yaml (conceito): Este ficheiro conteria caminhos para imagens e uma lista de nomes 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. Utilização em Python: O código lê a configuração e inicia o treino utilizando os 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)Conceitos fundamentais da sintaxe#
Compreender algumas regras fundamentais da sintaxe ajuda a evitar erros comuns, como ScannerError ou ParserError, que ocorrem frequentemente devido a uma indentação incorreta.
- Indentação: O YAML utiliza espaços em branco (espaços, não tabulações) para indicar a estrutura. Os itens aninhados têm de estar mais indentados do que os itens principais.
- Pares chave-valor: Os dados são armazenados como
key: value. Por exemplo,epochs: 100define o número de ciclos de treino. - Listas: as sequências são indicadas por um hífen
-. Isto é útil para definir listas de etapas de aumento de dados ou várias fontes de entrada. - Comentários: As linhas que começam com
#são ignoradas pelo analisador, permitindo-te deixar notas sobre hiperparâmetros específicos diretamente no ficheiro.
Ao dominares o YAML, podes simplificar os teus fluxos de trabalho de treino de modelos, reduzir erros de configuração e garantir que os teus projetos de IA permanecem escaláveis e fáceis de manter.









