Informazioni su Horovod

Completato

Horovod può aiutare gli scienziati dei dati durante il training di modelli di Deep Learning. Prima di esplorare Horovod verranno presentati i concetti principali di Deep Learning e illustrati i potenziali problemi con il training dei modelli di Deep Learning.

Breve panoramica del Deep Learning

Il Deep Learning è un sottocampo del Machine Learning e fa riferimento a modelli costituiti da più livelli, noti anche come reti neurali profonde. Il processo di training inizia con i dati inviati al livello di input in batch.

I dati vengono analizzati dal livello di input e passati al livello successivo fino a raggiungere il livello di output e generare una previsione. Le previsioni vengono confrontate con il valore noto effettivo e in base a questi risultati, pesi e valori di distorsione vengono rivisti per migliorare il modello.

I batch vengono elaborati dalla rete con più iterazioni o epoche. In ogni epoca il modello tenta di migliorare ulteriormente le previsioni aggiornando i valori di peso e distorsione.

Deep Learning con Azure Databricks

In Azure Databricks è possibile eseguire il training di modelli di Deep Learning usando framework open source diffusi per Python: TensorFlow, PyTorch e Keras. Quando si usa uno di questi framework a nodo singolo per eseguire il training di un modello di Deep Learning, è consigliabile usare un cluster a nodo singolo in Azure Databricks.

I modelli di Deep Learning traggono vantaggio dalla disponibilità di più dati: maggiore è la quantità dati, più è probabile che si otterrà un modello migliore o più accurato. Sebbene sia consigliabile eseguire il training di modelli di Deep Learning in cluster a nodo singolo, il modello o i dati potrebbero essere troppo estesi per la memoria di un singolo computer. L'insufficienza di un cluster a nodo singolo è il problema che gli scienziati dei dati possono dover affrontare durante il training dei modelli di Deep Learning. Horovod può fortunatamente essere di aiuto in questi scenari.

Informazioni su Horovod

Horovod è un framework di training distribuito open source ed è l'alternativa al training di un modello in un cluster a nodo singolo. Horovod consente agli scienziati dei dati di distribuire il processo di training e di usare l'elaborazione parallela di Spark.

Poiché i modelli di Deep Learning contengono livelli che devono essere elaborati in sequenza e usano risultati intermedi per migliorare il modello alla fine di un'epoca, l'elaborazione parallela dei modelli di Deep Learning può diventare rapidamente complicata. Horovod è progettato per occuparsi della gestione dell'infrastruttura in modo che gli scienziati dei dati possano concentrarsi sul training dei modelli.

Horovod prende il nome da una danza tradizionale in cui i partner si tengono per mano mentre ballano in cerchio. Horovod deve questo nome al modo in cui consente ai nodi di lavoro di comunicare con altri nodi di lavoro, per evitare un collo di bottiglia nel nodo del driver.

Quando Horovod viene usato su uno dei framework di Deep Learning (TensorFlow, PyTorch o Keras), esegue il training di più modelli in batch diversi del set di dati di input su ruoli di lavoro separati. In altre parole, più modelli vengono sottoposti a training in parallelo su ruoli di lavoro separati usando subset diversi dei dati.

Alla fine di un'epoca, i pesi vengono comunicati tra i ruoli di lavoro e viene calcolato il peso medio di tutti i ruoli di lavoro. Una nuova epoca può quindi iniziare a usare il nuovo peso medio e durante tale epoca ancora una volta più modelli vengono sottoposti a training in parallelo.

Suggerimento

Altre informazioni su Horovod sono disponibili qui. Per informazioni su Horovod in Azure Databricks, vedere la documentazione qui.