經過 30 天的學習,我們從「零」開始,
一步步完成了一個能被追蹤、能部署、能互動的 企業級推薦系統原型。
今天,我們要回顧整個旅程,並談談未來的發展方向。
這個系列的重點不只是模型,而是學會如何把機器學習應用落地成產品。
我們最終建構出以下完整的 MLOps 環境:
+------------------------------------------------------+
| Docker Compose (mlops-net) |
| +-------------+ |
| | Streamlit | → 使用者互動 / A/B Test |
| +-------------+ |
| ↑ |
| +-------------+ +--------------+ |
| | FastAPI | ---> | PostgreSQL | |
| +-------------+ +--------------+ |
| ↓ |
| +-------------+ |
| | MLflow | ←→ Models / Artifacts |
| +-------------+ |
| ↑ |
| +-------------+ |
| | python-dev | → 模型開發 |
| +-------------+ |
+------------------------------------------------------+
✅ 每個模組的功能:
| 階段 | 主題範圍 | 範例章節 | 重點 |
|---|---|---|---|
| 📘 專案導入 | 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 天的學習中,我們以最簡化的設計完成了推薦系統:
這樣的取向能讓任何人快速搭起一個可運作的推薦系統雛形。
經過完整系列,我們已具備:
這是一個「從模型到產品」的最小可行架構 (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
感謝你一起完成這趟旅程,
未來見,讓我們在更完整的系統架構中再次相遇。 🚀