Поделиться через


Использование распределенных алгоритмов обучения с 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.

Hyperopt и записная книжка распределенного обучения HorovodRunner

Получить записную книжку