做過傳統 MLOps 的團隊,對模型發布的基本責任並不陌生
LLM/Agent的發布沒有讓這些原則失效,卻把發布的對象變大了。
模型行為不只由權重決定,還受到 Tokenizer、對話模板、提示詞、RAG 索引、工具規格、解析器與推論引擎影響;Agent 更可能跨多輪保存狀態,甚至真的退款、寄信或寫入資料。
因此,LLMOps 不是替 MLOps 換一個名字,而是把同一套發布紀律套用到更大的「AI 系統發布版本」。它必須能重建、能驗證、能漸進導入流量,也知道如何整組回退。
現在回到我們一路從 SFT、LoRA、DPO 走到 Online RL 後得到的候選模型。
離線測試顯示,它更符合品牌語氣,退款說明也更完整;但原本 99% 的 Tool Calling 成功率掉到了 94%。平均分數仍然高於基礎模型,該不該上線?我的答案是:先不要。
品牌語氣的進步,不能抵銷退款工具的錯誤呼叫。我們面對的已經不是「哪個 Checkpoint 分數比較高」,而是「哪一整組系統元件有資格接手正式流量」。
這就是模型客製化最後一個容易被忽略的環節:
訓練只能產生候選模型;發布流程才有權決定它能不能取代現行版本。
我們可以先用四個狀態理解模型如何走進正式環境。這不是跨平台標準,而是一個用來釐清責任的心智模型。
| 狀態 | 代表什麼 | 還不能做什麼? |
|---|---|---|
| Checkpoint | 訓練過程保存的一份模型產物 | 不能因為某次分數較高,就直接接手流量 |
| Candidate | 綁定必要相依元件、等待驗收的候選版本 | 尚未取得正式流量的使用資格 |
| Canary | 已通過離線門檻與回退演練,正以受控流量驗證 | 尚未證明能在完整流量下穩定運作 |
| Stable | 通過漸進發布與觀察,成為目前穩定版本 | 仍須持續監控,並保留可回退版本 |
這四個狀態代表的不是檔名,而是逐步增加的證據。訓練曲線可以協助挑選 Checkpoint,卻不能授權正式流量;Model Registry 可以保存 Candidate,卻不能證明它已經安全。只有離線驗收、Canary 觀察與回退能力都成立,候選版本才有資格成為 Stable。
Checkpoint 是模型產物;發布版本則是鎖定相依關係、通過驗收,而且知道如何回退的系統版本。

一個微調後模型真正開始服務請求時,行為並不只由權重決定。
Tokenizer 會把輸入轉成 Token;對話模板會加入角色與控制符號;提示詞會補上產品規則;工具規格與解析器會把模型輸出轉成工具呼叫;量化格式、推論引擎與硬體則共同影響輸出、延遲與容量。
Hugging Face 的 PEFT 格式就是很直接的例子:Adapter Checkpoint 只保存 Adapter 參數,還需要正確的基礎模型與設定才能還原。Transformers 的對話模板文件也提醒,即使模型來自同一個基礎模型,不同微調版本仍可能使用不同的控制 Token;套錯模板,表現可能明顯下降。
目前並沒有跨平台公認的 LLM 發布清單標準。不過,只要某個元件會影響正式請求的輸入、輸出、安全或資源占用,它就應該被綁進同一個發布版本:
AWS 在 2025 年發布的生成式 AI 生命週期實務,已把提示詞、模型設定、應用程式與評估資料視為同一份不可變的完整快照。這不是跨平台標準,卻反映出近年的共同方向:發布紀錄要能重建當時真正服務使用者的整套系統。
MLflow Model Registry 可以保存版本、來源執行紀錄、介面簽章、別名與標籤;SageMaker Model Registry 也能管理模型套件與批准狀態。但模型登錄庫只提供版本與升級控制的基礎,不會自動知道提示詞、工具規格、安全規則與成本門檻是否合格。
另一個常見陷阱,是直接以 latest、champion 或 stable 這類別名啟動服務。別名可以移動,適合表示「目前推薦版本」,卻不能作為事故重建的唯一依據。部署紀錄仍要把別名解析成不可變的 Revision 或 Digest,否則同一份設定在不同時間可能載入不同內容。
這是本文第一個重要觀念:真正需要發布與回退的,不是權重,而是這一整組相容性契約。
到了發布階段,最危險的做法是把所有指標加權成一個總分。
假設品牌語氣進步 8 分,Tool Calling 退步 5 分,總分仍然增加 3 分。數學沒有錯,但這個加法隱藏了一個重要事實:語氣與退款工具的風險不能交換。
更實用的心智模型,是把發布條件分成三種門檻:
生成結果具有非決定性,關鍵案例也不能只測一次。實務上應固定取樣設定,對安全與高風險工具案例重複執行,保存成功率分布與失敗樣本。需要多少次取樣取決於風險與事件發生率,沒有一個適用所有系統的魔法數字。
這裡不是要重講 Evaluation,而是把評估結果改寫成真的可以阻止發布的條件。
ICLR 2024 的研究顯示,即使使用者沒有刻意進行惡意訓練,一般微調仍可能讓既有安全行為退化。這不代表每次微調都一定發生同樣程度的問題,但足以支持一項發布原則:基礎模型通過的安全驗收,不能直接繼承給微調後模型。
Tool Calling 也不該只看 JSON 能不能解析。Berkeley Function Calling Leaderboard 會分別檢查函式選擇、參數、沒有適合工具時的判斷、多工具與多輪任務。企業自己的發布門檻還要加入 Sandbox 執行結果與最終狀態,因為格式正確不等於退款真的正確。
所以開頭案例的答案很清楚:品牌語氣確實改善,卻在關鍵 Tool Calling 上違反「不得退步」的門檻。這不是 8 分能不能抵銷 5 分的問題,而是候選版本尚未取得發布資格。
Tool Calling 從 99% 掉到 94%,第一個反應不應該是立刻重新訓練。先確認比較的是否真的是「只換模型」的實驗。
新版可能搭配不同的對話模板,讓工具定義被放到錯誤位置;解析器可能不認得新的輸出格式;工具規格也可能同時更改必填欄位、列舉值或函式名稱。這些都會讓結果下降,但問題實際上發生在發布版本的整合邊界,不一定是權重本身。
vLLM 的 Tool Calling 文件要求依模型選擇對應的解析器與對話模板,並列出部分模型在工具呼叫 ID、平行呼叫與參數型別上的限制。結構化輸出文件也顯示,API 欄位與後端能力會隨版本改變。
Qwen 的官方 vLLM 部署說明同樣要求搭配正確的推理/工具解析器與版本。這些例子共同說明了一件事:API 看起來相容,不代表模型行為真的相容。
因此,比較現行版本與候選版本時,要先固定實驗邊界:
這是第二個重要觀念:模型回歸與整合回歸需要不同修法。沒有先固定發布邊界,重新訓練可能只是修錯地方。
候選版本通過離線門檻後,仍不應一次接手全部流量。Shadow、Canary、A/B、Fallback 與 Rollback 經常被混成「先放一點流量看看」,實際責任卻完全不同。
| 機制 | 它要回答什麼? | 重要限制 |
|---|---|---|
| Shadow 影子部署 | 新版面對真實輸入時,行為、延遲與成本是否異常? | 輸出不回給使用者,也不應產生副作用;無法量測真實使用者反應 |
| Canary 漸進發布 | 新版如果出錯,能否把影響限制在少量流量? | 需要固定分流與自動停止條件;不是商業效果實驗 |
| A/B Test | 兩個已合格版本對使用者或商業結果有何差異? | 不能替未通過安全門檻的候選版本取得資格 |
| Fallback | 單筆請求失敗時,還能改走哪條安全路徑? | 可以是舊模型、規則或人工,不等於整版回退 |
| Rollback | 整個發布版本不合格時,如何回到上一個 Stable 版本? | 只能回退流量與行為,無法自動復原已發生的退款、寄信或資料寫入 |
AWS 的部署指引明確區分 Shadow、A/B 與 Canary;Seldon Core 2 也把分流給候選版本的流量,與只做 Mirror 的流量分開。名稱相似,不代表可以互換。
對 Agent 而言,Shadow 特別容易被誤用。若我們把正式退款請求複製給新模型,又讓它真的呼叫寫入工具,就可能造成雙重退款。實務上應改用既有工具回應、空操作、Sandbox 或專門的影子環境;但也必須承認,這些結果仍不等於真實副作用已被驗證。
Canary 則需要固定分流。同一段多輪客服對話若前一輪走舊模型、下一輪切到新模型,不只會污染比較,還可能讓工具狀態與對話假設不一致。因此應依 Session、租戶或其他穩定識別,把整段任務固定在同一個發布版本。

很多團隊是在出事後才第一次測試 Rollback。真正安全的順序應該相反:候選版本尚未接觸正式流量前,先證明上一個 Stable 版本可以重新載入。
有效的回退演練至少要確認:
這也是 2026 年 AWS Agentic AI Lens 的冪等執行實務所強調的方向:Agent 重試時,不能把同一個動作再做一次;工具使用的安全實務也把權限檢查放在執行層,而不是只依賴提示詞約束模型。
SageMaker Deployment Guardrails 可以在 Canary 觀察期間依 CloudWatch Alarm 自動回退;Argo Rollouts 也能根據 AnalysisRun 的成功或失敗條件繼續或中止。但工具只會執行團隊定義的規則,不會替我們決定什麼風險值得停止。
目前也沒有一組通用的 Canary 百分比、觀察時間或 Rollback 門檻。流量比例必須配合事件風險、樣本量、租戶與地區分布設定。樣本不足代表結果仍不確定,不是通過;等待時間到了,也不應自動升版。
把前面的概念收斂成實際流程,順序如下:
stable 別名。 只有樣本量、關鍵切片、觀察時間與停止條件都通過,才讓 stable 指向新的不可變版本 ID。發布期間還有一條底線:所有評估、指標與 Trace 都必須能對應到確切的發布版本 ID、流量分組與 Adapter Digest。2026 年的 OpenTelemetry 生成式 AI 語意慣例已開始涵蓋推論、Agent、Tool 與 MCP,但部分規格仍在演進,還不能當成完整且穩定的標準。團隊至少要先固定自己的版本 ID,讓系統知道哪一版出錯,並能自動停止或回退。
NVIDIA GenAI-Perf 會分開量測首個 Token 延遲、Token 間延遲、請求延遲與吞吐。2026 年發布的 MLPerf Endpoints v0.7 更把模型、軟體與硬體視為同一個受測系統,並同時觀察吞吐、互動速度、p95 首個 Token 延遲與併發量。
因此,服務門檻應使用真實的輸入與輸出長度分布,分開測試冷快取與暖快取,觀察不同併發量下的效能曲線,而不是拿單一平均延遲或最高 Tokens/s 宣布新版更快、更便宜。
模型從訓練走向正式環境,真正的演化不是檔名從 checkpoint 改成 final,而是證據逐步增加:Checkpoint 證明模型曾被保存;Candidate 證明相依元件已被鎖定;Canary 代表它正在接受受控流量驗證;Stable 才表示它已通過漸進發布。
所以 Day29 最值得記住的不是某一套模型登錄庫或 Canary 工具,而是這個發布順序:先固定發布單位,再建立不可抵銷的門檻;先證明退得回去,再讓新版接觸真實流量。

明天終於到了系列的最後一天啦!好期待!