MLflow
Sep 19, 2021
ML模型開發目前所遇到困難點,主要有以下幾個原因,所以才創造出MLflow
- 要持續記錄的環境
- 要持續紀錄自己的變數更改、結果等等
- 和多人實作時,別人使用你的model
MLflow是一個開源的管理平台,包含四大核心功能:
- Tracking:追蹤紀錄實驗數據、比較參數組合和模型效果
- Project:打包整個機器學習專案,使其即使在不同環境、不同專業的人手中,皆可重用、重現
- Model:方便在不同平台環境,用相同的方式管理及部署來自不同ML libraries的模型
- Model Registry:將模型的訓練過程、迭代產出,儲存並中心化集中管理,包含版本控制、測試與正式環境切換、標記註記。
🌟其他Key Concepts:
Parameters
:key-value input,調參數
Metrics
: numeric values,要記錄的指標
Artifact
: files, data, and models
Source
: what code ran
實作
下載mlflow
pip install mlflow
接著先使用官網的範例
import os
from random import random, randint
from mlflow import log_metric, log_param, log_artifactsif __name__ == "__main__":
# Log a parameter (key-value pair)
log_param("param1", randint(0, 100)) # 紀錄metric為foo
log_metric("foo", random())
log_metric("foo", random() + 1)
log_metric("foo", random() + 2) # Log an artifact (output file)
if not os.path.exists("outputs"):
os.makedirs("outputs")
with open("outputs/test.txt", "w") as f:
f.write("hello world!")
log_artifacts("outputs")
觀看Tracking UI
mlflow ui
之後就可以在 http://localhost:5000 觀看,結果如下
會幫你記錄每一次的結果,可以看到運行3次不同的結果
如果你要比較3次結果也可以直接將其勾選,然後點選compare!
他還會幫你繪製出3次數據的比較圖
旁邊的X,Y軸也可以更改是要以foo1還是foo2來觀看
Ref.