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

如何顯示儀表盤使用MLflow搜索API模型指標

分享這篇文章

機器學習工程師和數據科學家經常訓練模型來優化損失函數。與梯度下降法等優化方法,迭代改進我們的損失,最終到達最低。你有沒有想過:我可以優化自己的生產力數據科學家?或者我可以直觀地看到我的訓練模型的進展的指標嗎?

MLflow允許您跟蹤培訓並提供開箱即用的可視化運行常見指標比較,但有時你可能需要收取額外的見解不受MLflow的標準可視化。在這篇文章中,我們將向您展示如何使用MLflow跟蹤你或你的團隊的進步在訓練機器學習模型。

MLflow跟蹤API讓你運行作為一個方便的搜索並返回結果熊貓DataFrame。我們將利用這一功能來生成一個指示板顯示的一個關鍵指標的改進(如平均絕對誤差(MAE)和將向您展示如何測量運行啟動每個實驗的數量和所有團隊的成員。

跟蹤表現最好的訓練

一些機器學習工程師和研究人員跟蹤模型精度的結果是一組電子表格、手工注釋結果hyperparameters和訓練集用於生產。隨著時間的推移,手工記賬可以麻煩來管理你的團隊成長和實驗運行相應數量的增加。

然而,當您使用MLflow跟蹤API,你所有的培訓中運行一個實驗記錄。然後使用這個API,您可以生成一個熊貓DataFrame的運行實驗。例如,mlflow.search_runs(…)返回pandas.DataFrame,您可以顯示在筆記本或者可以訪問單個列pandas.Series

運行= mlflow.search_runs (experiment_ids = experiment_id)runs.head (10)

使用MLflow API生成一個熊貓DataFrame運行任何實驗中,可以顯示在筆記本或pandas.Series可以訪問單個列。

使用這種編程界麵,很容易回答這樣的問題“迄今為止表現最好的模型是什麼?”

運行= mlflow.search_runs (experiment_ids = experiment_id,order_by = [“metrics.mae”),max_results =1)runs.loc [0]

使用熊貓DataFrame聚合和磚的筆記本的顯示改進功能,你可以想象在你的營收指標隨著時間的準確性。這個示例跟蹤優化美在過去兩周的進展。

earliest_start_time=(datetime.now ()- - - - - -timedelta(天=14).strftime (' % Y - % - % d ')recent_runs=運行[runs.start_time> =earliest_start_time]recent_runs [“運行時間”]=recent_runs.start_time.dt。地板上(頻率=' D ')best_runs_per_day_idx=recent_runs.groupby ((“運行時間”])[“metrics.mae”].idxmin ()best_runs=recent_runs.loc [best_runs_per_day_idx]顯示器(best_runs [[“運行時間”,“metrics.mae”]])

使用熊貓DataFrame聚合和磚筆記本的< em > < / em >顯示功能,你可以想象你的營收性能指標的改善。

如果您正在運行開源MLflow,您可以使用matplotlib而不是顯示功能,這是僅可在磚筆記本。

進口matplotlib.pyplot作為pltplt.plot (best_runs [“運行時間”],best_runs [“metrics.mae”])plt.xlabel (“運行時間”)plt.ylabel (“metrics.mae”)plt.xticks(旋轉=45)

與開源MLflow,您可以使用< em > matplotlib < / em >的< em > < / em >顯示函數可視化您的收入模型性能指標的改善。

測量實驗運行的數量

在機器學習建模中,營收指標改進並不是一個確定的實驗的結果。有時幾周的工作導致並沒有明顯改善,而在其他時間調整參數意外導致相當大的收益。在這樣一個環境,是很重要的衡量不是結果而是過程。

這個過程的一個措施是實驗的數量每天啟動運行。

earliest_start_time=(datetime.now ()- - - - - -timedelta(天=14).strftime (' % Y - % - % d ')recent_runs=運行[runs.start_time> =earliest_start_time]recent_runs [“運行時間”]=recent_runs.start_time.dt。地板上(頻率=' D ')runs_per_day=recent_runs.groupby ((“運行時間”])。()[[“run_id”]].reset_index ()runs_per_day [“運行時間”]=runs_per_day [“運行時間”].dt.strftime (' % Y - % - % d ')runs_per_day.rename ({“run_id”:“印數”},軸=“列”,原地=真正的)
              顯示器(runs_per_day)

使用MLflow搜索API跟蹤實驗運行任何用戶的總數。

擴展這個示例中,您可以跟蹤運行開始任何用戶的總數在更長一段時間。

運行=mlflow.search_runs (experiment_ids=experiment_id)runs_2019=[(runs.start_time=“2019-01-01”)]runs_2019 [“月”]=runs_2019.start_time.dt.month_name ()runs_2019 [“month_i”]=runs_2019.start_time.dt.monthruns_per_month=runs_2019.groupby ((“month_i”,“月”])。()[[“run_id”]].reset_index (“月”)runs_per_month.rename ({“run_id”:“印數”},=“列”,原地=真正的)
              顯示器(runs_per_month)

使用MLflow搜索API擴展跟蹤實驗運行由任何用戶的數量在較長一段時間。

創建模型性能指示板

使用上麵的顯示,您可以構建一個儀表板顯示你的許多方麵的結果。這樣的儀表板,計劃每天刷新,證明有用的作為一個共享顯示為即將到來的最後期限或在一個團隊衝刺。

超越手動跟蹤訓練模型

沒有跟蹤和測量運行和結果,機器學習建模和實驗可以成為混亂且容易出錯,尤其是當結果手動跟蹤電子表格,在紙上,或者有時不是。MLflow跟蹤和搜索api,您可以輕鬆地搜索過去培訓運行和構建儀表盤,讓你或你的團隊更有效率,並提供視覺進步你的模型的指標。

貢獻:馬克斯·艾倫是一個工程實習生MLflow工程團隊。
他去年實習期間,他實現了MLflow搜索API,我們證明在這個博客。

開始使用MLflow跟蹤和搜索api

準備開始還是自己試試?你可以看到這篇文章中的示例使用runnable筆記本AWSAzure

如果您是MLflow,閱讀1.6最新MLflow MLflow快速入門。生產用例,讀到管理MLflow磚上

免費試著磚

相關的帖子

看到所有工程的博客的帖子
Baidu
map