iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
生成式 AI

打造 AI 微調平台:從系統設計到 AI 協作的 30 天實戰筆記系列 第 10

[Day 10] 系統互動解析:從提交任務到完成結果

  • 分享至 

  • xImage
  •  

完整程式碼可在 GitHub 專案中找到:Finetune-30-days-demo / day-10


到目前為止,我們已經建立了:

  • Day 5:統一配置系統(避免參數散落)
  • Day 6:日誌與結果管理(讓實驗可重現、可比較)
  • Day 7:任務排程基礎(Celery + Redis)
  • Day 8–9:UI 與最小實驗追蹤系統

但這些還只是「零件」。
如果沒有整合,它們看起來就像是一堆可以用的積木,但讀者很難想像整個平台到底是如何運作的。

Day 10 的重點就是:把這些零件串起來,並透過 Docker Compose、序列圖與 log trace,清楚地描述「一個任務從提交到完成」的全過程。


本日設計

1. 配置集中化

  • 新增 .env.env.example,避免環境參數散落。
  • docker-compose.yml 全面改為 ${VAR} 引用,確保開發、測試、部署一致。

2. 系統整合

  • 透過 Docker Compose,一次啟動:

    • Redis(Broker + Backend)
    • Celery Worker(執行任務)
    • FastAPI(API 層)
    • Streamlit UI(前端操作)
  • Volume 掛載 results/ 與 DB,避免容器重啟資料遺失。

3. 過程可視化

  • Mermaid.js 序列圖 → 把「從提交任務到完成結果」的路徑畫出來。
  • Log Trace → 對應序列圖每個步驟,幫助開發者與使用者定位問題。

系統互動流程(Mermaid 序列圖)


📝 Log Trace 範例

這份日誌對應上方序列圖,可以幫助開發者理解每個步驟的發生時機。

[23:45:12] UI | INFO: 使用者提交任務 → 產生臨時 config.yaml
[23:45:12] API | INFO: 收到 /train → 提交 Celery 任務 task_id=f377898e
[23:45:12] Celery | INFO: 任務入隊 f377898e

[23:45:16] Worker | INFO: 開始訓練 → Epoch 1/5, val_acc=0.65
[23:45:36] Worker | INFO: 訓練完成 → acc=0.84, 保存到 results/
[23:45:36] DB | INFO: 寫入實驗記錄 experiment_20250905_234512
[23:45:36] Celery | INFO: 任務完成 SUCCESS

[23:45:38] API | INFO: /task/f377898e → SUCCESS
[23:45:38] UI | INFO: 顯示結果 → 準確率=84%, 耗時=20.2秒

Day 10 的核心在於「整合」。我們第一次把配置、任務排程、UI、資料庫這些零件真正串起來,變成一個能一鍵啟動、從提交到完成都可追蹤的系統。這讓平台從單純的實驗工具,進化為具備清晰互動流程的雛型。

更重要的是,這套設計降低了理解與協作門檻。就算是沒有寫過程式的新成員,也能透過序列圖與 log trace 快速掌握系統運作邏輯。這不僅替未來的 UI 優化、多租戶支援鋪路,也為後續遷移到 Kubernetes、加入監控與自動擴縮建立了基礎。Day 10 是專案真正邁向「平台化」的起點。


📎 AI 協作記錄:今日開發指令

請幫我建立一個 docker-compose.yaml,整合以下服務:
1. Redis:作為 Celery broker/backend。
2. Celery worker:連線到 Redis,執行訓練任務。
3. FastAPI:提供 /train 和 /task/{id} API。
4. Streamlit UI:提供提交任務與追蹤任務的頁面。

需求:
- 所有服務放在同一個 network 下。
- Redis 用官方 image。
- FastAPI、Celery、Streamlit 從本地程式碼 build。
- Volumes:results/ 掛載到本地,方便保存實驗結果。
- 啟動後的訪問路徑:
  - API: http://localhost:8000
  - UI: http://localhost:8501
  - Redis: localhost:6379

上一篇
[Day 9] 最小實驗追蹤系統:把結果放進 DB,查詢與比較
系列文
打造 AI 微調平台:從系統設計到 AI 協作的 30 天實戰筆記10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言