iT邦幫忙

2024 iThome 鐵人賽

0
AI/ ML & Data

從「這次不會壞吧」到自動化的未來:從 DevOps 到 MLOps,改造模型佈署之旅系列 第 18

從「這次不會壞吧」到自動化的未來:18 模型版本控制 - MLflow

  • 分享至 

  • xImage
  •  

相較於 Tensorboard 與 Weight&Biases,MLflow 更著重於「公司內部的多人專案」的實驗管理上,主要讓工程師自己建立屬於公司內部的 MLflow 伺服器。MLflow 著重在三個面向:專案、數據追蹤、模型,它可以使中小型團隊在免費的情況下輕鬆管理每個專案、實驗與模型,MLflow 一樣有可視化的參數比較,也有搜索模型的功能,可以協助團隊在眾多的實驗底下,找出評估指標最優秀的模型。

如下圖所示:Experiments 可以是團隊正在進行的專案,中間區域是該專案底下的各種實驗,可以紀錄實驗日期、實驗者、模型指標…等等,可以透過 “Sort” 找出評估指標最好的模型。

https://ithelp.ithome.com.tw/upload/images/20241101/2016947560PLIeWFRx.png
圖片:Mlflow ui 介面

往下點擊每個實驗,可以觀察到紀錄的參數,從Metrics往下點擊可以可視化數值,在Artifacts可以儲存本次實驗的環境需求與模型,方便之後復刻(追蹤)結果與模型部署。

https://ithelp.ithome.com.tw/upload/images/20241101/20169475FDRMoF0wwU.png
圖片:Mlflow 實驗紀錄

** 注意如果要使用MLflow儲存模型(Artifacts)建議串接資料伺服器(s3, minIO….)

如何在Python開發環境使用,以及程式碼需要如何撰寫:

  1. 工具安裝:
    pip install mlflow

  2. 本地端啟動:
    在終端機輸入:mlflow ui

  3. 程式碼撰寫:(以一個簡易的資料做示範)

    • MLflow 追蹤位置 :mlflow.set_tracking_uri("http://127.0.0.1:5000")
    • 依據不同資料的形式寫入 MLflow
      • 參數:log_param()
      • 評估指標:log_metric()
      • 檔案類型:log_artifacts()
import os
from random import random, randint
import mlflow
from mlflow import log_metric, log_param, log_params, log_artifacts
mlflow.set_tracking_uri("http://127.0.0.1:5000")
if __name__ == "__main__":
    # Log a parameter (key-value pair)
    log_param("config_value", randint(0, 100))

    # Log a dictionary of parameters
    log_params({"param1": randint(0, 100), "param2": randint(0, 100)})

    # Log a metric; metrics can be updated throughout the run
    log_metric("accuracy", random() / 2.0)
    log_metric("accuracy", random() + 0.1)
    log_metric("accuracy", random() + 0.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")

https://ithelp.ithome.com.tw/upload/images/20241101/20169475UEZf1sfMJ5.png
圖:MLflow 範例

  • 上面範例簡單完成將實驗數據寫入MLflow中,大家可以嘗試在目前的專案中加入MLflow輔助紀錄實驗數據。
  • MLflow 的功能基本上與Weight&Biases相同,但MLflow如果要讓團隊統一開發使用的話,需要自建伺服器包含結構化資料庫與檔案資料庫;且長期使用上,需要團隊定期維護。
    結論

參考文獻
1.初探mlflow-tracking-保持ml實驗的可追溯性與可重現性-
2.Weights & Biases — ML 實驗數據追蹤

(撰稿工程師:顧祥龍)
完整內容 >> https://bit.ly/4huT5Li
Line 官方帳號,看最新技術文章:https://user137910.pse.is/aif2024ironman


上一篇
從「這次不會壞吧」到自動化的未來:17 模型版本控制 - Weight&Biases
下一篇
從「這次不會壞吧」到自動化的未來:19 所以模型版本控制工具怎麼選?
系列文
從「這次不會壞吧」到自動化的未來:從 DevOps 到 MLOps,改造模型佈署之旅19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言