Używanie rozproszonych algorytmów trenowania za pomocą biblioteki Hyperopt

Uwaga

Wersja biblioteki Hyperopt typu open source nie jest już utrzymywana.

Funkcja Hyperopt nie będzie już wstępnie zainstalowana w środowisku Databricks Runtime ML 17.0 lub nowszym. Usługa Azure Databricks zaleca użycie optuna zamiast tego w celu uzyskania podobnego środowiska i dostępu do bardziej aktualnych algorytmów dostrajania hiperparametrów.

Oprócz algorytmów trenowania pojedynczego komputera, takich jak te z biblioteki scikit-learn, można użyć funkcji Hyperopt z algorytmami trenowania rozproszonego. W tym scenariuszu funkcja Hyperopt generuje wersje próbne z różnymi ustawieniami hiperparametrów w węźle sterownika. Każda wersja próbna jest wykonywana z węzła sterownika, zapewniając mu dostęp do pełnych zasobów klastra. Ta konfiguracja działa z dowolnymi rozproszonymi algorytmami lub bibliotekami uczenia maszynowego, w tym bibliotekami MLlib i HorovodRunner platformy Apache Spark.

Jeśli używasz funkcji Hyperopt z rozproszonymi algorytmami trenowania, nie przekazuj argumentu trials do fmin()klasy , a w szczególności nie używaj SparkTrials klasy . SparkTrials jest przeznaczony do dystrybucji prób dla algorytmów, które nie są rozproszone. W przypadku algorytmów trenowania rozproszonego użyj domyślnej Trials klasy, która jest uruchamiana w sterowniku klastra. Funkcja Hyperopt ocenia każdą wersję próbną w węźle sterownika, aby algorytm uczenia maszynowego mógł zainicjować trenowanie rozproszone.

Uwaga

Usługa Azure Databricks nie obsługuje automatycznego rejestrowania w usłudze MLflow z klasą Trials . W przypadku korzystania z algorytmów trenowania rozproszonego należy ręcznie wywołać bibliotekę MLflow, aby rejestrować wersje próbne dla funkcji Hyperopt.

Przykład notesu: używanie funkcji Hyperopt z algorytmami MLlib

W przykładowym notesie pokazano, jak używać funkcji Hyperopt do dostosowywania rozproszonych algorytmów trenowania biblioteki MLlib.

Notes trenowania rozproszonego funkcji Hyperopt i biblioteki MLlib

Pobierz notes

Przykład notesu: używanie funkcji Hyperopt z programem HorovodRunner

HorovodRunner to ogólny interfejs API służący do uruchamiania rozproszonych obciążeń uczenia głębokiego w usłudze Databricks. Rozwiązanie HorovodRunner integruje platformę Horovod z trybem barierowym platformy Spark, aby zapewnić większą stabilność dla długotrwałych zadań uczenia głębokiego na platformie Spark.

W przykładowym notesie pokazano, jak używać funkcji Hyperopt do dostosowywania trenowania rozproszonego na potrzeby uczenia głębokiego na podstawie narzędzia HorovodRunner.

Notes trenowania rozproszonego hyperopt i HorovodRunner

Pobierz notes