localaiforum
登入
指南 › 基礎概念

模型如何訓練(以及你為何不會自己做)

你能下載的每個對話模型都走過同樣的三階段流程。你幾乎肯定永遠不會自己跑第一階段——那是資料中心的領地——但二、三階段的便宜表親你可能會跑。了解這些階段能解釋 base 與 instruct 的行為差異、模型為何幻覺,以及 Hugging Face 上的「合併版」模型到底是什麼。

第一階段:預訓練——昂貴的部分

一個目標、難以想像的規模:在數兆 token 的網頁文字、程式碼與書籍上預測下一個 token。知識與技能就是在這裡進入權重,絕大多數算力也是花在這裡。

項目 大致規模(數量級)
資料 現代家族需要 10–30T token
硬體 數千 GPU 月;前緣訓練會占住叢集數個月
成本 7B 約 $1M–$10M+;70B 級 $10M–$100M+;前緣訓練據傳遠高於此
產出 base 模型——網際網路形狀的自動補全,沒有助理行為

產出是一個 base 模型:接續能力一流、當助理則毫無用處。問它問題,它會回答——然後繼續冒出另一個問題、一個清單、一個分頁符號,因為網路上的文字就是這副德性。

第二階段:監督式微調(SFT)

數萬到數百萬筆精心整理的(指令 → 回應)配對,幾個 GPU 天。與預訓練相比是捨入誤差,但它重塑了行為:回答指令、用有用的格式、然後停止。這是把 base 模型變成能對話的模型的階段。

第三階段:偏好調校

  • RLHF:人類對回應配對排序;獎勵模型學習這個排序;策略再對著獎勵最佳化(PPO)。經典做法,機制笨重。
  • DPO:跳過獎勵模型,直接對偏好配對最佳化。更簡單、穩定,開源圈的最愛。
  • 效果:風格、有用程度、拒絕行為、更校準的主張。還有迎合——模型學到大家獎勵同意。

SFT 資料實際上看起來像這樣——普通的指令/回應配對 JSONL,沒什麼稀奇:

{"instruction": "Summarize the changelog in three bullets.", "response": "- Adds ..."}
{"instruction": "답변을 존댓말로 작성하세요.", "response": "네, 알겠습니다 ..."}

幾千到幾百萬筆這種資料、跑幾個 epoch,base 模型就學會了助理格式。

同樣的權重,不同的階段

prompt: "Write a haiku about GPUs."

base (after stage 1):
  "Write a haiku about GPUs.
   Write a sonnet about CPUs.
   1. Choose your topic carefully..."     ← 接續文件

instruct (stages 1+2+3):
  "A thousand cores wake,
   each chasing one quiet token—
   fans hold their breath."               ← 回答、排版、停止

存放庫字尾告訴你階段:裸名稱=base;-instruct/-it/-chat=已調校(見 參數量)。

再多學一個詞彙:知識截止日——預訓練語料截止收集的日期。問它之後的事,你要麼得到誠實的「我不知道」,要麼更糟,得到自信的虛構;兩者對凍結的權重來說都是正確行為(什麼是 LLM)。

訓練 vs 微調:大約相差 1000 倍

預訓練 LoRA 微調
資料 10^12–10^13 token 10^6–10^9 token
更新的參數 全部 不到 1–2%(小型配接器矩陣)
硬體 叢集 單張 GPU
實際耗時 數週到數月 數小時到數天
成本 $M–$100M+ 租用 $0–$100
用途 知識+技能 風格、格式、窄域行為
風險 loss 不穩的訓練、報銷的檢查點 對極小資料集過擬合
失敗模式 數月後才發現的無聲資料 bug 一般技能的災難性遺忘
可重現嗎 很少(資料不公開) 可以(資料集就在存放庫裡)
資料來源 公開網頁、程式碼、書籍、授權檔案 你的提示詞與理想答案
誰做得到 資金充裕的實驗室 你,這個週末就行

微調調整的是旋鈕;它不增加知識。教 7B 學你公司的語氣:LoRA,一個晚上。教它你那 5 萬份內部文件:那是檢索,不是訓練(RAG、微調)。

微調能做與不能做什麼,讓你瞄準正確的目標:

  • 能:輸出格式、語氣、術語、拒絕風格、工具呼叫語法、可靠地完成窄域任務。
  • 能:把某個窄域任務從大模型蒸餾到小模型。
  • (可靠地)不能:加入新事實、修好弱推理、延長知識截止日、讓小模型變大。
  • 原則:問題若是「不知道」,用檢索;若是「不聽話」,用微調。

檢查點、合併版,以及你下載的東西

  • 訓練過程會存檢查點;正式發布的通常是最終 instruct 階段的權重——你拿到的是成品助理,不是打造它的過程。
  • 「合併版」是把同一個 base 模型的多個微調做平均或內插(model soups)。沒有訓練發生;它是權重算術,結果常落在親代之間。在 Hugging Face 上流行、便宜、偶爾極優。
  • 來歷不明意味授權不明:合併版會繼承每個親代的條款(開放權重 vs 封閉 API)。
  • 對話模型背後的 base 權重有時也會發布——只有接續式工作負載或微調基底才需要拿它。
  • 為什麼開源發布停在最終階段:預訓練資料與中間檢查點是昂貴的競爭資產;成品權重只是展示品。
  • 社群 instruct 模型共用後訓練配方與資料集,這就是為什麼那麼多模型感覺可以互換:同樣的 base、同樣的二/三階段劇本。
  • 優先選模型卡有列資料與階段的發布;有文件紀錄的最終檢查點比炒作的更耐久。

相關章節: 微調 · RAG · 開放權重 vs 封閉 API · 參數量