Použití algoritmů distribuovaného trénování s Hyperoptem
Poznámka:
Opensourcová verze Hyperoptu se už neudržuje.
Hyperopt se odebere v další hlavní verzi DBR ML. Azure Databricks doporučuje používat Optuna pro podobné prostředí a přístup k nejaktuálnějším algoritmům ladění hyperparametrů.
Kromě algoritmů pro trénování s jedním počítačem, jako jsou algoritmy scikit-learn, můžete použít Hyperopt s distribuovanými trénovacími algoritmy. V tomto scénáři Hyperopt generuje pokusy s různými nastaveními hyperparametrů v uzlu ovladače. Každá zkušební verze se spustí z uzlu ovladače a poskytne mu přístup k úplným prostředkům clusteru. Toto nastavení funguje s libovolnými algoritmy nebo knihovnami distribuovaného strojového učení, včetně knihovny Apache Spark MLlib a HorovodRunneru.
Pokud používáte Hyperopt s distribuovanými trénovacími algoritmy, nepředávejte trials
argument fmin()
, a konkrétně nepoužívejte SparkTrials
třídu. SparkTrials
je navržený tak, aby distribuoval pokusy o algoritmy, které se nedistribuují. S distribuovanými trénovacími algoritmy použijte výchozí Trials
třídu, která běží na ovladači clusteru. Hyperopt vyhodnocuje každou zkušební verzi uzlu ovladače, aby samotný algoritmus ML mohl zahájit distribuované trénování.
Poznámka:
Azure Databricks nepodporuje automatické protokolování do MLflow s Trials
třídou. Při použití distribuovaných trénovacích algoritmů musíte ručně volat MLflow pro protokolování zkušebních verzí hyperoptu.
Příklad poznámkového bloku: Použití Hyperoptu s algoritmy MLlib
Ukázkový poznámkový blok ukazuje, jak pomocí Hyperoptu ladit distribuované trénovací algoritmy knihovny MLlib.
Distribuovaný trénovací poznámkový blok Hyperopt a MLlib
Příklad poznámkového bloku: Použití Hyperoptu s HorovodRunnerem
HorovodRunner je obecné rozhraní API používané ke spouštění distribuovaných úloh hlubokého učení v Databricks. HorovodRunner integruje Horovod s režimem bariéry Sparku, aby poskytoval vyšší stabilitu pro dlouhotrvající úlohy trénování hlubokého učení ve Sparku.
Ukázkový poznámkový blok ukazuje, jak pomocí Hyperoptu ladit distribuované trénování hlubokého učení na základě HorovodRunneru.