Glossario

Formazione distribuita

Accelera la formazione dell'intelligenza artificiale con la formazione distribuita! Scopri come ridurre i tempi di formazione, scalare i modelli e ottimizzare le risorse per i progetti di ML complessi.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

L'addestramento distribuito è una tecnica utilizzata nell'apprendimento automatico per accelerare il processo di addestramento dei modelli, soprattutto di quelli complessi e di grandi dimensioni come quelli utilizzati nel deep learning. Man mano che i dataset diventano più grandi e i modelli più sofisticati, l'addestramento su un singolo processoreCPU oCPU ) non è più possibile. GPU) può diventare proibitivamente lento. L'addestramento distribuito affronta questa sfida dividendo il carico di lavoro su più unità di elaborazione, che possono essere situate su una singola macchina o distribuite su più macchine in una rete o in un ambiente di cloud computing.

Come funziona la formazione distribuita

L'idea alla base della formazione distribuita è il parallelismo. Invece di elaborare i dati e calcolare gli aggiornamenti del modello in modo sequenziale su un processore, l'attività viene suddivisa ed eseguita simultaneamente su più processori (spesso chiamati "worker"). Esistono due strategie principali:

  • Parallelismo dei dati: L'approccio più comune. Il set di dati viene suddiviso in parti più piccole e ogni worker si allena sulla propria parte utilizzando una copia del modello. I risultati (gradienti) vengono poi combinati per aggiornare il modello centrale. Questa soluzione funziona bene quando il modello si adatta a un solo lavoratore ma il dataset è molto grande. Framework come PyTorch offrono il Parallelo Distribuito dei Dati.
  • Parallelismo del modello: Si utilizza quando il modello stesso è troppo grande per essere contenuto nella memoria di un singolo worker. Le diverse parti del modello sono collocate su diversi worker e i dati passano da uno all'altro durante l'addestramento. Si tratta di un'implementazione più complessa rispetto al parallelismo dei dati. Scopri di più sugli approcci diTensorFlow al parallelismo dei modelli.

Applicazioni reali della formazione distribuita

L'addestramento distribuito è essenziale per affrontare problemi di IA su larga scala in vari ambiti:

  • Formazione di modelli linguistici di grandi dimensioni (LLM): Modelli come il GPT-4 hanno miliardi di parametri e vengono addestrati su enormi set di dati testuali. L'addestramento distribuito su migliaia di GPU lo rende possibile. Questi modelli sono alla base di applicazioni che vanno dalla traduzione automatica ai chatbot avanzati.
  • Modelli avanzati di visione artificiale: L'addestramento di modelli all'avanguardia per compiti come la segmentazione di immagini ad alta risoluzione, l'analisi dettagliata di immagini mediche o i sistemi di percezione per veicoli autonomi richiede spesso un addestramento distribuito per gestire architetture complesse e grandi set di dati visivi come ImageNet.

Casi d'uso esemplificativi

  • Formazione dei modelli Ultralytics YOLO : La formazione distribuita può ridurre significativamente il tempo necessario per l'addestramento Ultralytics YOLO in particolare su grandi set di dati personalizzati per il rilevamento di oggetti. Utilizzando più GPU, gli utenti ottengono una convergenza più rapida e una precisione del modello potenzialmente migliore.
  • Formazione di modelli basati sul cloud: Piattaforme come Ultralytics HUB offrono un modo accessibile per sfruttare risorse di formazione distribuite nel cloud. Questo permette agli utenti che non dispongono di un hardware locale potente di addestrare modelli di grandi dimensioni in modo efficiente utilizzando l'infrastruttura gestita da provider come AWS, Google Cloud o Azure.

Formazione distribuita vs. altri metodi di formazione

È utile distinguere la formazione distribuita dai concetti correlati:

  • Formazione centralizzata: L'approccio tradizionale in cui l'intero processo di formazione avviene su un'unica macchina o dispositivo. È più semplice ma spesso troppo lento per le moderne attività su larga scala.
  • Apprendimento federato: Un approccio distribuito diverso, incentrato principalmente sulla privacy dei dati. Nell'apprendimento federato, i modelli vengono addestrati localmente su dispositivi decentralizzati (come i telefoni cellulari) utilizzando i dati locali. Solo gli aggiornamenti dei modelli, e non i dati grezzi, vengono inviati a un server centrale per l'aggregazione. Questo contrasta con la tipica formazione distribuita in cui i dati sono spesso collocati centralmente o distribuiti tra i lavoratori sotto controllo centrale.

L'addestramento distribuito è una tecnica fondamentale per superare i limiti di scala e di capacità dei modelli di intelligenza artificiale. Strumenti e librerie all'interno di framework come PyTorch, TensorFlowe librerie specializzate come Horovod ne semplificano l'implementazione, rendendo più accessibile la formazione di modelli su larga scala.

Leggi tutto