Hyperopt에서 분산 학습 알고리즘 사용
참고 항목
Hyperopt의 오픈 소스 버전은 더 이상 유지 관리되지 않습니다.
Hyperopt는 다음 주 DBR ML 버전에서 제거됩니다. Azure Databricks는 단일 노드 최적화를 위해 Optuna를 사용할 것을 권장하며, 사용 중지된 Hyperopt 분산 하이퍼파라미터 튜닝 기능과 유사한 환경을 위해서는 RayTune 사용을 권장합니다. Azure Databricks에서 RayTune 사용하는 방법에 대해 자세히 알아봅니다.
scikit-learn의 알고리즘 같은 단일 기계 학습 알고리즘 외에도 분산 학습 알고리즘에서 Hyperopt를 사용할 수 있습니다. 이 시나리오에서 Hyperopt는 드라이버 노드의 다양한 하이퍼 매개 변수 설정을 사용하여 평가판을 생성합니다. 각 평가판은 드라이버 노드에서 실행되어 전체 클러스터 리소스에 대한 액세스 권한을 부여합니다. 이 설정은 Apache Spark MLlib 및 HorovodRunner 등의 모든 분산 기계 학습 알고리즘 또는 라이브러리에서 작동합니다.
분산 학습 알고리즘에서 Hyperopt를 사용하는 경우 trials
인수를 fmin()
에 전달하지 않습니다. 특히 SparkTrials
클래스를 사용하지 마세요.
SparkTrials
는 자체 배포되지 않는 알고리즘에 대한 평가판을 배포하도록 설계되었습니다. 분산 학습 알고리즘에서는 클러스터 드라이버에서 실행되는 기본 Trials
클래스를 사용합니다. Hyperopt는 ML 알고리즘 자체가 분산 학습을 시작할 수 있도록 드라이버 노드에서 각 평가판을 평가합니다.
참고 항목
Azure Databricks는 Trials
클래스를 사용하는 MLflow에 대해 자동 로깅을 지원하지 않습니다. 분산 학습 알고리즘을 사용하는 경우 수동으로 MLflow를 호출하여 Hyperopt 평가판을 기록해야 합니다.
Notebook 예제: MLlib 알고리즘에서 Hyperopt 사용
예제 Notebook에는 Hyperopt를 사용하여 MLlib의 분산 학습 알고리즘을 조정하는 방법이 나와 있습니다.
Hyperopt 및 MLlib 분산 학습 Notebook
Notebook 예제: HorovodRunner에서 Hyperopt 사용
HorovodRunner는 Databricks에서 분산 딥 러닝 워크로드를 실행하는 데 사용되는 일반 API입니다. HorovodRunner는 Horovod를 Spark의 장벽 모드와 통합하여 Spark의 장기 실행 딥 러닝 작업에 더 높은 안정성을 제공합니다.
예제 Notebook에는 Hyperopt를 사용하여 HorovodRunner 기반의 딥 러닝을 위한 분산 학습을 조정하는 방법이 나와 있습니다.