iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
AI & Data

從0開始的MLFLOW應用搭建系列 第 20

Day 20 – MLflow 全流程總整理

  • 分享至 

  • xImage
  •  

背景與目標

過去 19 天,我們從 0 開始,一步步完成了:

  • 環境建置(Docker + docker-compose)
  • 資料準備與 EDA
  • 建立 baseline 與 TF-IDF 模型
  • 模型追蹤 (Tracking)
  • 模型註冊 (Registry)
  • 模型解釋 (Explainability)
  • 模型部署 (Serving API)
  • 自動化 retrain (Day 19 – PopularTop10 隨機混合版)

👉 今天的目標是:

  • 梳理 MLflow 全流程
  • 繪製完整架構圖
  • 幫助讀者理解這些步驟如何串接
  • FastAPI 雙 API 架構(Day 21–25)做鋪墊

1. MLflow 四大核心功能

MLflow 的價值在於四大功能:

  1. Tracking (實驗追蹤)

    • mlflow.start_run() 紀錄每次訓練
    • Log params, metrics, artifacts
    • 方便比較不同 run
  2. Projects (封裝環境)

    • MLproject + conda.yaml 封裝環境,保證重現性
  3. Model Registry (模型註冊)

    • 每次 log 的模型可註冊到 Registry
    • 提供 版本管理 (v1, v2, …)Stage 流程 (Staging, Production, Archived)
  4. Model Serving (部署)

    • mlflow models serve 把 Registry 裡的模型直接變成 REST API
    • POST /invocations → 接收請求,回傳推薦結果

2. Day 11–19 的流程回顧

模型建構

  • Day 11 → PopularTop10 baseline
  • Day 12 → TF-IDF 模型 + Optuna 調參
  • Day 13–14 → Pipeline 封裝、加入 genre/type 特徵
  • Day 15 → 輸出統一格式,log artifacts
  • Day 16 → 模型解釋(單一樣本 + 全資料集)

模型註冊與部署

  • Day 17 → 註冊模型,設定 Stage = Staging,serve 成 API
  • Day 18 → 模型追蹤與部署總結
  • Day 19 → 自動化 retrain(熱門前 7 + 隨機 3),每次 retrain 都建立新版本,並自動 transition to Staging

3. 全流程架構圖

                ┌──────────────────┐
                │   Data Pipeline   │
                │ (ratings, anime) │
                └─────────┬────────┘
                          │
                ┌─────────▼──────────┐
                │   Model Training    │
                │ (Popular, TF-IDF…) │
                └─────────┬──────────┘
                          │
         ┌────────────────┼────────────────┐
         │                │                │
┌────────▼───────┐ ┌──────▼────────┐ ┌─────▼─────────┐
│ Tracking       │ │ Model Registry │ │ Artifacts     │
│ params, metrics│ │ v1, v2, Stage │ │ top10.json    │
└────────┬───────┘ └──────┬────────┘ └─────┬─────────┘
         │                 │                │
         │                 ▼                │
         │         ┌───────────────┐        │
         │         │ Serving (API) │        │
         │         │ /invocations  │        │
         │         └───────┬───────┘        │
         │                 │                │
         └─────────────────┼────────────────┘
                           │
                 ┌─────────▼─────────┐
                 │   Client (UI/API) │
                 │  FastAPI, Streamlit│
                 └────────────────────┘

4. MLflow 在推薦系統中的角色

  • 資料科學家:專注於訓練與實驗

    • mlflow.log_param, mlflow.log_metric
  • MLOps 工程師:管理版本與部署

    • MlflowClient().transition_model_version_stage
  • 應用工程師:直接使用 API 提供推薦

    • mlflow models serve/invocations

👉 這樣讓 從實驗 → 部署 → 應用 成為一條清晰的流水線。


5. 與 FastAPI 的銜接

Day 21 開始,我們會用 FastAPI

  • 把 MLflow Serve 的 API 包裝成更好用的接口

    • /recommend → 輸入動畫名稱,輸出推薦清單
    • /log-ab-event → 紀錄使用者點擊,用於 AB 測試
  • 這樣就能讓推薦系統成為 企業級應用,而不是只停留在 MLflow UI。


重點總結

  • MLflow 提供完整的 實驗追蹤 → 模型管理 → 部署 → API 流程。
  • Day 11–19 已經把推薦模型完整串起來,並實現了簡單的自動化 retrain。
  • Day 20 幫助我們把所有學過的拼圖放在一起,形成一張 全景圖
  • 下一步(Day 21–25),我們會學習 FastAPI,建立雙 API 架構,將 MLflow 的成果真正提供給前端與使用者使用。

上一篇
Day 19 – 自動化定期訓練模型(PopularTop10 隨機混合版)
下一篇
Day 21 – FastAPI 安裝與架構概覽
系列文
從0開始的MLFLOW應用搭建23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言