領域差距
有時模型把指令照辦得無懈可擊,卻仍然左支右絀,因為它幾乎沒見過你的「領域」。臨床縮寫、法條引用、某個專有程式碼庫、或一門資源稀少的語言,都可能在預訓練的混合資料裡被嚴重低估。再怎麼打磨提示,也教不會模型從未吸收過的語彙。這就是領域適配(domain adaptation)的地盤。
流程:查詢先檢索文件,將其加入提示,模型再生成答案。
持續預訓練
彌補知識差距的工具是持續預訓練(continued pretraining)(也叫領域自適應預訓練):你沿用基礎模型當初建立時的那套自監督(self-supervised)「下一個 token 預測」目標,只是現在改用一份「你的」領域的大量原始文字。這裡沒有標註——只有大量領域內文件,讓模型去學著預測。這就是遷移學習(transfer learning)在運作:通用的語言能力被帶過來,領域知識則沉澱在上層。
繼續預訓練沿用同一個自監督目標:預測每個下一個詞元,在你的領域語料上最小化負對數似然。
一種常見的進階配方是兩階段:先用持續預訓練把領域裝進去,再用監督式微調在其上恢復「聽指令」的能力。預訓練教的是你領域裡「世界長什麼樣」,SFT 教的是在其中「該怎麼表現」。
災難性遺忘——核心危險
把模型在狹窄資料上逼得太兇,它可能患上災難性遺忘(catastrophic forgetting):當權重移動去擬合你的領域時,會偏離那些讓基礎模型值得使用的通用能力。最後你得到一個精通放射科報告、卻再也無法正常對話或做基本算術的模型。這正是讓領域適配變得棘手的失敗模式。
- 混入回放資料——把通用領域的文字摻回語料,讓舊技能持續被強化。調整這個比例是一種資料混合配比(data-mixture weighting)的決策。
- 用低學習率與少量回合(epoch)——溫和的輕推比激進的訓練保留更多原始模型。
- 能用 PEFT 就用——適配器把大部分改動侷限在一個小附加件裡,讓凍結的基礎模型保持完好,遠不易遺忘。
適配 vs 知識截止
對特定領域而言,領域適配也是讓模型越過其知識截止(knowledge cutoff)的一種方法——用近期的領域內文字做持續預訓練,能把較新的事實烤進權重裡。但烤進去的事實一旦世界再變就過時了,而重新訓練很慢。對於頻繁更新的資訊,檢索通常是更好的答案;把適配留給「耐久」的領域知識與慣用語。
一份領域適配配方
- 先確認差距真的是「領域知識」,而非提示或格式——並確認檢索無法更便宜地涵蓋它。
- 蒐集一份龐大、乾淨的領域內文字語料,外加一小片通用文字作為回放。
- 以低學習率持續預訓練幾個回合,盯著通用基準看有沒有遺忘的跡象。
- 接著用監督式微調,恢復聽指令的能力與你要的回應風格。
- 在「領域測試集」與「通用測試集」上都評估,這樣領域內的進步才藏不住通用能力的退步。