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


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

Получить блокнот