
微調管線的 CI/CD:自動化訓練-評估-部署
手動微調無法擴展。學習如何構建一個完整的 CI/CD 管線,自動化微調模型的訓練、評估、晉升關卡和部署。
您的第一次微調是手動的。您手工整理數據,啟動訓練,憑感覺查看結果,轉換為 GGUF,加載到 Ollama,並自行測試。花了一天。也許兩天。
這種方法只適用一次。當您有四個客戶,每個客戶每月都要重新訓練,每個客戶有不同的評估標準,每個客戶都期望零停機時,這就行不通了 。手動微調在第二個客戶時就會崩潰。到第四個時,您花在流程上的時間比實際改進模型的時間還多。
解決方案與軟件工程幾十年前解決的相同:CI/CD。持續集成和持續部署,適用於微調管線。以下是如何構建一個的確切方法。
管線概覽
微調 CI/CD 管線有七個階段:
- 觸發 — 某些事件啟動管線
- 數據驗證 — 確認訓練數據乾淨且充足
- 微調 — 運行實際訓練任務
- 評估 — 針對您的測試套件運行模型
- 比較 — 與當前生產模型進行基準測試
- 部署 — 如果通過所有關卡,晉升新模型
- 監控 — 部署後觀察生產指標
每個階段都有明確的通過/失敗標準。如果任何階段失敗,管線停止並提醒您。在正常路徑上不需要人工干預。
選擇觸發器
並非每次管線運行都需要人工點擊「開始」。三種觸發器類型涵蓋了大多數場景:
定時觸發器 最適合穩定、可預測的工作負載。設置每月計劃。管線在每個月的第一個星期二運行,在積累的新數據上重新訓練,如果新模型更好就晉升。如果新模型不夠好,什麼都不改變。總人力投入:閱讀摘要電子郵件。
數據閾值觸發器 在積累了足夠的新訓練示例時觸發。設置一個閾值——比如 500 個新的已驗證示例——管線自動啟動。這對於每天都有新數據到來的高量應用效果很好。
品質閾值觸發器 是反應式的。您的監控系統偵測到生產準確率下降到 85% 以下。它觸發管線。模型在更新的數據上重新訓練,評估,如果能修復回歸就部署。這是您的安全網。
組合觸發器 是實際方法。大多數團隊將定時觸發器作為基準,將品質閾值觸發器作為安全網。每月定時重新訓練處理漸進式漂移。品質閾值觸發器捕捉突然的退化——比如產品更新在一夜之間改變了數據分佈。
一個重要規則:觸發器應該有冷卻期。如果品質閾值觸發器觸發並重新訓練,至少 48 小時內抑制額外的觸發器。否則您可 能面臨一個嘈雜的指標反復觸發重新訓練的循環風險。
第一階段:數據驗證
在花費計算資源進行訓練之前,驗證您的數據。這個階段捕捉會浪費數小時微調時間的問題。
量檢查:您是否有足夠的新示例?如果您每月重新訓練,但只積累了 12 個新示例,管線應該跳過這個週期。設置最低閾值——100 個新示例是一個合理的起點。
格式驗證:每個示例必須符合您的訓練架構。對於聊天微調,這意味著有效的 system/user/assistant 消息數組。對於補全任務,有效的輸入/輸出對。格式不正確的示例應該被標記和隔離,而不是靜默丟棄。
分佈檢查:將新數據的標籤分佈與現有訓練集進行比較。如果您的新批次有 90% 屬於一個類別,這是值得調查的信號。這可能是合理的(季節性轉移)或者可能表示數據收集錯誤。
去重:移除精確和近似精確的重複項。Jaccard 相似度在 0.95 以內的近似重複項應該被標記。重複的訓練示例會導致對這些特定模式的過擬合。
品質評分: 如果您對單個示例有品質指標(回應長度、格式合規性、人工評分),過濾掉低於品質閾值的示例。一個糟糕的訓練示例可以抵消十個好示例的好處。
如果驗證失敗,管線停止並發送詳細報告:有多少示例失敗、哪些檢查失敗,以及失敗的代表性樣本。您修復數據並手動重新觸發。不要自動修復——數據品質決策需要人工判斷。
第二階段:微調
有了經過驗證的數據,管線調用 Ertas 微調 API。這個階段很直接,因為困難的工作——超參數選擇、基礎模型選擇——在您最初的手動微調期間已經完成。
您的管線配置鎖定了訓練參數:
- 基礎模型:您手動驗證的同一個(例如 Llama 3.1 8B)
- LoRA 秩:您的驗證設置(通常 r=16 或 r=32)
- 學習率:您的驗證率(通常 2e-4)
- 輪次:固定或基於驗證損失的早停
- 訓練數據:現有 + 新驗證示例的合併集
關鍵洞察:您的 CI/CD 管線不應該在超參數上 進行實驗。那些實驗在開發期間進行。管線在更新的數據上運行經過驗證的配方。
訓練時間取決於數據集大小和模型。對於典型的 8B 參數模型,有 2,000-5,000 個示例,預計需要 30-90 分鐘。管線等待,輪詢完成,然後進入評估。
對一切進行版本控制。每次訓練運行應該產生帶元數據的版本化工件:數據集哈希、基礎模型版本、超參數和訓練時間戳。六個月後需要調試回歸時,您將想知道每個模型版本中確切包含了什麼。
# 示例工件元數據
run_id: ft-2026-02-26-001
base_model: llama-3.1-8b
dataset_hash: sha256:a4f8e2...
dataset_size: 3,847 個示例
lora_rank: 16
learning_rate: 2e-4
epochs: 3
training_duration: 47m
timestamp: 2026-02-26T04:00:00Z
第三階段:評估套件
這是大多數團隊投資不足的地方,也是大多數管線失敗應該被捕捉的地方。您的評估套件需要涵蓋四個維度:
準確率指標:針對您的保留測試集運行新模型。衡量特定任務的指標——分類的 F1、生成的 ROUGE 或人類偏好分數、結構化提取的精確匹配。您需要一個數字,而不是感覺。
回歸 測試:生產模型正確處理的 50-200 個精心整理的示例集合。這些是您的「絕對不能破壞」案例。如果新模型在其中任何一個上出錯,那就是回歸,需要調查。
延遲基準測試:運行 100 次推理調用並測量 p50、p95 和 p99 延遲。微調模型的速度不應比基礎模型慢超過 10%。如果是,那麼訓練或量化出了問題。
安全檢查:運行您的安全評估集——對抗性提示、邊緣情況、敏感話題。新模型必須通過每個安全檢查。沒有例外,沒有閾值。二元通過/失敗。
將所有評估結果存儲為工件。您將希望跨管線運行進行比較以發現趨勢。
第四階段:晉升關卡
評估產生數字。晉升關卡將這些數字轉化為部署/不部署的決定。以下是在實踐中有效的關卡:
| 關卡 | 標準 | 失敗時的操作 |
|---|---|---|
| 準確率 | 不低於生產模型準確率 | 阻止部署 |
| 準確率改善 | 改善 0.5% 以上或沒有回歸 | 允許但標記 |
| 回歸測試 | 100% 通過率 | 阻止部署 |
| 延遲 p95 | 在生產 p95 的 10% 以內 | 阻止部署 |
| 安全檢查 | 100% 通過率 | 阻止部署 |
| 模型大小 | GGUF 在生產模型大小的 5% 以內 | 警告 |
所有阻塞性關卡必須通過。如果任何阻塞性關卡失敗,管線停止,記錄失敗原因,並提醒團隊。模型被存檔以供調查,但不部署。
如果所有關卡通過,管線自動進行部署。不需要人工批准。這些關卡就是您的批准流程。
第五階段:部署
本地模型的部署遵循特定路徑:微調模型被量化為 GGUF,注冊為新版本,並推出。
GGUF 轉換:將微調的適配器或合併模型以您的目標量化水準(Q4_K_M 是一個穩固的默認值)轉換為 GGUF 格式。驗證文件有效且可加載。
金絲雀部署:不要立即切換 100% 的流量。從 5% 開始。將 5% 的請求路由到新模型,95% 到生產模型。監控 2 小時。如果指標保持,晉升到 25%。再監控 4 小時。然後晉升到 100%。
Ollama 整合:更新 Modelfile 以指向新的 GGUF。在 Ollama 中重新加載模型。驗證模型對煙霧測試提示的響應是否正確。
整個部署階段,不包括金絲雀監控窗口,需要不到 5 分鐘。金絲雀監控增加了 6 小時的自動觀察。
保留每個部署的模型版本存檔。存儲很便宜。能夠回滾到任何先前版本——不僅僅是直接先前的版本——在部署後幾天或幾週發現回歸時是無價的。