使用Hyperopt的分布式訓練算法

除了來自scikit-learn的單機訓練算法,您還可以使用帶有分布式訓練算法的Hyperopt。在此場景中,Hyperopt在驅動節點上生成具有不同超參數設置的試驗。每個試驗都從驅動程序節點執行,使其能夠訪問完整的集群資源。此設置適用於任何分布式機器學習算法或庫,包括Apache Spark MLlib和HorovodRunner。

當您使用帶有分布式訓練算法的Hyperopt時,不要通過試用參數fmin (),特別是,不要使用SparkTrials類。SparkTrials用於分發算法本身未分發的試驗。對於分布式訓練算法,使用默認值試用類,它運行在集群驅動程序上。Hyperopt在驅動節點上評估每個試驗,以便ML算法本身可以啟動分布式訓練。

請注意

Databricks不支持將日誌自動記錄到MLflow試用類。當使用分布式訓練算法時,必須手動調用MLflow來記錄Hyperopt的試驗。

使用Hyperopt和MLlib算法

示例筆記本展示了如何使用Hyperopt來調優MLlib的分布式訓練算法。

Hyperopt和MLlib分布式訓練筆記本

在新標簽頁打開筆記本

使用Hyperopt和HorovodRunner

HorovodRunner是一個通用API,用於在Databricks上運行分布式深度學習工作負載。HorovodRunner集成Horovod火花的障模式為Spark上長期運行的深度學習訓練作業提供更高的穩定性。

示例筆記本展示了如何使用Hyperopt來優化基於HorovodRunner的深度學習分布式訓練。

Hyperopt和HorovodRunner分發培訓筆記本

在新標簽頁打開筆記本