基礎概念

微調 vs RAG:什麼時候你才真的需要微調

用你想要的行為範例繼續訓練模型,讓那個行為成為它的預設,而不是每次請求都要另外要求。它改變的是模型「怎麼做」,而不是它「知道什麼」。

又稱LoRAadapter領域適配domain adaptation客製模型模型訓練

要改變模型為你做的事,其實只有三種方法,而且它們彼此不能互換。選錯的代價很昂貴,而且往往幾個月後才會顯現。

fine-tuning
example behavioursModeltrained on theexamplesthat’s the default now
Fine-tuning bakes a behaviour into the model itself, instead of asking for it every request.
手段它改變什麼它在何時讓你付出代價
提示(Prompting)模型這一次做什麼每次請求,以 token 計——而且隨著對話變長,冗長的指令被遵守得越來越不可靠
檢索(Retrieval)模型此刻知道什麼每次請求,以檢索工作計。事實保持最新,因為它們存在模型之外
微調(Fine-tuning)模型預設做什麼一次,事前。請求時免費——行為已內建其中

微調究竟是什麼

你拿一個基礎模型,用你想要的行為範例繼續訓練它:一組組的輸入,配上你這個領域裡優秀從業者會給出的答案。模型的預設隨之改變——它傾向選用哪些字詞、答案呈現什麼樣貌、在回答前會先問什麼。

**它不是資料庫。**沒有東西被儲存起來供查找。這些範例挪動的是模型的傾向,它們不會變成它能背誦的事實。

實務上它是一個 adapter,而非全新的模型

重新訓練每一個權重既昂貴又鮮少必要。常見的做法——LoRA,也就是低秩適配(low-rank adaptation)——訓練的是一小組附加參數,疊在一個凍結的基礎模型之上。成品是一個數十 MB 的檔案,而非數十 GB。

這帶來一個值得知道的後果:**一個基礎模型能服務多個 adapter。**同一台機器可以為一家律師事務所、一間診所和一個物流業者跑同一套基礎權重,只為每個租戶切換一個小小的 adapter。按產業微調並不代表每個產業都要一整個模型。

什麼時候你才真的需要它

**語域很重要,而提示留不住它。**日語商務敬語、臨床用語、核保人員拿捏含糊分寸的方式。你可以在提示裡描述語域;但在一段長對話下,模型會飄回它的預設。微調挪動的是那個預設。

**大量產出時的格式一致性。**如果每一份輸出都必須是某種特定結構,而「通常正確」還不夠好,那麼範例教它會比指令更可靠。

**指令已經比答案還長。**當系統提示比它產出的內容還長時,你每一次請求都在為那些 token 付費。微調正是把這筆成本移出每次請求路徑的方法。

**窄領域裡的小模型。**一個調校得當的小模型,在單一行當內往往勝過大得多的通用模型——這既是品質決策,也是成本決策。請見自帶模型

**基礎模型在你的語言或領域裡很弱。**有些語言和專業在公開訓練資料裡很稀薄。範例正是你修補這一點的方法。

什麼時候你不需要它

**事實不該放進微調裡。**價格、政策、供應情況、案件狀態——任何可能在某個週二就變動的東西,都屬於知識庫,在那裡更改它只是上傳一次。微調後的模型不會因為你的價目表變了就跟著更新,它會繼續自信地拿它學到的內容作答。

  • **你還沒試過更好的提示。**多數「我們需要客製模型」的問題其實是提示問題。微調是昂貴的解法;先掙得它。
  • **你只有寥寥幾個範例。**幾十個不會撼動一個模型。數百個好的範例也許可以;品質勝過數量,而糟糕的範例會忠實地訓練出糟糕的習慣。
  • **你想要的東西經常變動。**任何你每週都想編輯的東西都不該被內建進去。

要把它做對得付出什麼

**範例。**數百到數千個,取自真實工作,並由懂這個領域的人審核。這是客戶最常低估的部分——資料蒐集通常比訓練更耗時。

**一個保留下來的評估集。**模型從未見過的範例,在前後各評分一次。沒有這個,你無從得知微調是幫了忙、幫了倒忙,還是什麼都沒改變——而「感覺變好了」不是一種量測。這是最常被略過的一步,也是決定這個專案值不值得做的一步。

**一份因應基礎模型變動的計畫。**adapter 綁定於它訓練時所依附的基礎。當你換到較新的基礎模型時,微調得重做一次。把它編進維護預算,而不是當作一次性的事。

要防範的失敗

一個在某種狹窄風格上調過頭的模型,在其他所有事情上都會變差——即使問題需要不同的語域,它仍用你的招牌口吻作答,而且對於它從未被教過的事情變得自信而流暢。這正是評估集之所以重要的原因,也是為什麼明智的目標通常是預設的小幅位移,而不是一個只會做一件事的模型。

想了解實作細節?為什麼模型是可替換的零件