iT邦幫忙

2025 iThome 鐵人賽

DAY 30
2
AI & Data

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

Day 30 – 專案總結與未來展望 — 從快速原型到系統化推薦架構

  • 分享至 

  • xImage
  •  

🎯 本日目標

經過 30 天的學習,我們從「零」開始,
一步步完成了一個能被追蹤、能部署、能互動的 企業級推薦系統原型

今天,我們要回顧整個旅程,並談談未來的發展方向。
這個系列的重點不只是模型,而是學會如何把機器學習應用落地成產品


🧭 一、全專案架構總覽

我們最終建構出以下完整的 MLOps 環境:

+------------------------------------------------------+
| Docker Compose (mlops-net)                           |
|  +-------------+                                     |
|  | Streamlit   | → 使用者互動 / A/B Test              |
|  +-------------+                                     |
|         ↑                                            |
|  +-------------+      +--------------+               |
|  |   FastAPI   | ---> |  PostgreSQL  |               |
|  +-------------+      +--------------+               |
|         ↓                                            |
|  +-------------+                                     |
|  |   MLflow    | ←→ Models / Artifacts               |
|  +-------------+                                     |
|         ↑                                            |
|  +-------------+                                     |
|  | python-dev  | → 模型開發                           |
|  +-------------+                                     |
+------------------------------------------------------+

✅ 每個模組的功能:

  • MLflow:追蹤模型訓練、版本與部署
  • PostgreSQL:作為 MLflow 的 backend store
  • FastAPI:模型推論與行為紀錄 API
  • Streamlit:提供使用者操作介面、A/B 測試與報表分析
  • Docker Compose:一鍵啟動所有服務,快速重現整套環境

🧩 二、30 天的學習路徑回顧

階段 主題範圍 範例章節 重點
📘 專案導入 Kaggle 動畫資料集 + 專案目標 Day 1–4 從資料到初步清理與 EDA
🧠 模型構建 User-based / Item-based 推薦模型 Day 5–8 使用 MLflow Tracking 追蹤訓練
🧾 模型管理 MLproject 與 Model Registry Day 9–11 模型簽名、版本、Production 階段
⚙️ 自動化訓練 Optuna / Pipeline Day 12–15 參數搜尋與 Pipeline 優化
🌐 API 化 FastAPI 部署模型 Day 21–25 建立 /recommend/log-ab-event
💻 前端整合 Streamlit 使用者互動 Day 26–27 使用者輸入動畫名稱 → 模型推薦
🧪 A/B 測試 隨機分流與 CTR 分析 Day 28–29 真隨機推薦 + 正負樣本紀錄
🏁 最終整合 全容器化架構與回顧 Day 30 模組協作、展望未來

在這 30 天的學習中,我們以最簡化的設計完成了推薦系統:

  • 模型訓練以 Notebook 為主,讓讀者能直接體驗流程;
  • API 僅用幾個 核心端點 展示推論與紀錄;
  • 所有元件都在本地 容器化運行,可一鍵啟動。

這樣的取向能讓任何人快速搭起一個可運作的推薦系統雛形。


🧠 三、這 30 天的成果與意義

經過完整系列,我們已具備:

  • ✅ 模型的追蹤與版本管理能力
  • ✅ 模型上線推論服務(FastAPI)
  • ✅ 前端展示與互動操作介面(Streamlit)
  • ✅ 行為紀錄與分析流程(A/B Test)

這是一個「從模型到產品」的最小可行架構 (MVP, Minimum Viable Product)。
雖然簡單,但足以讓團隊理解「模型在產品生命週期中如何被使用與改進」。


🏗️ 四、下一步的系統化與強化方向

筆者期許在這 30 天的分享之後,
能將這套原型系統進一步「系統化」、「模組化」,並持續延伸成完整的企業級 MLOps 專案。

未來的幾個方向包括:

強化方向 說明
🧩 模組化模型訓練流程 把目前的 notebook 改成 Python module,清楚區分資料處理、訓練、評估、註冊階段
⚙️ API 架構重整 重新設計 FastAPI 架構,拆分 router、service、repository 層,提升可維護性
📦 Log 管理升級 ab_events.csv 改為 PostgreSQL / BigQuery 儲存,支援更高頻事件量
🧠 MLflow + LLM 混和推薦 建立能混合 ML 模型與 LLM 推理的 Hybrid Recommender(例如:結合語意搜尋 + 協同過濾)
🚀 自動化部署 以 CI/CD Pipeline 部署至雲端環境(Render / AWS ECS / Azure App Service)

這些延伸都會讓系統更具彈性與真實應用價值。


💬 五、個人期許與感謝

在這 30 天中,我們選擇了最簡化的方式完成所有核心功能——
不依賴複雜的外部套件,也不走工程化極致路線,
目的是讓每位讀者都能在最短時間內「真的跑出一個推薦系統」。

筆者期許在接下來的階段,
能整合並系統化整個專案結構,
以模組化的訓練流程、優化的 API 架構、
搭配 MLflow 實現 LLM + ML 模型的混合式推薦系統

感謝每一位一路參與到這裡的讀者 🙏
如果你對這系列有任何建議、想法或反饋,
都非常歡迎與我分享。
每一份回饋,都是我繼續創作與改進的動力,也是這 30 天最寶貴的收穫。
也歡迎繼續追蹤本次系列所使用的Repo,相關更新也會再跟各位分享。
https://github.com/JoshuaChen40/mlflow-fastapi-zero-to-prod


感謝你一起完成這趟旅程,
未來見,讓我們在更完整的系統架構中再次相遇。
🚀


上一篇
Day 29 – 雙模型比較與真隨機分流
系列文
從0開始的MLFLOW應用搭建30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
小田
iT邦新手 4 級 ‧ 2025-10-14 18:09:22

恭喜 Josh 完賽!

/images/emoticon/emoticon02.gif

0
Nikki Chen
iT邦新手 5 級 ‧ 2025-10-14 22:13:52

恭喜 Josh !
/images/emoticon/emoticon32.gif

我要留言

立即登入留言