共用方式為


搭配 Hyperopt 使用分散式訓練演算法

注意

不再維護 Hyperopt 的開放原始碼版本。

Hyperopt 將在下一個主要 DBR ML 版本中移除。 Azure Databricks 建議針對類似的體驗使用 Optuna ,並存取更最新的超參數微調演算法。

除了單一機器訓練演算法 (例如來自 scikit-learn) 外,您還可以搭配分散式訓練演算法使用 Hyperopt。 在此案例中,Hyperopt 會在驅動程式節點上使用不同超參數設定產生試用。 每個試用都會從驅動程式節點執行,讓其能夠存取完整的叢集資源。 此設定適用於任何分散式機器學習演算法或程式庫,包括 Apache Spark MLlib 和 HorovodRunner。

當您搭配分散式訓練演算法使用 Hyperopt 時,請勿將 trials 引數傳遞至 fmin(),具體而言,不要使用 SparkTrials 類別。 SparkTrials 專為針對自身未散發的演算法散發試用而設計。 使用分散式訓練演算法時,請使用在叢集驅動程式上執行的預設 Trials 類別。 Hyperopt 會評估驅動程式節點上的每個試用,讓 ML 演算法本身可以起始分散式訓練。

注意

Azure Databricks 不支援使用 Trials 類別自動記錄至 MLflow。 使用分散式訓練演算法時,您必須手動呼叫 MLflow 來記錄 Hyperopt 的試用。

筆記本範例:搭配 MLlib 演算法使用 Hyperopt

該範例筆記本示範如何使用 Hyperopt 來微調 MLlib 的分散式訓練演算法。

Hyperopt 和 MLlib 分散式訓練筆記本

取得筆記本

筆記本範例:搭配 HorovodRunner 使用 Hyperopt

HorovodRunner 是用於在 Databricks 上執行分散式深度學習工作負載的一般 API。 HorovodRunner 整合了 Horovod 與 Spark 的屏障模式,可針對 Spark 上長時間執行的深度學習訓練工作提供更高的穩定性。

該範例筆記本示範如何使用 Hyperopt 來根據 HorovodRunner 微調針對深度學習的分散式訓練。

Hyperopt 和 HorovodRunner 分散式訓練筆記本

取得筆記本