MLflow

dongua afufu
Sep 19, 2021

--

ML模型開發目前所遇到困難點,主要有以下幾個原因,所以才創造出MLflow

  • 要持續記錄的環境
  • 要持續紀錄自己的變數更改、結果等等
  • 和多人實作時,別人使用你的model

MLflow是一個開源的管理平台,包含四大核心功能:

  1. Tracking:追蹤紀錄實驗數據、比較參數組合和模型效果
  2. Project:打包整個機器學習專案,使其即使在不同環境、不同專業的人手中,皆可重用、重現
  3. Model:方便在不同平台環境,用相同的方式管理及部署來自不同ML libraries的模型
  4. 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_artifacts
if __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.

https://mlflow.org/docs/latest/index.html

--

--

dongua afufu
dongua afufu

No responses yet