Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

YAML

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.

Rilevanza nell'apprendimento automatico

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.

YAML vs. JSON vs. XML

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: Ideale per i file di configurazione scritti e letti dagli esseri umani. Supporta i commenti, che sono fondamentali per documentare il motivo per cui sono stati scelti specifici pesi o parametri del modello.
  • JSON: ideale per la comunicazione tra macchine, come le API web o il salvataggio dei risultati di inferenza. È più rigido e più difficile da modificare manualmente a causa delle virgolette e delle parentesi necessarie, e non supporta i commenti.
  • XML: un formato più dettagliato spesso utilizzato nei sistemi legacy o nell'archiviazione di documenti complessi (come VOC Pascal VOC ). È generalmente considerato troppo pesante per semplici attività di configurazione nei moderni flussi di lavoro di deep learning.

Applicazioni del mondo reale nell'IA

YAML trova la sua collocazione in diverse fasi critiche del ciclo di vita dello sviluppo dell'IA:

  • Configurazione del set di dati: Quando si lavora con rilevamento degli oggetti set di dati come COCO dati personalizzati sul Piattaforma Ultralytics, un file YAML (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.
  • Pipeline CI/CD: nei flussi di lavoro di integrazione continua, strumenti come GitHub Actions utilizzano YAML per definire le fasi di automazione. Ciò potrebbe includere l'esecuzione di test unitari su una nuova architettura di rete neurale o l'implementazione di un modello in un container Docker ogni volta che il codice viene inviato a un repository.

Esempio: Configurazione di un ciclo YOLO

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)

Concetti chiave della sintassi

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.

  • Rientro: YAML utilizza spazi bianchi (spazi, non tabulazioni) per indicare la struttura. Gli elementi nidificati devono essere rientrati rispetto agli elementi principali.
  • Coppie chiave-valore: I dati vengono memorizzati come key: value. Ad esempio, epochs: 100 imposta il numero di cicli di allenamento.
  • Elenchi: le sequenze sono indicate da un trattino -. Questo è utile per definire elenchi di aumento dei dati passaggi o più sorgenti di ingresso .
  • Commenti: Linee che iniziano con # 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.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora