Freigeben über


Verwenden verteilter Trainingsalgorithmen mit Hyperopt

Hinweis

Die Open-Source-Version von Hyperopt wird nicht mehr gepflegt.

Hyperopt wird in der nächsten haupt-DBR ML-Version entfernt. Azure Databricks empfiehlt die Verwendung von Optuna für eine ähnliche Erfahrung und den Zugriff auf aktuellere Hyperparameter-Optimierungsalgorithmen.

Neben Trainingsalgorithmen für einen Computer wie denen von scikit-learn können Sie Hyperopt auch mit verteilten Trainingsalgorithmen verwenden. In diesem Szenario generiert Hyperopt Tests mit unterschiedlichen Hyperparametereinstellungen auf dem Treiberknoten. Jeder Test wird über den Treiberknoten ausgeführt, wodurch Zugriff auf die vollständigen Clusterressourcen gewährt wird. Dieses Setup funktioniert mit allen verteilten Machine Learning-Algorithmen oder -Bibliotheken, einschließlich Apache Spark MLlib und HorovodRunner.

Wenn Sie Hyperopt mit verteilten Trainingsalgorithmen verwenden, übergeben Sie kein trials-Argument an fmin(), und verwenden Sie insbesondere nicht die SparkTrials-Klasse. SparkTrials wurde entwickelt, um Tests für Algorithmen zu verteilen, die nicht selbst verteilt sind. Verwenden Sie bei verteilten Trainingsalgorithmen die Trials-Standardklasse, die auf dem Clustertreiber ausgeführt wird. Hyperopt wertet jeden Test auf dem Treiberknoten aus, damit der ML-Algorithmus das verteilte Training selbst initiieren kann.

Hinweis

Azure Databricks unterstützt die automatische Protokollierung bei Verwendung von MLflow mit der Trials-Klasse nicht. Wenn Sie verteilte Trainingsalgorithmen nutzen, müssen Sie MLflow manuell aufrufen, um die Tests für Hyperopt zu protokollieren.

Notebookbeispiel: Verwenden von Hyperopt mit MLlib-Algorithmen

Im Beispielnotebook wird gezeigt, wie Sie Hyperopt verwenden können, um die verteilten Trainingsalgorithmen von MLlib zu optimieren.

Notebook zum verteilten Training mit Hyperopt und MLlib

Notebook abrufen

Notebookbeispiel: Verwenden von Hyperopt mit HorovodRunner

HorovodRunner ist eine allgemeine API zum Ausführen verteilter Deep Learning-Workloads in Databricks. HorovodRunner verbindet Horovod mit dem Barrieremodus von Spark, wodurch Deep Learning-Trainingsaufträge mit langer Laufzeit in Spark stabiler werden.

Im Beispielnotebook wird gezeigt, wie Hyperopt verwendet wird, um das verteilte Training für Deep Learning mit HorovodRunner zu optimieren.

Notebook zum verteilten Training mit Hyperopt und HorovodRunner

Notebook abrufen