Uso de algoritmos de aprendizaje distribuido con Hyperopt
Nota:
La versión de código abierto de Hyperopt ya no se mantiene.
Hyperopt se quitará en la siguiente versión principal de DBR ML. Azure Databricks recomienda usar Optuna para obtener una experiencia similar y acceder a algoritmos de ajuste de hiperparámetros más actualizados.
Además de los algoritmos de entrenamiento de una sola máquina, como los de Scikit-learn, puede usar Hyperopt con algoritmos de entrenamiento distribuido. En este escenario, Hyperopt genera pruebas con diferentes configuraciones de hiperparámetros en el nodo del controlador. Cada prueba se ejecuta desde el nodo del controlador, lo que le proporciona acceso a todos los recursos del clúster. Esta configuración funciona con cualquier algoritmo o biblioteca de aprendizaje automático distribuido, incluidos Apache Spark MLlib y HorovodRunner.
Cuando use Hyperopt con algoritmos de entrenamiento distribuido, no pase ningún argumento trials
a fmin()
y, en concreto, no use la clase SparkTrials
. SparkTrials
se ha diseñado para distribuir pruebas para algoritmos que no se distribuyen de forma automática. Con los algoritmos de entrenamiento distribuido, use la clase Trials
predeterminada, que se ejecuta en el controlador del clúster. Hyperopt evalúa cada una de las pruebas en el nodo del controlador para que el propio algoritmo ML pueda iniciar el entrenamiento distribuido.
Nota:
Azure Databricks no admite el registro automático en MLflow con la clase Trials
. Al usar algoritmos de entrenamiento distribuido, debe llamar manualmente a MLflow para registrar las pruebas de Hyperopt.
Ejemplo de cuaderno: uso de Hyperopt con algoritmos MLlib
En el cuaderno de ejemplo se muestra cómo usar Hyperopt para ajustar los algoritmos de entrenamiento distribuido de MLlib.
Cuaderno de entrenamiento distribuido de Hyperopt y MLlib
Ejemplo de cuaderno: uso de Hyperopt con HorovodRunner
HorovodRunner es una API general que se usa para ejecutar cargas de trabajo de aprendizaje profundo distribuido en Databricks. HorovodRunner integra Horovod con el modo de barrera de Spark a fin de proporcionar mayor estabilidad para los trabajos de aprendizaje profundo de larga duración en Spark.
En el cuaderno de ejemplo se muestra cómo usar Hyperopt a fin de ajustar el entrenamiento distribuido para el aprendizaje profundo basado en HorovodRunner.