Il 9 luglio, il nostro team ha ospitato un webinar dal vivo, Deep Learning scalabile end-to-end con TensorFlow™ e Databricks, con Brooke Wenig, Consulente di soluzioni Data Science presso Databricks e Sid Murching, Software Engineer presso Databricks.
In questo webinar, vi abbiamo illustrato come usare TensorFlow e Horovod (una libreria open-source di Uber per semplificare l'addestramento distribuito dei modelli) sulla Databricks Piattaforma di analisi unificata per creare un sistema di raccomandazione più efficace su vasta scala.
In particolare, abbiamo trattato alcune delle funzionalità introdotte di recente per semplificare il deep learning distribuito:
Se hai perso il webinar, puoi guardarlo ora. Inoltre, abbiamo illustrato il seguente notebook:
Se desideri accedere gratuitamente alla Databricks Piattaforma di analisi unificata e provare i nostri Notebooks, puoi accedere a una prova gratuita qui.
Verso la fine, abbiamo tenuto una sessione di domande e risposte; di seguito sono riportate tutte le domande e le relative risposte. Puoi anche fornirci il tuo feedback su questo webinar compilando questo breve sondaggio, in modo da poter continuare a migliorare la tua esperienza!
D: È possibile eseguire l'ottimizzazione degli iperparametri del modello in TensorFlow in modo distribuito?
Ci sono diversi modi per farlo, tra cui:
Per quanto riguarda le funzionalità supportate da HorovodEstimator, stiamo valutando l'aggiunta del supporto per le API di ottimizzazione native di MLlib, in modo da poter avviare l'ottimizzazione degli iperparametri tramite più Job di addestramento distribuiti.
In alternativa, Deep Learning Pipeline (una libreria OSS di Databricks) consente l'ottimizzazione parallelizzata degli iperparametri dei modelli Keras a nodo singolo su dati di immagine.
D: Cosa significa ALS?
ALS è l'acronimo di Alternating Least Squares. È una tecnica utilizzata per il filtraggio collaborativo. Qui puoi trovare ulteriori informazioni sulla sua implementazione in Apache Spark.
D: Nella sua demo quanti server ha utilizzato? Quanti core?
Ecco la nostra configurazione per questa demo:
D: I dati sono stati replicati su ogni macchina locale? Ogni nodo worker utilizza tutti i dati durante l'addestramento?
Un sottoinsieme univoco dei dati di addestramento viene copiato sul disco locale di ogni macchina, quindi ogni nodo worker esegue l'addestramento su un sottoinsieme univoco dei dati. Durante un singolo step di addestramento, ogni worker elabora un batch di dati di addestramento, calcolando i gradienti che vengono poi mediati utilizzando la funzionalità ring-allreduce di Horovod e applicati al modello.
D: Come si confrontano dist-keras e Horovod?
Dist-keras è un altro framework open source per l'addestramento di un modello Keras in modo distribuito su un Dataframe Spark e rappresenta un'altra ottima soluzione per l'addestramento dei modelli Keras. Abbiamo lavorato con entrambi. Una delle cose che ci è piaciuta di Horovod è che viene fornito con i benchmark di Uber e che è utilizzato in produzione da Uber. Per questo motivo abbiamo deciso di creare l'HorovodEstimator basandoci su Horovod, poiché è utilizzato da grandi aziende del settore e continuerà a essere ben supportato in futuro.
D: Quanto tempo richiede l'addestramento su una singola macchina rispetto all'addestramento distribuito?
Questa è una buona domanda. In generale, ci sono molti fattori che influenzano le prestazioni quando si confronta l'addestramento su una singola macchina con quello distribuito. L'addestramento distribuito comporta un sovraccarico di comunicazione dovuto alla comunicazione degli aggiornamenti del gradiente, ma consente anche un'accelerazione elaborando i batch di dati di addestramento in parallelo tra le macchine. Con HorovodEstimator c'è anche un costo di avvio fisso per la scrittura del DataFrame Spark di input in formato TFRecord sui dischi locali dei nodi del nostro cluster. Consigliamo di provare prima l'addestramento su una singola macchina e di esplorare l'addestramento distribuito solo se il primo non è sufficientemente scalabile.
D: Ciao, grazie per l'intervento. Quello era un ottimo scenario per un Notebook, ma in un team con più data scientist che lavorano su esperimenti diversi e su set di dati leggermente diversi, avete una funzionalità per tenerne traccia? Quali altre funzionalità collaborative supportate?
Questa è un'ottima domanda! Abbiamo recentemente annunciato un nuovo progetto open source chiamato MLflow proprio per questo. Con MLflow, i professionisti possono impacchettare e riutilizzare modelli su diversi framework, tracciare e condividere esperimenti in locale o nel cloud ed eseguire il deployment dei modelli praticamente ovunque. Inoltre, Databricks offre notebook condivisi per lo sviluppo in Python o R che supportano anche il tracciamento delle modifiche e la cronologia delle versioni con GitHub.
Leggi il post su un blog di Matei Zaharia sulla release 0.2 di MLflow per gli ultimi aggiornamenti su questa iniziativa e partecipa al nostro prossimo webinar del 30 agosto con Matei Zaharia per saperne di più.
D: Non ho molti dati e sto usando un modello LSTM e TensorFlow. Mi consiglieresti ancora Databricks e Apache Spark?
Apache Spark è ideale per qualsiasi tipo di addestramento distribuito o ETL, in quanto unifica l'elaborazione dei dati con il machine learning, ma richiede comunque un certo impegno per l'installazione, la configurazione e la manutenzione. Databricks offre un modo flessibile per eseguire i job, da casi d'uso su nodo singolo a quelli su nodi multipli, su Apache Spark. Puoi aggiungere facilmente altri nodi ai tuoi cluster con un semplice clic. Databricks unifica tutte le analitiche in un unico posto, in modo che tu possa anche preparare set di dati puliti per l'addestramento dei tuoi modelli. Databricks Runtime include TensorFlow preinstallato e configurato, insieme a Keras, Horovod, ma anche XGBoost, scikit-learn, ecc., offrendo la massima scelta e flessibilità per creare e addestrare modelli di ML. Infine, ma non meno importante, i notebook di Databricks forniscono un ambiente collaborativo per gestire l'intero ciclo di vita in un unico posto, dalla preparazione dei dati all'addestramento e al serving dei modelli.
D: È possibile addestrare un modello binario con HorovodEstimator?
Sì. L'API HorovodEstimator fornisce semplicemente un modo per eseguire qualsiasi codice TensorFlow in un ambiente distribuito su dati su larga scala, inclusa, ad esempio, la classificazione binaria.
D: Il cluster supporta la multi-tenancy?
Sì, è possibile avere più Notebook collegati al cluster o più utenti sul cluster. È anche possibile gestire le autorizzazioni del cluster a vari livelli su Databricks per la massima flessibilità e sicurezza.
D: Potete condividere gli script e le slide dei relatori dopo il webinar?
Sì, ora puoi accedere al notebook. Per eseguire questo Notebook, dovrai solo aggiungere il set di addestramento al tuo Databricks Workspace. Iscriviti per una prova gratuita di 14 giorni per iniziare!
D: Qual è la differenza tra Apache Spark e Databricks?
Databricks Piattaforma di analisi unificata fornisce una versione hosted di Apache Spark sia su AWS che su Azure e molto altro. Forniamo notebook e API integrati per gestire e automatizzare le analitiche in un unico posto, oltre a ottimizzazioni aggiuntive per Apache Spark, tra cui Databricks Delta Lake, che è fino a 100 volte più veloce di Apache Spark su Parquet, Databricks Runtime for ML e HorovodEstimator. Inoltre, semplifichiamo notevolmente il DevOps con la configurazione e il dimensionamento automatici dei clusters e forniamo funzionalità di sicurezza di livello enterprise e la conformità con una piattaforma certificata HIPAA e SOC 2 type 2.
(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale
Data Science e ML
October 31, 2023/9 min de leitura

