Använda distribuerade träningsalgoritmer med Hyperopt
Kommentar
Versionen med öppen källkod av Hyperopt underhålls inte längre.
Hyperopt tas bort i nästa större DBR ML-version. Azure Databricks rekommenderar att du använder antingen Optuna- för ennodsoptimering eller RayTune för en liknande upplevelse som de inaktuella hyperopt-distribuerade hyperparameterjusteringsfunktionerna. Läs mer om hur du använder RayTune i Azure Databricks.
Förutom träningsalgoritmer för en enda dator, till exempel algoritmer från scikit-learn, kan du använda Hyperopt med distribuerade träningsalgoritmer. I det här scenariot genererar Hyperopt utvärderingsversioner med olika inställningar för hyperparameter på drivrutinsnoden. Varje utvärderingsversion körs från drivrutinsnoden, vilket ger den åtkomst till de fullständiga klusterresurserna. Den här konfigurationen fungerar med distribuerade maskininlärningsalgoritmer eller bibliotek, inklusive Apache Spark MLlib och HorovodRunner.
När du använder Hyperopt med distribuerade träningsalgoritmer ska du inte skicka ett trials
argument till fmin()
och specifikt inte använda SparkTrials
klassen.
SparkTrials
är utformad för att distribuera utvärderingsversioner för algoritmer som inte själva distribueras. Med distribuerade träningsalgoritmer använder du standardklassen Trials
, som körs på klusterdrivrutinen. Hyperopt utvärderar varje utvärderingsversion på drivrutinsnoden så att SJÄLVA ML-algoritmen kan initiera distribuerad träning.
Kommentar
Azure Databricks stöder inte automatisk loggning till MLflow med Trials
klassen . När du använder distribuerade träningsalgoritmer måste du manuellt anropa MLflow för att logga utvärderingsversioner för Hyperopt.
Notebook-exempel: Använda Hyperopt med MLlib-algoritmer
Exempelanteckningsboken visar hur du använder Hyperopt för att finjustera MLlib:s distribuerade träningsalgoritmer.
Distribuerad träningsanteckningsbok för Hyperopt och MLlib
Notebook-exempel: Använda Hyperopt med HorovodRunner
HorovodRunner är ett allmänt API som används för att köra distribuerade djupinlärningsarbetsbelastningar på Databricks. HorovodRunner integrerar Horovod med Sparks barriärläge för att ge högre stabilitet för långvariga djupinlärningsträningsjobb på Spark.
Exempelanteckningsboken visar hur du använder Hyperopt för att finjustera distribuerad träning för djupinlärning baserat på HorovodRunner.