假設你告訴一個聊天模型:「接下來所有回答都用繁體中文,而且先給結論。」它從下一句開始照做。這看起來很像你剛剛「教會」了模型,但如果你關掉這次對話,換一個沒有帶入相同指令的新 session,模型未必還記得。原因很簡單:剛才改變的是模型這一次收到的輸入,不是模型本身的參數。
Training、fine-tuning 和 inference 最重要的差別,可以先看一件事:有沒有透過最佳化程序去更新模型參數。 Training 是讓模型從資料中調整參數的廣義過程;fine-tuning 是拿一個已經訓練過的模型繼續訓練,讓它更適合特定任務或行為;inference 則是訓練完成後,拿目前的模型去處理新的輸入、產生預測或文字。
先記一句:Training / fine-tuning 會改模型;inference 是使用目前這個模型。你在聊天框裡輸入 prompt,本身通常不會即時改掉模型權重。
Training 是真的在改模型裡的參數
大型神經網路裡有大量可調整的數值,通常叫做 parameters,也常被俗稱為 weights。模型剛開始訓練時,這些數值還沒有學會語言中的規律。訓練程序會把資料送進模型,計算輸出和目標之間的差距,再透過最佳化方法反覆調整參數,讓模型在訓練目標上的表現逐漸改善。
對大型語言模型來說,最早的大規模階段通常稱為 pretraining。模型在大量資料上學習預測 token、語言結構、概念關係與各種統計模式。這一階段會消耗大量運算資源,也是在塑造基礎模型能力的主要階段之一。
因此「模型看過很多資料」和「模型是一個資料庫」仍然是兩回事。訓練不是把每一篇文章完整塞進某個可直接查詢的欄位,而是利用資料改變參數。這也是為什麼模型可能學到某些規律,卻無法可靠地把訓練資料中的特定事實逐字取回。想看這層差異,可以接著讀 LLM 到底是什麼?
Fine-tuning 是「從已經會很多東西的模型繼續訓練」
如果每做一個客服機器人、分類器或特定格式產生器,都要重新從零訓練一個大型模型,成本會非常高。Fine-tuning 的做法,是先拿一個已經完成基礎訓練的模型,再用更聚焦的資料繼續最佳化,讓它更穩定地符合某種任務、格式、語氣或決策模式。
以 supervised fine-tuning(SFT)為例,你可以準備很多「輸入 → 理想輸出」範例,讓模型從這些示範中調整行為。OpenAI 的現行文件也把 SFT 描述為:用特定 use case 的範例進一步訓練模型,得到更能穩定產生期望風格與內容的客製模型。
但 fine-tuning 不是把一份 PDF 上傳後,模型就把內容背進去。 如果你的需求是讓模型回答一份會持續更新的規章、產品價格或公司文件,常常更適合用 RAG、搜尋或工具,在 inference 時把最新資料提供給模型。Fine-tuning 比較常處理「希望模型怎麼做」,而不是「今天外部世界有哪些最新事實」。
另外,現在常聽到的 post-training 是更廣的詞。它通常泛指 pretraining 之後,為了改善模型行為、遵循指令、偏好、安全性或推理能力而進行的一系列訓練階段;SFT 可以是其中一種,另外也可能包含 preference optimization、reinforcement learning 等方法。不同團隊的流程與命名不完全相同,所以不能把 post-training 和 fine-tuning 永遠畫成完全相等。
Inference 才是你每天真正大量使用模型的時候
模型訓練完成之後,使用者丟進一個新的 prompt,模型根據目前參數和這次的 context 算出下一個 token,再一個一個生成後續內容,這就是 inference。Hugging Face 的術語表把 inference 定義成訓練完成後,拿模型去處理新的資料。
這裡很容易出現「它剛剛明明學會了」的錯覺。假設你先在對話裡提供五個寫作範例,第六次模型開始模仿你的格式。這叫 in-context learning 或 few-shot prompting 的情境之一:模型利用 context 裡的模式調整當下輸出,但底層參數通常沒有因此被重新訓練。把那五個範例拿掉,這種效果也可能消失。
同樣地,system / developer prompt 是在 inference 時控制模型的輸入;RAG 是在 inference 前先搜尋外部資料,再把結果塞進 context;工具呼叫則是讓系統在推理過程中取得外部資訊或執行動作。它們都可以大幅改變模型的回答,卻不等於每次都重新更新模型參數。
「AI 記得我」也不一定代表模型被訓練
有些產品會保存你的偏好、對話摘要或個人設定,下一次聊天時再把相關內容取回來。從使用者角度看,模型像是「記住了」;但工程上,這份記憶完全可能存在一般資料庫、向量索引或其他外部儲存層,之後再被加入新的 prompt。這種產品記憶和 fine-tuning 是不同機制。
所以看到一個 AI 在下一次對話還知道你的偏好,不應直接推論「它拿我的對話重新訓練自己了」。要判斷資料到底有沒有被拿去做模型訓練,必須看產品的資料處理政策與實際架構,而不是只從聊天體驗猜。
為什麼三個詞常常被混在一起?
因為日常語言裡的「學習」範圍太大。人會說「我剛剛教 AI 一個格式,它學會了」,也會說「公司拿一萬筆資料訓練 AI」,甚至把「把文件丟進 RAG」也叫成訓練。這些說法在聊天時大概聽得懂,但做系統設計時差很多:它們會影響成本、更新速度、資料治理、版本管理,以及錯誤要去哪一層修。
一個簡單判斷方式是問三個問題:模型參數有沒有改?改的是基礎能力還是特定行為?這份資訊只是暫時放在 context,還是被帶進訓練程序? 如果只是改 prompt、加文件或搜尋結果,通常仍在 inference 這一側;如果真的啟動最佳化、讓參數根據訓練資料更新,才進入 training / fine-tuning 的範圍。
把三者放在一起看:
Pretraining:從大量資料建立基礎模型能力。
Fine-tuning / post-training:在既有模型上繼續調整特定行為或能力。
Inference:用現在這個模型處理新的輸入,不必因此更新參數。
這個差別也解釋了為什麼「模型今天回答了我的 PDF」不能直接叫做「我訓練了一個 AI」。如果 PDF 只是被放進 context,或先被 RAG 搜尋後取回,模型做的仍然是 inference。真正的 training 不是「模型看到了資料」而已,而是那些資料實際參與了參數更新。