Hyperopt에서 분산 학습 알고리즘 사용
참고 항목
Hyperopt의 오픈 소스 버전은 더 이상 유지 관리되지 않습니다.
Hyperopt는 다음 주 DBR ML 버전에서 제거됩니다. Azure Databricks는 유사한 환경에 Optuna를 사용하고 최신 하이퍼 매개 변수 튜닝 알고리즘에 액세스할 것을 권장합니다.
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 기반의 딥 러닝을 위한 분산 학습을 조정하는 방법이 나와 있습니다.