Saiba como o YAML simplifica os fluxos de trabalho de IA. Descubra como usar ficheiros YAML para configurar conjuntos de dados e treinar modelos Ultralytics para MLOps mais rápidos e fáceis.
YAML (YAML Ain't Markup Language) é 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 a formatação limpa e a legibilidade, tornando-o uma excelente escolha para programadores e cientistas de dados que precisam de inspecionar ou modificar parâmetros rapidamente. A sua estrutura simples baseia-se em recuos em vez de colchetes ou tags, o que permite aos utilizadores definir estruturas de dados hierárquicas, como listas e dicionários, com o mínimo de confusão visual. No contexto da inteligência artificial e da aprendizagem automática, o YAML serve como uma ponte crítica entre a intenção humana e a execução da máquina, armazenando tudo, desde caminhos de conjuntos de dados até configurações de ajuste de hiperparâmetros, num formato que é fácil de controlar e partilhar.
Nas modernas operações de aprendizagem automática (MLOps), é essencial manter experiências reproduzíveis e organizadas. Os ficheiros YAML funcionam como planos para essas experiências, encapsulando todos os detalhes de configuração necessários num único documento. Estruturas como os modelos Ultralytics dependem fortemente desses ficheiros de configuração para definir arquiteturas de modelos e protocolos de treino.
Ao treinar um modelo de visão computacional, muitas vezes é necessário especificar onde os dados de treino estão armazenados, quantas classes estão a ser detetadas e os nomes dessas classes. Em vez de codificar esses valores em Python , o que pode levar a bases de código confusas, você separa esses dados em um ficheiro YAML. Essa separação de interesses permite que os investigadores troquem conjuntos de dados ou ajustem taxas de aprendizagem sem mexer na base de código principal, facilitando um melhor acompanhamento e colaboração nas experiências.
Embora o YAML seja frequentemente comparado ao JSON (JavaScript Object Notation) e ao XML (eXtensible Markup Language), eles têm finalidades ligeiramente diferentes no ecossistema da IA.
O YAML encontra o seu lugar em várias etapas críticas do ciclo de vida do desenvolvimento da IA:
data.yaml) normalmente define os caminhos dos diretórios para os conjuntos de treino, validação e teste. Também mapeia
índices de classe (0, 1, 2) para nomes de classe (pessoa, bicicleta, carro), garantindo que o modelo compreenda a estrutura dos dados.
O exemplo a seguir demonstra como um ficheiro YAML típico atua como uma interface de conjunto de dados para treinar um modelo YOLO26. O Python abaixo mostra como a Ultralytics consome esse ficheiro para iniciar o processo de treino.
1. O coco8.yaml ficheiro (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. 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)
Compreender algumas regras sintáticas fundamentais ajuda a evitar erros comuns, tais como ScannerError ou
ParserError, que muitas vezes ocorrem devido a recuos incorretos.
key: value. Por exemplo,
epochs: 100 define o número de ciclos de treino.
-. Isso é útil para definir listas de
aumento de dados etapas ou múltiplas fontes de entrada
.
# são ignoradas pelo analisador, permitindo que você deixe notas
sobre específicos
hiperparâmetros diretamente no ficheiro.
Ao dominar o YAML, os profissionais podem otimizar os seus fluxos de trabalho de treino de modelos, reduzir erros de configuração e garantir que os seus projetos de IA permaneçam escaláveis e fáceis de manter.