當我們在訓練各種模型時, 難免會有許多實驗性的參數、產出的模型、不同的資料來源, 隨著版本迭代越來越多, 過了一段時間回頭看之後卻發現當初最好的某一個實驗參數到底是啥啊? 模型去了哪裡? 用的數據集是哪些?
我想上述這些問題都是模型訓練的過程難免會遇到的問題, 除非我們有一套管理的SOP, 比如說: 雲端Excel, But…, 經過我們「人」就很容易漏失掉記錄, 為了避免這個問題, 我們需要一套好工具或者友善的平台幫我們把模型訓練的過程好好的管理一番, 而MLFlow就是其中一個好幫手, 今天就讓我們來好好的認識一下吧!
簡單來說就是讓我們的實驗可以有憑有據, 怎麼訓練出一個好的模型的過程都可以被記載, 並且快速用於下次的實驗, 試想我們過往在管理程式碼時, 也是透過Git來幫我們追蹤程式碼的修改過程, 對於協作來說非常的有幫助, 而AI時代的平台就需要MLFlow這樣的角色來幫我們追蹤與管理了! 這會讓我們有條有理的訓練與實驗, 減少因為漏失掉的紀錄所耗費的時間, 提昇模型產品化的效率。
大致上的模式就是啟動MLFlow的伺服器, 並在各個模型訓練的腳本中埋入追蹤的client端程式。
pip install mlflow
mlflow ui
啟動之後我們可以在 http://localhost:5000/ 看到這樣的畫面:
mlflow.set_tracking_uri("<http://localhost:5000>")
mlflow.set_experiment("check-localhost-connection")
with mlflow.start_run():
mlflow.log_metric("foo", 1)
mlflow.log_metric("bar", 2)
python test.py
今天我們簡單的介紹一下MLflow可以為我們帶來哪些好處, 並用一個簡單的範例來讓大家了解一下MLflow大致上的運作模式, 相信親手操作過一次之後概念會更加清晰, 歡迎動手做看看!