
Caffe
Caffe är ett öppet källkodsramverk för djupinlärning från BVLC, optimerat för hastighet och modularitet vid byggande av konvolutionella neurala nätverk (CNN). C...
Horovod förenklar distribuerad djupinlärning och möjliggör effektiv skalning över GPU:er eller maskiner med minimala kodändringar och brett ramverksstöd.
Horovod är utformat för att optimera hastighet, skalbarhet och resursallokering under träning av maskininlärningsmodeller. Dess kärnmekanism—Ring-AllReduce-algoritmen—hanterar datakommunikation effektivt och minimerar de kodändringar som krävs för att skala från en enskild nod till miljöer med flera noder.
Horovod introducerades av Uber 2017 som en del av deras interna ML-as-a-service-plattform, Michelangelo. Verktyget skapades för att lösa skalningsineffektivitet med standardlösningen för distribuerad TensorFlow, som inte räckte till för Ubers omfattande behov. Horovods arkitektur utformades för att avsevärt minska träningstiden och möjliggöra sömlös distribuerad träning.
Horovod underhålls nu under Linux Foundation’s AI Foundation, vilket speglar dess breda acceptans och pågående utveckling inom öppen källkods-communityn.
Ramverksoberoende
Integreras med flera djupinlärningsramverk, vilket gör det möjligt för utvecklare att använda en enhetlig metod för distribuerad träning över olika verktyg. Detta minskar inlärningskurvan för utvecklare som är vana vid ett ramverk men behöver arbeta i olika miljöer.
Ring-AllReduce-algoritmen
Kärnan i Horovods effektivitet är denna algoritm, som utför genomsnittsberäkning av gradienter mellan noder med minimalt bandbreddsanvändande och minskar kommunikationskostnader vid träning i stor skala.
Enkelhet
Förenklar övergången från enkel-GPU till multi-GPU-träning genom att kräva minimala kodändringar. Omsluter befintliga optimerare och använder Message Passing Interface (MPI) för kommunikation mellan processer.
GPU-medvetenhet
Utnyttjar NVIDIAs NCCL-bibliotek för att optimera GPU-till-GPU-kommunikation för höghastighetsdataöverföringar och effektiv minneshantering—avgörande för stora, högdimensionella datamängder.
För att installera Horovod:
Krav:
Installationskommando:
pip install horovod[tensorflow,keras,pytorch,mxnet]
Ramverksspecifika miljövariabler:
Ställ in miljövariabler som HOROVOD_WITH_TENSORFLOW=1
för att styra ramverksstöd under installationen.
Horovod används ofta i scenarier där snabb modelliteration och träning krävs:
AI-automation och chattbottar:
I AI-drivna applikationer som chattbottar snabbar snabbare NLP-modellträning på produktutvecklingscyklerna.
Självkörande bilar:
Hos Uber används Horovod för utveckling av ML-modeller till autonoma fordon, där stora datamängder och komplexa modeller kräver distribuerad träning.
Bedrägeridetektion och prognoser:
Horovods effektivitet vid stora datamängder gör det idealiskt för finans- och e-handelsplattformar som behöver snabb modellträning för transaktionsdata, bedrägeridetektion och trendprognoser.
Exempel: Integrera Horovod i ett TensorFlow-träningsskript:
import tensorflow as tf
import horovod.tensorflow as hvd
# Initiera Horovod
hvd.init()
# Lås GPU till att använda lokal rang
config = tf.ConfigProto()
config.gpu_options.visible_device_list = str(hvd.local_rank())
# Bygg modell
model = ... # Definiera din modell här
optimizer = tf.train.AdagradOptimizer(0.01)
# Lägg till Horovod Distributed Optimizer
optimizer = hvd.DistributedOptimizer(optimizer)
# Sänd initiala variabeltillstånd från rang 0 till alla andra processer
hvd.broadcast_global_variables(0)
# Träningsloop
for epoch in range(num_epochs):
# Träningskod här
...
Horovod Timeline:
Profilerar distribuerade träningsjobb för att identifiera flaskhalsar i prestandan. Observera: att aktivera detta kan minska genomströmningen—använd med eftertanke.
Elastisk träning:
Stöder dynamisk justering av resurser under träning—speciellt användbart i molnmiljöer där resurser kan variera.
Horovod finns på GitHub, med ett starkt community av bidragsgivare och användare. Som en del av Linux Foundation AI uppmuntras utvecklare att bidra till dess fortsatta utveckling. Med över 14 000 stjärnor och många förgreningar visar Horovods engagemang i communityn på dess viktiga roll inom distribuerad träning.
Horovod förenklar distribuerad djupinlärning och adresserar två stora skalningsutmaningar: kommunikationskostnader och kodändringar.
Effektiv inter-GPU-kommunikation:
Utvecklat av Alexander Sergeev och Mike Del Balso, använder Horovod ring-reduktion för kommunikation mellan GPU:er, vilket avsevärt minskar kodändringarna som krävs för distribuerad träning.
Tillgänglighet:
Möjliggör snabbare och mer tillgänglig distribuerad träning i TensorFlow och andra ramverk, vilket gör det enklare för forskare att gå bortom enkel-GPU-träning.
Läs mer:
För djupare insikter, se artikeln “Horovod: fast and easy distributed deep learning in TensorFlow.”
NLP-modellträning:
Artikeln “Modern Distributed Data-Parallel Large-Scale Pre-training Strategies For NLP models” av Hao Bai utforskar dataparallell träning med PyTorch och Horovod. Studien lyfter fram Horovods robusthet, särskilt i kombination med Apex mixed-precision-strategi, vilket gör det effektivt för stora modeller som GPT-2 med 100M parametrar.
Dynamisk schemaläggning:
Artikeln “Dynamic Scheduling of MPI-based Distributed Deep Learning Training Jobs” av Tim Capes m.fl. undersöker dynamisk schemaläggning av djupinlärningsjobb med Horovods ringarkitektur, och visar att det möjliggör effektiv avstängning och omstart av jobb, minskar total slutförandetid och ger anpassningsförmåga för komplexa djupinlärningsuppgifter.
Horovod är ett ramverk för distribuerad djupinlärning med öppen källkod, utvecklat av Uber för att förenkla träning över flera GPU:er och maskiner, och stöder TensorFlow, Keras, PyTorch och MXNet.
Horovod använder Ring-AllReduce-algoritmen för att effektivt genomsnittliga gradienter mellan noder, vilket minimerar kommunikationskostnader och kodändringar för skalbar träning.
Horovod används inom AI-automation, chattbottar, självkörande bilar, bedrägeridetektion och alla scenarier som kräver snabb, storskalig modellträning.
Horovod underhålls under Linux Foundation AI, med ett starkt community med öppen källkod som bidrar till dess utveckling.
Horovod kräver GNU Linux eller macOS, Python 3.6 eller nyare samt CMake 3.13+. Det kan installeras via pip med flaggor för ramverksstöd.
Börja bygga dina egna AI-lösningar med FlowHunts kraftfulla verktyg och sömlösa integrationer.
Caffe är ett öppet källkodsramverk för djupinlärning från BVLC, optimerat för hastighet och modularitet vid byggande av konvolutionella neurala nätverk (CNN). C...
Upptäck vikten och användningsområdena för Human in the Loop (HITL) i AI-chatbots, där mänsklig expertis förbättrar AI-system för ökad noggrannhet, etiska stand...
Lär dig mer om Grok-modellen av xAI, en avancerad AI-chattbot ledd av Elon Musk. Upptäck dess tillgång till realtidsdata, nyckelfunktioner, benchmarkresultat, a...