前一篇把正式環境的執行紀錄整理成可以訓練的資料:保留模型當時看得到的資訊,只讓值得模仿的動作參與訓練。
資料準備好之後,新的問題是:把這些示範交給 SFT,模型究竟會學到什麼?
以退款 Agent 為例,我們希望模型學會「先確認訂單與例外條款,再決定是否進入退款程序」。但訓練資料裡同時存在工具名稱、參數格式、客服語氣與固定操作順序。最後改變的可能是判斷能力,也可能只是輸出的外觀。
SFT 確實能讓模型建立新的行為傾向,甚至改善未見任務;但它不會自動分辨哪些模式是原則、哪些只是捷徑。要知道模型學會了什麼,不能只看訓練損失或原本的測試題,而要刻意改變資料中的表面線索,再觀察行為是否仍然成立。
一筆 Agent 訓練樣本可能包含使用者問題、工具說明、模型呼叫工具、工具回傳結果,以及模型最後的回答。訓練時,這些內容並不一定都要被模型學著輸出。
常見做法是把使用者問題與工具說明當成條件,只計算模型輸出部分的損失。工具呼叫可以是學習目標;工具回傳則由環境產生,通常只提供後續判斷需要的 Context,不應要求模型自行生成。
以退款案例來看,模型可能收到以下條件:
希望模型產生的目標則可能是:先查訂單,再用交易日期查詢正確版本的例外條款。SFT 會逐步提高這些目標 token 在相似 Context 下出現的機率。
這裡最重要的限制是:訓練損失只知道哪些 token 應該更容易出現,不知道團隊想教的是哪一條原則。
中國開源訓練框架 ms-swift Agent 的訓練設計,直接反映了這個現實。它可以把使用者輸入與工具回傳排除在損失之外,也能替工具呼叫、思考內容與最後回答設定不同權重。
這不是單純的資料格式設定,而是在決定模型實際收到哪些學習訊號。
因此,SFT 不是把整份操作手冊複製到模型裡,而是根據被選中的輸出,重新調整模型在不同情境下的回答機率。模型最後形成的是行為傾向,不是一條可逐字取回、保證執行的規則。

模型看得到的 Context 都會影響預測;真正直接提供梯度的,是被 loss mask 選中的輸出。
如果模型的訓練損失持續下降,我們能否判定它已經學會使用工具?Agent-FLAN 的實驗提供了一個很直接的反例。
研究團隊把 Agent 能力拆成格式遵循、推理、工具選擇與參數理解,再分別觀察訓練變化。他們發現,帶有固定 ReAct 與 JSON 結構的格式損失很快降到 0.04,內容損失仍在 0.54。換句話說,模型已經很會寫出「看起來像 Agent」的答案,卻還沒有同樣程度地學會答案裡的判斷。
團隊接著把訓練內容改寫成更接近自然對話的形式,減少模型對固定格式的依賴。在 Llama2-7B 的實驗中,T-Eval 提升 3.1 分,HotpotQA 提升 2.5 分。進一步依能力重新配置資料後,只使用 18.1M token,T-Eval 反而從 64.9 提升到 66.3。
另一個關鍵是負例。若訓練資料幾乎都是「提供工具,然後呼叫工具」,模型容易把呼叫本身學成預設反應。加入「有工具但不該呼叫」與「沒有可用工具」的樣本後,Agent-H 分數由 84.5 提升至 89.1,而工具任務表現維持在相近水準。Agent-FLAN
這組實驗支持的不是「自然語言一定優於 JSON」,而是三個更實用的判斷:
研究使用的是 Llama2 系列與特定 Agent 基準,數字不能直接套到今天的模型。不過,退款 Agent 的驗收仍可沿用相同思路:把「格式正確」「工具選擇正確」「參數正確」與「政策判斷正確」分開計分。否則漂亮的工具呼叫,很容易被誤認成完整能力。
另一個常見說法是,SFT 只是記住範例,不會產生真正的泛化。這也過度簡化了實驗結果。
FLAN 使用超過 1,800 個任務進行指令微調,並在未參與訓練的任務上改善 zero-shot、few-shot 與思維鏈表現。LIMA 則採取相反的資料策略:只用 1,000 組精選問答調整 65B LLaMA。
在 300 題人工測試中,評審認為 LIMA 與 GPT-4 平手或更好的比例為 43%,對 Bard 與 DaVinci-003 則是 58% 與 65%。這顯示底座已有足夠知識與語言能力時,少量一致的示範也能快速改變互動方式。FLAN、LIMA
但這兩組實驗不能合併成「少量或大量資料都會泛化」的結論。FLAN 的多樣性來自 1,800 個任務;LIMA 使用的是 65B 底座,而且分布外測試只有 20 題。它們共同支持的只有一件事:SFT 不必逐題背誦才會產生效果,但效果有多遠,取決於底座原有能力與資料覆蓋的變化。
但「在未見題目上得分」仍不等於「理解了背後規則」。2026 年 ICML 的 OpenAgent 研究,以 Qwen2.5-7B-Instruct 建立受控工具環境,使用 6,050 筆訓練資料與 880 筆測試資料。模型在封閉環境中逐漸接近滿分後,研究者才修改工具名稱、參數欄位、回傳格式、錯誤訊息、工具依賴順序與任務領域。
結果出現明顯落差。訓練 800 步的 SFT 模型面對「工具名稱相同,但說明已禁止使用」的語意陷阱時,相對封閉測試下降 50.4 分;面對工具重新導向下降 45.3 分;工具依賴順序反轉則下降 28.0 分。在無法完成且應停止的案例中,正確拒絕率只有 0.2%。
研究團隊再把約 30% 的訓練資料換成帶有工具名稱擾動、異常回傳與不可解任務的示範。相同測試下,前三類落差縮小到 4.1、5.3 與 9.8 分,正確拒絕率提高到 99.6%。OpenAgent
這不是證明某個 30% 比例適用所有系統。它真正指出的是:SFT 能否跨出訓練分布,取決於資料是否讓表面線索與真正的決策條件分離。
如果所有退款示範都呼叫名為 refund_order 的工具,模型可能記住名稱;若資料同時包含工具改名、舊工具停用、不同欄位表達與無法退款的情境,才有機會測出模型是否依照當下說明做決策。

任務不變、介面改變的測試,可以把語意能力與介面記憶分開。
SFT 的影響不一定只落在團隊關心的指標上。
2026 年刊登於 Nature 的研究,把公開人機對話中的模型回答改寫得更溫暖,再對 Llama、Mistral、Qwen 與 GPT-4o 共五種模型做 SFT。研究不是只比較兩種提示詞,而是真的產生新的微調模型;另外還建立使用相同對話、但改寫成冷淡語氣的控制組,以區分資料內容與溫暖表達的效果。
模型的溫暖程度在第二個訓練週期(epoch)大幅上升後趨於平緩,但四類問答任務的平均錯誤率增加 7.43 個百分點,相對增加約 60.3%。即使控制回答長度,錯誤率仍增加 6.99 個百分點。
當使用者先提出錯誤信念時,錯誤增加 11 個百分點;微調後的模型約多 40% 機率附和錯誤信念。使用相同內容的冷淡語氣控制組,則沒有出現同樣一致的退化。Training language models to be warm can reduce accuracy and increase sycophancy
值得注意的是,這些模型在 MMLU、GSM8K 與拒答測試上大致維持原有表現,只有部分模型出現明顯變化。若團隊只跑通用基準,可能會判定沒有能力回退,卻漏掉「更容易認同使用者錯誤前提」這種與目標行為相鄰的變化。
這類現象更適合稱為行為干擾,而不必全部歸為災難性遺忘。模型沒有全面失去知識,而是在特定互動條件下,更容易採取另一種回答策略。
退款 Agent 若要學得更積極、更有同理心,就不能只量測滿意度與語氣。還要測試它是否更容易接受使用者對政策的錯誤描述、略過必要澄清,或在證據不足時過早承諾退款。
訓練輪數增加、驗證損失開始變差,是否就該立刻停止?兩項 2026 年研究得到的結果放在一起看,答案並不簡單。
一項涵蓋 Qwen 與 Llama、四組正式環境資料、共 970 組有效訓練實驗的研究發現,驗證損失通常在第二個訓練週期左右降到最低,之後可能回升 40% 至 120%,任務評審分數卻仍持平或上升。
問題是其他能力正在退步。Qwen3-8B 在其中一項支援任務的 IFEval,從訓練兩個週期時的 0.73,降到八個週期時的 0.34;底座原本是 0.78。跨任務比較中,訓練目標提高 0.32 至 0.66,其他任務卻全部下降 0.05 至 0.44。The Post-Training Science of Supervised Fine-Tuning
這表示驗證損失回升,確實可能伴隨能力回退,卻不能告訴我們哪一個版本最適合部署。它只量測模型有多像同一套資料,沒有同時量測其他任務還剩多少能力。
另一項長思維鏈 SFT 研究甚至得到相反的表面現象。研究者固定總更新次數,比較「更多獨特樣本、較少重複」與「較少樣本、更多訓練週期」。在 OLMo3-7B 上,400 筆長思維鏈資料重複 128 個週期,相較 51,200 筆資料只訓練一個週期,在 AIME 2024、AIME 2025 與 GPQA 高出 12 至 26 個百分點。
另一組相同更新預算的比較中,1,600 筆資料訓練 32 個週期,三項基準平均準確率為 39%;51,200 筆資料訓練一個週期則為 17%。即使驗證損失已經上升,表現仍可能改善;直到訓練資料的 token 預測準確率接近 100%,提升才趨於平緩。
兩種策略都造成部分通用能力下降,但重複少量資料並沒有帶來更多災難性遺忘。Data Repetition Beats Data Scaling in Long-CoT Supervised Fine-Tuning
前一項研究顯示,專項表現進步時,相鄰能力可能持續下降;後一項研究則顯示,記住小型資料集也可能伴隨未見推理題進步。兩者並不矛盾,因為任務、資料與觀察指標都不同,而且目前都是 2026 年剛公開、尚待更多複現的預印本。
真正該放棄的是「看到某條 loss 曲線,就能直接判定模型好壞」的想法。
這些結果也提醒我們不要混用三個概念:
三者可能同時發生,也可能分開發生。只看訓練損失、驗證損失或訓練週期,都不足以判斷退款 Agent 是否可以部署。
綜合這些實驗,我會把 SFT 驗收拆成五個切面:
| 驗收切面 | 退款 Agent 要測什麼 | 想排除的錯誤結論 |
|---|---|---|
| 目標行為 | 是否更常先查正確版本的政策,再選擇工具 | 格式變好就代表任務變好 |
| 不行動能力 | 缺少資料、工具不適用時,是否澄清或停止 | 會呼叫工具就代表會判斷時機 |
| 介面變化 | 工具改名、欄位調整、回傳格式改變後是否仍正確 | 原測試集高分就代表理解工具 |
| 相鄰行為 | 是否更常附和錯誤前提、略過證據或過早承諾 | 目標指標提高就沒有副作用 |
| 保留能力 | 一般問答、既有流程與安全測試是否退步 | 平均分沒掉就沒有局部回退 |
此外,政策內容仍要由可更新、可追溯的來源提供;權限、交易上限、參數驗證與停止條件也仍由 Runtime 強制執行。SFT 可以讓模型更常做出正確選擇,不能把機率傾向變成不可違反的制度。
SFT 的成果不是模型把教材背得多熟,而是表面條件改變之後,想要的行為仍然成立,而且原本重要的行為沒有一起消失。
下一篇會繼續處理實作面的選擇:當學習目標與驗收方式都清楚後,為什麼許多團隊會使用 LoRA 或 QLoRA,而不是更新模型的全部參數;這個選擇又會如何影響訓練成本、部署方式與版本管理。

工程師:「格式、語氣、工具名稱,全都學會了。」
AI:「所以你要驗收的是退款判斷,還是我的制服穿得很整齊?」