
MLflow
MLflow este o platformă open-source concepută pentru a simplifica și gestiona ciclul de viață al învățării automate (ML). Oferă instrumente pentru urmărirea exp...
Horovod simplifică deep learning-ul distribuit, permițând scalarea eficientă pe GPU-uri sau mașini cu modificări minime de cod și suport extins pentru framework-uri.
Horovod este proiectat pentru a optimiza viteza, scalabilitatea și alocarea resurselor în timpul antrenării modelelor de machine learning. Mecanismul său de bază—algoritmul Ring-AllReduce—gestionează eficient comunicarea datelor, minimizând modificările de cod necesare pentru a scala de la un singur nod la medii multi-nod.
Lansat de Uber în 2017, Horovod a făcut parte din platforma internă ML-as-a-service, Michelangelo. Instrumentul a fost creat pentru a remedia ineficiențele de scalare ale setup-ului standard TensorFlow distribuit, care nu era suficient pentru nevoile extinse ale Uber. Arhitectura Horovod a fost concepută pentru a reduce semnificativ timpii de antrenare, permițând antrenarea distribuită fără probleme.
Horovod este acum menținut sub AI Foundation a Linux Foundation, reflectând acceptarea sa largă și dezvoltarea continuă în comunitatea open-source.
Agnostic față de framework
Se integrează cu mai multe framework-uri de deep learning, permițând dezvoltatorilor să folosească o abordare unitară pentru antrenarea distribuită, indiferent de instrumentele folosite. Aceasta reduce curba de învățare pentru dezvoltatorii familiarizați cu un framework, dar care trebuie să lucreze în medii diverse.
Algoritmul Ring-AllReduce
Elementul central al eficienței Horovod, acest algoritm realizează medierea gradientului între noduri cu un consum minim de lățime de bandă, reducând costurile de comunicare la antrenări la scară mare.
Ușurință în utilizare
Simplifică tranziția de la antrenarea pe un singur GPU la multi-GPU prin modificări minime ale codului. Se integrează cu optimizatorii existenți și folosește Message Passing Interface (MPI) pentru comunicarea între procese.
Suport pentru GPU
Utilizează biblioteca NCCL de la NVIDIA pentru a optimiza comunicarea GPU-to-GPU, asigurând transferuri de date rapide și management eficient al memoriei—esențial pentru seturi de date mari, cu dimensiuni ridicate.
Pentru a instala Horovod:
Cerințe:
Comandă de instalare:
pip install horovod[tensorflow,keras,pytorch,mxnet]
Variabile de mediu specifice framework-ului:
Setează variabile de mediu precum HOROVOD_WITH_TENSORFLOW=1
pentru a controla suportul framework-ului în timpul instalării.
Horovod este utilizat pe scară largă în scenarii ce necesită iterații și antrenări rapide ale modelelor:
Automatizare AI și chatboți:
În aplicațiile AI, cum ar fi chatboții, antrenarea mai rapidă a modelelor NLP accelerează ciclurile de lansare a produselor.
Mașini autonome:
La Uber, Horovod este folosit pentru dezvoltarea modelelor ML pentru vehicule autonome, unde seturi de date mari și modele complexe necesită antrenare distribuită.
Detectare de fraudă și prognoză:
Eficiența Horovod cu seturi de date mari îl face ideal pentru servicii financiare și platforme de e-commerce care au nevoie de antrenare rapidă a modelelor pentru date tranzacționale, detecție de fraudă și prognoza tendințelor.
Exemplu: Integrarea Horovod într-un script de antrenare TensorFlow:
import tensorflow as tf
import horovod.tensorflow as hvd
# Inițializează Horovod
hvd.init()
# Setează GPU-ul pentru procesul local
config = tf.ConfigProto()
config.gpu_options.visible_device_list = str(hvd.local_rank())
# Construiește modelul
model = ... # Definește modelul aici
optimizer = tf.train.AdagradOptimizer(0.01)
# Adaugă Distributed Optimizer de la Horovod
optimizer = hvd.DistributedOptimizer(optimizer)
# Transmite starea inițială a variabilelor de la rank 0 la toate celelalte procese
hvd.broadcast_global_variables(0)
# Bucla de antrenare
for epoch in range(num_epochs):
# Codul de antrenare aici
...
Horovod Timeline:
Profilează joburile de antrenare distribuită pentru a identifica blocajele de performanță. Notă: activarea acesteia poate reduce throughput-ul—folosiți cu atenție.
Antrenare elastică:
Permite ajustarea dinamică a resurselor în timpul antrenării—util în special în mediile cloud unde resursele pot varia.
Horovod este găzduit pe GitHub, beneficiind de o comunitate robustă de contribuitori și utilizatori. Ca parte a Linux Foundation AI, dezvoltatorii sunt încurajați să contribuie la dezvoltarea sa continuă. Cu peste 14.000 de stele și numeroase fork-uri, implicarea comunității subliniază rolul esențial al Horovod în antrenarea distribuită.
Horovod eficientizează deep learning-ul distribuit, abordând două mari provocări de scalare: costurile de comunicare și modificările de cod.
Comunicare eficientă între GPU-uri:
Dezvoltat de Alexander Sergeev și Mike Del Balso, Horovod folosește reducerea în inel pentru comunicarea între GPU-uri, reducând semnificativ modificările de cod necesare pentru antrenarea distribuită.
Accesibilitate:
Permite antrenarea distribuită mai rapidă și mai accesibilă în TensorFlow și alte framework-uri, facilitând cercetătorilor trecerea de la antrenarea pe un singur GPU.
Află mai multe:
Pentru detalii suplimentare, consultă lucrarea “Horovod: fast and easy distributed deep learning in TensorFlow.”
Antrenarea modelelor NLP:
Lucrarea “Modern Distributed Data-Parallel Large-Scale Pre-training Strategies For NLP models” de Hao Bai explorează antrenarea data-parallel folosind PyTorch și Horovod. Studiul evidențiază robustețea Horovod, mai ales când este combinat cu strategia Apex pentru precizie mixtă, făcându-l eficient pentru modele de dimensiuni mari precum GPT-2 cu 100M de parametri.
Programare dinamică:
Lucrarea “Dynamic Scheduling of MPI-based Distributed Deep Learning Training Jobs” de Tim Capes et al. analizează programarea dinamică a joburilor de deep learning folosind arhitectura în inel a Horovod, arătând că aceasta permite oprirea și repornirea eficientă a joburilor, reducând timpii totali de finalizare și demonstrând adaptabilitatea pentru sarcini complexe de deep learning.
Horovod este un framework open-source pentru deep learning distribuit, dezvoltat de Uber pentru a simplifica antrenarea pe mai multe GPU-uri și mașini, cu suport pentru TensorFlow, Keras, PyTorch și MXNet.
Horovod folosește algoritmul Ring-AllReduce pentru a media eficient gradientii între noduri, minimizând costurile de comunicare și modificările de cod necesare pentru antrenarea la scară.
Horovod este folosit în automatizare AI, chatboți, mașini autonome, detectarea fraudelor și în orice scenariu ce necesită antrenarea rapidă și la scară a modelelor.
Horovod este menținut sub Linux Foundation AI, cu o comunitate open-source activă care contribuie la dezvoltarea sa.
Horovod necesită GNU Linux sau macOS, Python 3.6 sau mai nou, și CMake 3.13+. Poate fi instalat prin pip cu opțiuni suplimentare pentru suportul framework-urilor.
Începe să dezvolți soluții AI proprii cu instrumentele puternice și integrările fluide oferite de FlowHunt.
MLflow este o platformă open-source concepută pentru a simplifica și gestiona ciclul de viață al învățării automate (ML). Oferă instrumente pentru urmărirea exp...
Descoperă importanța și aplicațiile Human in the Loop (HITL) în chatbot-urile AI, unde expertiza umană îmbunătățește sistemele de inteligență artificială pentru...
Află mai multe despre Claude de la Anthropic. Înțelege la ce se folosește, ce modele oferă și ce caracteristici unice are.