Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Training distribuito

Accelera l'addestramento dell'AI con l'addestramento distribuito! Scopri come ridurre i tempi di addestramento, scalare i modelli e ottimizzare le risorse per progetti di ML complessi.

L'addestramento distribuito è una potente tecnica di apprendimento automatico (ML) che accelera il processo di processo di creazione del modello suddividendo il carico di lavoro computazionale tra più processori, come le Unità di elaborazione grafica (GPU) o unità di elaborazione Tensor (TPU). Sfruttando la potenza combinata di dispositivi simultanei, sia che si trovino su una singola workstation o in rete su un vasto cluster, gli sviluppatori possono ridurre drasticamente il tempo necessario per addestrare complesse architetture di deep learning (DL). architetture di deep learning (DL) complesse. Questo approccio è è essenziale per la gestione di enormi insiemi di dati e per lo sviluppo di sistemi di intelligenza sistemi di intelligenza artificiale (AI) di ultima generazione, consentendo cicli di iterazione più rapidi e una sperimentazione più estesa.

Strategie fondamentali per la parallelizzazione

Per distribuire efficacemente il carico di lavoro, gli ingegneri impiegano di solito una delle due strategie principali, o un approccio ibrido progettato per massimizzare l'efficienza:

  • Parallelismo dei dati: Questo è il metodo più comune per compiti come il rilevamento degli oggetti. In questa configurazione, una copia completa del modello del modello risiede su ogni dispositivo. I dati di addestramento dati di addestramento sono divisi in parti più piccole e ogni dispositivo ogni dispositivo elabora simultaneamente un sottoinsieme diverso. Durante la fase di fase di retropropagazione, i gradienti sono calcolati in maniera indipendentemente e poi sincronizzati tra tutti i dispositivi utilizzando protocolli di comunicazione come l'MPI (Message Passing Interface). MPI (Message Passing Interface) per aggiornare i pesi del modello in modo pesi del modello in modo coerente.
  • Parallelismo del modello: Quando una rete neurale (NN) è troppo grande per rientrare nella memoria di una singola GPU, è necessario il parallelismo del modello. I livelli o i componenti del modello sono partizionati su diversi dispositivi. I dati scorrono in modo sequenziale o simultaneo tra i dispositivi mentre passano attraverso la rete. Questa tecnica è fondamentale per l'addestramento di modelli modelli di base e modelli linguistici di grandi dimensioni (LLM), in cui i il conteggio dei parametri può raggiungere i trilioni, richiedendo strumenti specializzati come Microsoft DeepSpeed per gestire la memoria.

Applicazioni nel mondo reale

La formazione distribuita consente alle industrie di risolvere problemi che in precedenza erano computazionalmente inapplicabili a causa di vincoli di tempo o di memoria. o di memoria.

  • Guida autonoma: Lo sviluppo di auto a guida autonoma affidabili richiede l'elaborazione di petabyte di dati video e sensori. e di dati dei sensori. Le aziende automobilistiche utilizzano cluster distribuiti su larga scala per addestrare i modelli di visione per la segmentazione semantica e il tracciamento degli oggetti in tempo reale. segmentazione semantica e tracciamento degli oggetti in tempo reale. Utilizzando l'intelligenza artificiale nei flussi di lavoro del settore automobilistico, gli ingegneri possono iterare rapidamente sui modelli critici per la sicurezza per migliorare le prestazioni.
  • Imaging medico: In AI in ambito sanitario, l'analisi di scansioni 3D ad alta risoluzione come scansioni 3D ad alta risoluzione, come risonanze magnetiche o tomografie, richiede notevoli risorse computazionali. La formazione distribuita consente ai ricercatori di di addestrare modelli diagnostici di alta precisione su su insiemi di dati diversi e rispettosi della privacy. Framework come NVIDIA CLARA si affidano spesso a tecniche distribuite per elaborare in modo efficiente queste complesse immagini mediche.

Implementare la formazione distribuita con YOLO

Il ultralytics semplifica l'implementazione della formazione Distributed Data Parallel (DDP). È possibile è possibile scalare facilmente l'addestramento di YOLO11 modelli su più GPU multiple specificando semplicemente gli indici dei dispositivi.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model using two GPUs (device 0 and 1)
# The library automatically handles DDP setup for parallel processing
results = model.train(data="coco8.yaml", epochs=5, device=[0, 1])

Training distribuito vs. Concetti correlati

È importante distinguere la formazione distribuita da altri termini correlati nell'ecosistema dell'IA:

  • contro l'apprendimento federato: Sebbene entrambi coinvolgano più dispositivi, i loro obiettivi principali differiscono. L'addestramento distribuito in genere centralizza i dati in un cluster ad alte prestazioni per massimizzare la velocità e il throughput. Al contrario, l'apprendimento apprendimento federato, invece, mantiene i dati decentralizzati sui dispositivi degli utenti (come gli smartphone) per dare priorità alla privacy dei dati. privacy dei dati, aggregando gli aggiornamenti del modello senza che i dati grezzi senza che questi lascino mai il dispositivo di origine.
  • rispetto al calcolo ad alte prestazioni (HPC): L'HPC è un campo ampio che comprende il supercalcolo per le simulazioni scientifiche, come le previsioni meteorologiche. L'addestramento distribuito è un'applicazione specifica dell'HPC applicata agli algoritmi di ottimizzazione agli algoritmi di ottimizzazione delle reti neurali neurali, spesso utilizzando librerie di comunicazione specializzate come NVIDIA NCCL per ridurre la latenza tra le GPU.

Strumenti ed Ecosistema

Un solido ecosistema di strumenti e piattaforme open-source supporta l'implementazione della formazione distribuita:

  • Quadri: PyTorch offre un supporto nativo attraverso il suo pacchetto distribuito, mentre TensorFlow fornisce strategie come MirroredStrategy per una scalatura senza soluzione di continuità.
  • Orchestrazione: La gestione delle risorse in un cluster di grandi dimensioni spesso comporta l'orchestrazione di container strumenti come Kubernetes o Kubeflow, che automatizzano la distribuzione e la scalatura dei lavori di formazione.
  • Infrastruttura cloud: I principali fornitori offrono servizi gestiti come AWS SageMaker e Google Cloud TPUs, che forniscono un'infrastruttura ottimizzata per i carichi di lavoro carichi di lavoro distribuiti, eliminando l'onere della manutenzione dell'hardware.
  • Scalabilità universale: Librerie come Horovod e Ray forniscono approcci alla scalabilità indipendenti dal framework, consentendo agli sviluppatori di adattare il loro codice ad ambienti adattano il loro codice agli ambienti distribuiti con modifiche minime.

Unitevi alla comunità di Ultralytics

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

Iscriviti ora