Использование распределенных алгоритмов обучения с Hyperopt
Примечание.
Версия Hyperopt с открытым исходным кодом больше не поддерживается.
Hyperopt будет удален в следующей основной версии DBR ML. Azure Databricks рекомендует использовать Optuna для одноузловой оптимизации или RayTune для получения опыта, аналогичного распределённой настройке гиперпараметров в устаревшей функции Hyperopt. Дополнительные сведения об использовании RayTune в Azure Databricks.
Помимо алгоритмов обучения с одним компьютером, таких как scikit, вы можете использовать Hyperopt с распределенными алгоритмами обучения. В этом сценарии Hyperopt создает пробные версии с различными настройками гиперпараметров в узле драйвера. Каждая пробная версия выполняется из узла драйвера, предоставляя ей доступ к полным ресурсам кластера. Эта программа установки работает с любыми распределенными алгоритмами или библиотеками машинного обучения, включая Apache Spark MLlib и HorovodRunner.
При использовании Hyperopt с распределенными алгоритмами обучения не следует передавать аргумент trials
в fmin()
и, в частности, не использовать класс SparkTrials
.
SparkTrials
предназначен для распространения пробных версий для нераспределенных алгоритмов. При использовании распределенных алгоритмов обучения используйте класс по умолчанию Trials
, который работает в драйвере кластера. Hyperopt оценивает каждую пробную версию узла драйвера, чтобы алгоритм машинного обучения мог сам инициировать распределенное обучение.
Примечание.
Azure Databricks не поддерживает автоматическое ведение журнала для MLflow с классом Trials
. При использовании распределенных алгоритмов обучения необходимо вручную вызвать MLflow для регистрации испытаний для Hyperopt.
Пример записной книжки: использование Hyperopt с алгоритмами MLlib
В примере записной книжки показано, как использовать Hyperopt для настройки распределенных алгоритмов обучения MLlib.
Hyperopt и записная книжка распределенного обучения MLlib
Пример записной книжки: использование Hyperopt с HorovodRunner
HorovodRunner — это общий API, используемый для выполнения распределенных рабочих нагрузок глубокого обучения на Databricks. HorovodRunner интегрирует Horovod с режимом барьера Spark, чтобы обеспечить повышенную стабильность для длительно выполняемых заданий глубокого обучения в Spark.
В примере записной книжки показано, как использовать Hyperopt для настройки распределенного обучения для глубокого обучения на основе HorovodRunner.