Usare gli algoritmi di training distribuito con Hyperopt

Nota

La versione open source di Hyperopt non è più gestita.

Hyperopt non è incluso in Databricks Runtime per Machine Learning dopo la versione 16.4 LTS 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 prova viene eseguita dal nodo driver, consentendole di accedere a tutte le risorse del cluster. 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 addestramento distribuito, non passare un argomento trials a fmin(), e in particolare non usare la classe SparkTrials. SparkTrials è progettato per distribuire prove per algoritmi che non sono essi stessi distribuiti. Con gli algoritmi di training distribuiti, usare la classe predefinita Trials, che viene eseguita nel driver del cluster. Hyperopt valuta ogni prova sul nodo driver, in modo che l'algoritmo di machine learning stesso possa avviare l'addestramento distribuito.

Nota

Azure Databricks non supporta la registrazione automatica in MLflow con la Trials classe. Quando si usano algoritmi di addestramento distribuito, è necessario richiamare manualmente MLflow per registrare le prove di 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 per il training distribuito con Hyperopt e MLlib

Ottieni il notebook

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.

Notebook di addestramento distribuito con Hyperopt e HorovodRunner

Ottieni il notebook