Scopri come YAML semplifica i flussi di lavoro dell'IA. Scopri come utilizzare i file YAML per configurare i set di dati e addestrare i modelli Ultralytics per MLOps più veloci e semplici.
YAML (YAML Ain't Markup Language) è uno standard di serializzazione dei dati leggibile dall'uomo ampiamente utilizzato nell'industria del software per la scrittura di file di configurazione. A differenza dei linguaggi di markup più complessi, YAML dà la priorità alla formattazione pulita e alla leggibilità, rendendolo una scelta eccellente per gli sviluppatori e i data scientist che hanno bisogno di ispezionare o modificare rapidamente i parametri . La sua struttura semplice si basa sull'indentazione piuttosto che su parentesi o tag, il che consente agli utenti di definire strutture di dati gerarchiche come elenchi e dizionari con il minimo ingombro visivo. Nel contesto dell'intelligenza artificiale e dell'apprendimento automatico, YAML funge da ponte fondamentale tra l'intenzione umana e l'esecuzione della macchina, memorizzando tutto, dai percorsi dei set di dati alle impostazioni di ottimizzazione degli iperparametri, in un formato facile da controllare e condividere.
Nelle moderne operazioni di machine learning (MLOps), è essenziale mantenere esperimenti riproducibili e organizzati. I file YAML fungono da modelli per questi esperimenti, racchiudendo tutti i dettagli di configurazione necessari in un unico documento. Framework come i modelli Ultralytics si basano fortemente su questi file di configurazione per definire le architetture dei modelli e i protocolli di addestramento.
Quando si addestra un modello di visione artificiale, spesso è necessario specificare dove si trovano i dati di addestramento, quante classi si stanno rilevando e i nomi di tali classi. Invece di codificare questi valori in Python , che può portare a codici disordinati, è possibile separare questi dati in un file YAML. Questa separazione dei compiti consente ai ricercatori di scambiare set di dati o regolare i tassi di apprendimento senza toccare il codice di base, facilitando un migliore monitoraggio degli esperimenti e una migliore collaborazione.
Sebbene YAML sia spesso paragonato a JSON (JavaScript Object Notation) e XML (eXtensible Markup Language), essi hanno scopi leggermente diversi nell'ecosistema dell'IA.
YAML trova la sua collocazione in diverse fasi critiche del ciclo di vita dello sviluppo dell'IA:
data.yaml) definisce in genere i percorsi delle directory per i set di addestramento, convalida e test. Inoltre, mappa gli
indici di classe (0, 1, 2) ai nomi delle classi (persona, bicicletta, auto), assicurando che il modello comprenda la struttura dei dati.
L'esempio seguente mostra come un tipico file YAML funga da interfaccia del set di dati per l'addestramento di un modello YOLO26. Lo Python riportato di seguito mostra come Ultralytics utilizzi questo file per avviare il processo di addestramento.
1. Il coco8.yaml file (Concetto):Questo file conterrebbe i percorsi delle immagini e un elenco di
nomi di classi.
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 :il codice legge la configurazione e avvia l'addestramento utilizzando i parametri specificati. parametri.
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)
Comprendere alcune regole sintattiche fondamentali aiuta a evitare errori comuni, come ad esempio ScannerError o
ParserError, che spesso si verificano a causa di un'indentazione errata.
key: value. Ad esempio,
epochs: 100 imposta il numero di cicli di allenamento.
-. Questo è utile per definire elenchi di
aumento dei dati passaggi o più sorgenti di ingresso
.
# vengono ignorati dal parser, consentendo di lasciare note
su specifici
iperparametri direttamente nel file.
Padroneggiando YAML, i professionisti possono semplificare i loro flussi di lavoro di addestramento dei modelli, ridurre gli errori di configurazione e garantire che i loro progetti di IA rimangano scalabili e di facile manutenzione.