使用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分發培訓筆記本