Hyperopt에서 분산 학습 알고리즘 사용

scikit-learn의 알고리즘과 같은 단일 머신 학습 알고리즘 외에도 분산 학습 알고리즘과 함께 Hyperopt를 사용할 수 있습니다. 이 시나리오에서 Hyperopt는 드라이버 노드에서 서로 다른 하이퍼 매개 변수 설정을 사용하여 평가판을 생성합니다. 각 평가판은 드라이버 노드에서 실행되어 전체 클러스터 리소스에 대한 액세스 권한을 부여합니다. 이 설정은 Apache Spark MLlib 및 HorovodRunner를 비롯한 모든 분산 기계 학습 알고리즘 또는 라이브러리에서 작동합니다.

분산 학습 알고리즘과 함께 Hyperopt를 사용하는 경우 인수를 trialsfmin()전달하지 마세요. 특히 클래스를 SparkTrials 사용하지 마세요. SparkTrials 는 자체 배포되지 않은 알고리즘에 대한 평가판을 배포하도록 설계되었습니다. 분산 학습 알고리즘을 사용하면 클러스터 드라이버에서 실행되는 기본 Trials 클래스를 사용합니다. Hyperopt는 ML 알고리즘 자체가 분산 학습을 시작할 수 있도록 드라이버 노드의 각 평가판을 평가합니다.

참고

Azure Databricks는 클래스를 사용하여 MLflow에 대한 자동 로깅을 Trials 지원하지 않습니다. 분산 학습 알고리즘을 사용하는 경우 수동으로 MLflow를 호출하여 Hyperopt에 대한 평가판을 기록해야 합니다.

Notebook 예제: MLlib 알고리즘에서 Hyperopt 사용

예제 Notebook에서는 Hyperopt를 사용하여 MLlib의 분산 학습 알고리즘을 조정하는 방법을 보여 줍니다.

Hyperopt 및 MLlib 분산 학습 Notebook

Notebook 가져오기

Notebook 예제: HorovodRunner에서 Hyperopt 사용

HorovodRunner는 Databricks에서 분산 딥 러닝 워크로드를 실행하는 데 사용되는 일반적인 API입니다. HorovodRunner는 Spark의 장벽 모드Horovod를 통합하여 Spark에서 장기 실행 딥 러닝 학습 작업에 더 높은 안정성을 제공합니다.

예제 Notebook은 Hyperopt를 사용하여 HorovodRunner를 기반으로 하는 딥 러닝을 위한 분산 학습을 조정하는 방법을 보여줍니다.

Hyperopt 및 HorovodRunner 분산 학습 Notebook

Notebook 가져오기