Distributed Training
Esplora come l'addestramento distribuito scala i carichi di lavoro AI su più GPU. Impara ad accelerare l'addestramento di Ultralytics YOLO26 con DDP per risultati più rapidi e accurati.
L'addestramento distribuito è un metodo nel machine learning in cui il carico di lavoro per l'addestramento di un modello viene suddiviso tra più processori o macchine. Questo approccio è essenziale per gestire dataset su larga scala e complesse architetture di reti neurali che altrimenti richiederebbero un tempo proibitivo per essere addestrate su un singolo dispositivo. Sfruttando la potenza di calcolo combinata di più Graphics Processing Units (GPUs) o Tensor Processing Units (TPUs), l'addestramento distribuito accelera notevolmente il ciclo di sviluppo, consentendo a ricercatori e ingegneri di iterare più rapidamente e ottenere una maggiore accuracy nei loro modelli.
Come funziona l'addestramento distribuito#
L'idea di base dietro l'addestramento distribuito è la parallelizzazione. Invece di elaborare i dati in sequenza su un singolo chip, l'attività viene divisa in blocchi più piccoli che vengono elaborati simultaneamente. Esistono due strategie principali per ottenere questo risultato:
- Data Parallelism: Questo è l'approccio più comune per attività come l'object detection. In questa configurazione, una copia dell'intero modello viene posizionata su ogni dispositivo. I training data globali vengono suddivisi in batch più piccoli e ciascun dispositivo elabora un batch diverso contemporaneamente. Dopo ogni passaggio, i gradienti (gli aggiornamenti al modello) vengono sincronizzati su tutti i dispositivi per garantire che i model weights rimangano coerenti.
- Model Parallelism: Quando una neural network (NN) è troppo grande per rientrare nella memoria di una singola GPU, il modello stesso viene suddiviso tra più dispositivi. Diversi layer o componenti del modello risiedono su chip differenti e i dati fluiscono tra di essi. Questo è spesso necessario per addestrare enormi foundation models e Large Language Models (LLMs).
Applicazioni nel mondo reale#
L'addestramento distribuito ha trasformato i settori rendendo possibile risolvere problemi che in precedenza erano computazionalmente irrealizzabili.
- Guida autonoma: Lo sviluppo di autonomous vehicles sicuri richiede l'analisi di petabyte di dati video e di sensori. Gli ingegneri automobilistici utilizzano grandi cluster distribuiti per addestrare modelli di visione per la semantic segmentation in tempo reale e il rilevamento delle corsie. Questa scala massiccia garantisce che i sistemi AI in automotive possano reagire in modo affidabile a diverse condizioni stradali.
- Imaging medico: Nel settore sanitario, l'analisi di scansioni 3D ad alta risoluzione come le risonanze magnetiche richiede una notevole memoria e potenza di calcolo. L'addestramento distribuito consente ai ricercatori di creare strumenti diagnostici ad alte prestazioni per il tumor detection e altre attività critiche. Utilizzando framework come NVIDIA MONAI, gli ospedali possono addestrare modelli su dataset diversi senza incontrare colli di bottiglia nella memoria, migliorando i risultati dell'AI in healthcare.
Utilizzare l'addestramento distribuito con Ultralytics#
La libreria ultralytics semplifica l'implementazione dell'addestramento Distributed Data Parallel (DDP). Puoi scalare l'addestramento dei modelli YOLO26 all'avanguardia su più GPU semplicemente specificando gli indici dei dispositivi negli argomenti di addestramento.
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles the DDP communication backend
results = model.train(data="coco8.yaml", epochs=100, device=[0, 1])Concetti correlati e confronti#
È utile distinguere l'addestramento distribuito da termini simili nell'ecosistema del machine learning per comprenderne i ruoli specifici:
- Vs. Apprendimento federato: Sebbene entrambi coinvolgano più dispositivi, i loro obiettivi differiscono. L'addestramento distribuito di solito centralizza i dati in un cluster ad alte prestazioni per massimizzare la velocità. Al contrario, il federated learning mantiene i dati decentralizzati sui dispositivi degli utenti (come gli smartphone) per dare priorità alla data privacy, aggiornando il modello globale senza che i dati grezzi lascino mai la fonte.
- Vs. High-Performance Computing (HPC): L'HPC è un campo vasto che include il supercalcolo per simulazioni scientifiche come le previsioni meteorologiche. L'addestramento distribuito è un'applicazione specifica dell'HPC applicata agli optimization algorithms nel deep learning. Si basa spesso su librerie di comunicazione specializzate come NVIDIA NCCL per ridurre al minimo la latenza tra le GPU.
Scalare con le piattaforme cloud#
La gestione dell'infrastruttura per l'addestramento distribuito può essere complessa. Le piattaforme moderne semplificano questo processo offrendo ambienti gestiti. Ad esempio, la Ultralytics Platform consente agli utenti di gestire i dataset e avviare sessioni di addestramento che possono essere distribuite in ambienti cloud o cluster locali. Questa integrazione semplifica il flusso di lavoro dal data annotation al model deployment finale, garantendo che il passaggio a più GPU sia il più fluido possibile. Allo stesso modo, i fornitori di servizi cloud come Google Cloud Vertex AI e Amazon SageMaker forniscono un'infrastruttura robusta per l'esecuzione di processi di addestramento distribuito su scala aziendale.






