跳轉到主要內容
工程的博客

與MLflow Hyperparameter調優,Apache MLlib和Hyperopt火花

分享這篇文章

Hyperparameter調優是一種常見的技術來優化基於hyperparameters機器學習模型,或配置不學會在模型訓練。調優這些配置可以顯著改善模型性能。然而,hyperparameter調優可以計算昂貴,緩慢,甚至不直觀的專家。

磚運行時的5.4和5.4毫升(Azure|AWS)引入新功能,這有助於規模和簡化hyperparameter調優。這些功能支持調優毫升在Python中,重點是通過Apache火花和自動跟蹤通過MLflow可伸縮性。

MLflow:跟蹤優化工作流程

Hyperparameter優化創建複雜的工作流,涉及測試許多Hyperparameter設置,生成了大量的模型和迭代ML管道。為了簡化跟蹤和再現性優化工作流程,我們使用MLflow,一個開源的平台來幫助管理機器學習Beplay体育安卓版本的完整生命周期。了解更多關於MLflowMLflow文檔和最近的火花+人工智能峰會2019 MLflow談判

我們的集成鼓勵一些最佳實踐對組織運行和跟蹤hyperparameter調優。在高級別上,我們組織運行如下,匹配使用的結構調優本身:

調優 MLflow運行 MLflow日誌
Hyperparameter優化算法 父母運行 元數據,例如,numFoldsCrossValidator
適合hyperparameter設置# 1 &評估模型 子跑1 Hyperparameters # 1,評價指標# 1
健康&評估模型與hyperparameter設置# 2 孩子跑2 Hyperparameters # 2、評估指標# 2

要了解更多,請查看這個演講”最佳實踐與MLflow Hyperparameter調優從火花+人工智能峰會2019”。

管理MLflow現在通常可以在磚,兩個集成我們接下來討論利用管理MLflow MLflow庫時默認安裝在集群。

Apache火花MLlib + MLflow集成

Apache火花MLlib用戶經常調整hyperparameters使用MLlib內置的工具CrossValidatorTrainValidationSplit。這些用網格搜索嚐試一組指定的hyperparameter值;看到火花文檔在調優更多信息。

磚運行時的5.3和5.3毫升以上支持自動MLflow跟蹤MLlib調優在Python中。

有了這個特性,PySparkCrossValidatorTrainValidationSplit將自動日誌MLflow,組織運行在一個層次結構和日誌hyperparameters和評價指標。例如,調用CrossValidator.fit ()將日誌一方。在這種運行下,CrossValidator將為每個hyperparameter設置,運行日誌一個孩子,每個孩子將包括hyperparameter設置和運行評價指標。比較這些運行MLflow UI有助於每個hyperparameter可視化優化的效果。

https://www.youtube.com/watch?v=DFn3hS-s7OA

在磚運行時的5.3和5.3毫升,自動跟蹤在默認情況下不啟用。打開自動跟蹤,設置火花配置spark.databricks.mlflow.trackMLlib.enabled“真正的”。與5.4版本中,自動跟蹤默認情況下是啟用的。

查看文檔(AWS|Azure)開始!

分布式Hyperopt + MLflow集成

Hyperopt是一個流行的開源hyperparameter調優庫與強大的社會支持(600000 + PyPI下載,3300 +明星Github截至2019年5月)。數據科學家使用Hyperopt因其簡單性和有效性。Hyperopt提供了兩種優化算法:隨機搜索和Parzen估計的貝葉斯方法樹,提供改善計算效率比蠻力方法,如網格搜索。然而,分發Hyperopt之前沒有工作的,需要手工設置。

在磚運行時的5.4毫升,我們介紹一個實現Hyperopt由Apache火花。使用新的試用SparkTrials,您可以輕鬆地分發Hyperopt運行不作任何更改當前Hyperopt api。你隻需要通過的SparkTrials類在應用hyperopt.fmin ()函數(參見下麵的示例代碼)。此外,所有優化實驗,連同他們的hyperparameters和評估指標,自動記錄到MLflow磚。有了這個特性,我們的目標是提高效率,可伸縮性和簡單hyperparameter優化工作流程。

查看文檔(Azure|AWS)開始!

#新SparkTrials類分配調優< b > spark_trials = SparkTrials(並行=24)< / b >
              fmin (fn =火車,#方法訓練和評估模型空間= search_space,#定義hyperparameters空間算法= tpe.suggest,#搜索算法:樹Parzen估計max_evals =8,# hyperparameter設置嚐試show_progressbar =,
              試驗= < b > spark_trials < / b >)

結果可以使用工具,如平行坐標可視化情節。在下麵的圖中,我們可以看到最好的深度學習模型(最低)損失被訓練使用中型到大型批量大小、中小學習速度,和各種動力設置。注意,這個情節是由手通過情節,但MLflow將提供本機支持平行坐標圖在不久的將來。

在磚,我們擁抱開源社區和api。我們正在與Hyperopt社區貢獻這個Spark-powered實現開源Hyperopt。請繼續關注。

開始吧!

更多地了解一般hyperparameter調優:

了解更多關於MLflow,看看這些資源:

開始使用這些特定功能,看看下麵的文檔頁麵及其嵌入式例子筆記本。和新的磚運行時的5.4毫升試用版本。

  • 對於MLlib用例,看看MLlib +自動MLflow跟蹤文檔(AWS|Azure)。
  • 對單機Python毫升用例(如scikit-learn,單機TensorFlow),看看分布式Hyperopt +自動MLflow跟蹤文檔(Azure|AWS)。
  • 為non-MLlib分布式毫升用例(例如,HorovodRunner)看MLflow的例子添加跟蹤Hyperopt和其他工具。
免費試著磚

相關的帖子

看到所有數據科學和毫升的帖子
Baidu
map