Usare gli algoritmi di training distribuito con Hyperopt
Nota
La versione open source di Hyperopt non è più gestita.
Hyperopt verrà rimosso nella prossima versione principale di DBR ML. Azure Databricks consiglia di usare Optuna per l'ottimizzazione a nodo singolo o RayTune per un'esperienza simile alla funzionalità di ottimizzazione degli iperparametri distribuita deprecata di Hyperopt. Altre informazioni sull'uso di RayTune in Azure Databricks.
Oltre agli algoritmi di training a computer singolo, ad esempio quelli di scikit-learn, è possibile usare Hyperopt con algoritmi di training distribuiti. In questo scenario Hyperopt genera versioni di valutazione con impostazioni di iperparametri diverse nel nodo driver. Ogni versione di valutazione viene eseguita dal nodo del driver, concedendole l'accesso alle risorse cluster complete. Questa configurazione funziona con qualsiasi algoritmo o libreria di Machine Learning distribuiti, tra cui Apache Spark MLlib e HorovodRunner.
Quando si usa Hyperopt con algoritmi di training distribuiti, non passare un trials
argomento a fmin()
e in particolare non usare la SparkTrials
classe.
SparkTrials
è progettato per distribuire versioni di valutazione per gli algoritmi che non sono distribuiti. Con gli algoritmi di training distribuiti, usare la classe predefinita Trials
, che viene eseguita nel driver del cluster. Hyperopt valuta ogni versione di valutazione nel nodo del driver, in modo che l'algoritmo di ML stesso possa avviare il training distribuito.
Nota
Azure Databricks non supporta la registrazione automatica in MLflow con la Trials
classe. Quando si usano algoritmi di training distribuiti, è necessario chiamare manualmente MLflow per registrare le versioni di valutazione per Hyperopt.
Esempio di notebook: Usare Hyperopt con algoritmi MLlib
Il notebook di esempio illustra come usare Hyperopt per ottimizzare gli algoritmi di training distribuiti di MLlib.
Notebook di training distribuito Hyperopt e MLlib
Esempio di notebook: Usare Hyperopt con HorovodRunner
HorovodRunner è un'API generale usata per eseguire carichi di lavoro di Deep Learning distribuiti in Databricks. HorovodRunner integra Horovod con la modalità barriera di Spark per garantire una maggiore stabilità per i processi di training di Deep Learning a esecuzione prolungata in Spark.
Il notebook di esempio illustra come usare Hyperopt per ottimizzare il training distribuito per l'apprendimento avanzato basato su HorovodRunner.