AutoForge 開發路線圖(一人開發版)¶
每個階段的固定流程:寫規格 → 寫測試 → 實作 → 用真實資料跑一次 → 更新文件 → 打 tag。 一個階段的驗收標準全部通過,才進入下一階段。
| 階段 | 內容 | 交付物 | 驗收標準 | 預估 |
|---|---|---|---|---|
| P1 骨架 ✅ | 專案結構、CLI、Schema、硬體偵測、隱私守衛 | autoforge doctor --json、autoforge schema |
正確偵測 NVIDIA GPU/CUDA;無 GPU 時回報 CPU;測試全過 | 1 週 |
| P2 方法包系統 ✅ | pack.yaml 格式、本地/GitHub 安裝、索引搜尋、驗證 | autoforge pack search/install/list/validate |
從 GitHub 安裝並鎖定 SHA;格式錯誤的包被拒絕 | 1–2 週 |
| P3 執行引擎 ✅ | Run 生命週期、子行程、checkpoint、控制通道、稽核 | W1 兩個方法包(表格、文字分類) | 手寫 Plan 就能跑完訓練→評估→存模型;pause/resume/stop 正常 | 2–3 週 |
| P4a MCP Server ✅ | 把 Core API 包成 MCP 工具 | autoforge mcp |
Claude Desktop/Code 透過訂閱完成一次端到端訓練 | 1 週 |
| P4b 內建 Agent ✅ | API 與本地模型的 Agent 迴圈 | autoforge train "需求" --data x --brain ollama:qwen |
10 個測試案例中 ≥8 個選出合理方法;敏感資料只允許本地 | 2 週 |
| P5 回饋迴圈 ✅ | 指標監控、診斷、Optuna、自訂程式撰寫 | run_adjust、hpo |
自動調參後指標優於初次訓練 | 2 週 |
| P6 部署 ✅ | 模型倉庫、匯出、推論 API、模型變 MCP 工具 | autoforge serve <model> |
訓練好的模型能被其他 AI 透過 MCP 呼叫 | 1–2 週 |
| P7 擴充 🔄 | W2–W6 方法包、pack_generate_from_repo |
更多方法包 | 每個包都附 KNOWLEDGE.md 和煙霧測試 | 持續 |
| P8 GUI ✅ | 網頁介面(呼叫 REST API) | autoforge gui |
不碰指令列也能完成一次訓練 | 3 週 |
| P9 發佈 ✅ | PyPI、Docker(CUDA image)、文件站 | v1.0 | 乾淨機器上 pip install 後 5 分鐘內跑完範例 |
1 週 |
一人開發的建議¶
- 每個階段先完成「最窄但能端到端跑通」的版本,再加寬功能。
- P3 完成前不寫任何 LLM 相關程式。先確定引擎不靠 AI 也正確,之後 AI 出錯時才分得清是誰的問題。
- 方法包的煙霧測試必須能在 CPU 上 30 秒內跑完,CI(GitHub Actions)才跑得動。
實作備註¶
- P9:驗收結果:在乾淨的
python:3.12-slim和python:3.11-slim容器(沒有 git)裡,pip installwheel 加上autoforge quickstart總共 63 秒。測試中發現沒有 git 就裝不了方法包,已改成沒有 git 時直接從 GitHub 下載 commit 的 tarball。CPU Docker 映像實測可以跑 quickstart 和 GUI。PyPI 名稱autoforge已被不相關的專案使用,autoforge-ai又因為和既有的autoforgeai太相似被 PyPI 拒絕,autoforge-ml則在發佈前被別人註冊,所以改用autoforge-trainer(1.0.2 起)。正式發佈(PyPI、GHCR、GitHub Pages)需要做一次設定,見 docs/RELEASE.md。 - P8:驗收結果:Playwright 用真的 Chromium 跑完上傳 → 選任務 → 選方法(從 GitHub 索引自動安裝)→ 訓練 → 註冊 → 預測 → 自動調參,過程中沒有 JavaScript 錯誤。AI 代理的對話介面已在 1.2.0 加進 GUI(「AI 助手」頁面,多輪對話、在頁面上同意訓練)。
- P7(第一批):新增 text-classification、llm-finetune(LoRA/QLoRA)、image-classification、timeseries-forecast、anomaly-detection,加上 tabular-classic 共 6 個方法包,每個都有 KNOWLEDGE.md 和煙霧測試。GPU 方法用極小模型在 CPU 上驗證過程式路徑,但尚未在真的 NVIDIA GPU 上跑過(QLoRA 的 4-bit 路徑只能在 GPU 驗證)。另有
pack new骨架、pack test、MCPpack_create(AI 把 GitHub 專案轉成方法包)、GitHub Actions CI。 - GPU 驗證(1.4.0 / 1.4.1):
autoforge eval gpu在 RTX 4060 Laptop(8 GB、Windows 11)實測:1.4.0 是 10 項中 9 項通過(唯一的失敗是 VRAM 誤判),修正後 1.4.1 的 quick 等級 10 項全部通過,Whisper 用真的語音 WER 0.079(結果見 docs/GPU.md)。full 等級(需要 12 GB 以上)還沒測。 - P7(第二批,1.1.0):新增 object-detection、image-segmentation、embedding-finetune、speech-recognition、llm-preference(DPO)、diffusion-lora、reinforcement-learning、recommendation 共 8 個方法包,timeseries-forecast 加上多序列共用模型,合計 14 個方法包。每個都有 KNOWLEDGE.md 和 CPU 冒煙測試(極小模型、合成資料);推薦、強化學習、多序列預測另外跑過完整流程(訓練 → 註冊 → 預測)。GPU 路徑(混合精度、QLoRA、大模型)尚未在真的 NVIDIA GPU 上驗證。
- P6:驗收結果:用 stdio MCP 客戶端(和 Claude Desktop 相同的連線方式)呼叫
autoforge serve-mcp的predict_churn,預測結果正確。每次訓練會保存方法包程式碼的快照,模型永遠用訓練它的那份程式碼來預測。 - P6:LLM 類模型的 OpenAI 相容推論端點、GGUF 匯出,等 W2(LLM 微調方法包)時一起做。
- P5:驗收結果:churn 範例的 random_forest 調參 20 次後,f1_macro 從 0.679(基準)提升到 0.731。每個 trial 用同一份驗證資料打分再挑最佳,所以這個分數偏樂觀;保留測試集或交叉驗證列入後續評估工作(P6 前)。
- P5:訓練中途改參數已完成(
run adjust+ctx.check_updates()),需要訓練程式配合呼叫。 - P4b:代理和 MCP 共用同一套工具(在同一個行程內透過 MCP 客戶端呼叫),沒有重複實作。Claude 用官方 SDK;OpenAI、Ollama、vLLM 等用 OpenAI 相容 API。
- P4b:驗收標準「10 個案例中 ≥ 8 個選出合理方法」的評估工具已完成(1.3.0,
autoforge eval agent,13 個案例,見 docs/AGENT.md);需要用真的模型(API 金鑰或較大的本地模型)跑一次並記錄結果。 - P4a:隱私守衛依 actor 判斷大腦類型(
ai:local:*視為本地模型)。MCP 路徑由伺服器設定的 actor 決定,AI 無法自行更改;CLI 則信任使用者宣告的--actor。 - P4a:Claude Desktop/Code 的實機連線待使用者驗證;自動化測試用同一個 MCP SDK 的 stdio 客戶端完成了完整流程。