AI-LECTURER 速報課|2026-07-17|約 24 分鐘

更新的模型,一樣的優勢:兩階段訓練怎麼讓小模型打贏大模型

取材:Newer Models, Same Advantage(Hugging Face Blog)
📍 真實場景
陳威廷,32 歲,法律科技新創的後端工程師

他正在幫事務所建置「掃描合約自動辨識」系統,上週剛把後端 OCR 從舊版模型換成廠商最新發布的泛用多模態大模型,滿心期待準確度全面提升。

😖 卡住的地方:結果新模型碰到跨欄位、字體密集的合約掃描檔時,偶爾會整段重複輸出同一句話、或生出合約裡根本沒有的金額數字——他抓不到規律,也不知道該繼續等下一代模型,還是自己想辦法。
💡 這篇文章拆解了一個真實案例:一個較小、較舊的專用模型,靠「兩階段訓練」穩定打敗更新、更泛用的大模型。看完你會有一套判斷標準——什麼時候該追新模型、什麼時候該自己動手做專精化訓練。

🧭 這到底是什麼(白話版)

三個月前,Hugging Face 上一篇部落格公布了 DharmaOCR 這個開源模型——它的任務很窄:只做巴西葡萄牙語文件的光學文字辨識(OCR)讓電腦「讀懂」圖片或掃描檔裡文字的技術,本質上是把圖片轉成可編輯的文字。神奇的是,即使後來 Mistral OCR、Unlimited-OCR 等廠商推出了更新、涵蓋更多語言的大模型,DharmaOCR 在葡語文件上的表現依然沒被超越。

關鍵在於它的訓練分成兩階段,而不是「一次訓練到底」。第一階段是監督微調(SFT)拿大量「題目+標準答案」讓模型照著學,把模型的能力校準到特定任務與語言:工程團隊餵給模型大量不同來源、格式、複雜度的葡語文件,讓模型把運算資源集中花在葡語的詞彙、文法與版面結構上,而不是分散去顧一堆用不到的語言。第二階段是直接偏好優化(DPO)不只教模型「正確答案」,而是給它兩個候選輸出比較好壞,讓模型學會在推論時穩定挑出「比較好」的那一個:這階段要解決的不是準不準,而是穩不穩。

這兩個階段解決的是完全不同的問題。SFT 負責把「這件事做對」的能力建立起來;DPO 負責把「這件事每次都做得穩」的能力守住。因為所有靠生成式模型用機率方式一個字一個字產生輸出的 AI 模型,跟查表式的固定規則不同,本質上就會出錯做的 OCR,錯誤都是內建的機率變數——差別只在「錯多少」跟「錯成什麼樣子」。

🎯 為什麼值得你花時間

省錢的不是模型大小,是訓練方法DharmaOCR 證明了一件反直覺的事:不需要每次都追新模型發布才能提升品質。與其等廠商出新模型、砸更多算力訓練更大的模型,把既有中型模型做兩階段的專精化訓練,可能是更划算的技術路徑——這是任何要幫產品做技術選型的工程師都該放進口袋的選項。
準確度與穩定度是兩本不同的帳很多團隊只在意基準測試(benchmark)用同一組題目讓不同模型互相比較表現的標準化測驗上的分數(準確度),卻沒發現「模型偶爾語無倫次」是另一個獨立的問題,需要另一種訓練手段(DPO)來解決。只顧準確度、不顧穩定度,上線後照樣會被投訴。
退化率降低=真金白銀的推論成本下降文章特別指出 DPO 降低了推論時間與成本——因為模型不會再產生要重跑、要人工複查的爛輸出。這代表「穩定性訓練」不是錦上添花的品質工程,而是直接反映在帳單上的成本控制手段。

⚙️ 它是怎麼運作的

1
收集分眾素材團隊蒐集大量不同來源、格式、複雜度的葡萄牙語文件——這一步決定了模型接下來能學到多「在地」的語言與版面知識。
2
第一階段:監督微調(SFT)模型看著「文件圖片→正確轉錄文字」的配對反覆學習,把參數量模型裡可以調整的「旋鈕」數量,粗略決定模型能學多少東西的天花板集中投資在葡語的詞彙、語法與文件結構上。
3
第二階段:直接偏好優化(DPO)不再只看「對不對」,而是讓模型比較兩個候選輸出、學習挑出「比較不會退化(degeneration)生成式模型偶爾卡住,開始重複同樣字句或講出語無倫次內容的失效模式」的那個,把失效模式壓下去。
4
上基準測試驗證最後放到葡語標竿測試集上,同時檢查兩個指標:抽取品質分數、退化發生率——確認兩階段訓練是否真的把「準」跟「穩」都顧到。
只做 SFT vs. SFT + DPO 的差異(依文章描述整理)
面向只做 SFTSFT + DPO
辨識準確度(品質分數)已提升,貼近任務語言維持同等高水準
退化(重複/語無倫次)發生率仍偏高,失效模式未解決明顯壓低,輸出更穩定
推論成本/重跑機率因輸出不穩定而偏高下降——不用一直重跑爛輸出

🛠️ 動手做:親手玩「兩階段訓練」:準確度跟穩定度分別被誰決定?

  1. 拖動『SFT 涵蓋度』滑桿,看辨識準確度怎麼隨之上升。
  2. 勾選/取消『套用 DPO 偏好訓練』,比較退化發生率的變化。
  3. 試著把兩者都拉到最高,觀察模擬器怎麼呼應文章「兩階段缺一不可」的結論。
👇 下面是活的,直接操作

🧠 工程思維透鏡(資深工程師看到的是什麼)

🔭 為什麼團隊要把訓練資料集中在單一語言,而不是像其他大模型一樣做多語言泛用?
這是資深工程師會辨認出的取捨工程決策裡「要 A 就得犧牲 B」的權衡:模型的參數量是有限資源,分給越多語言,每個語言分到的「代表能力」就越稀釋。把資源全押在目標語言,換來的是這個語言上的天花板更高——代價是犧牲了跨語言的泛用性。這正是文章講的「架構決定天花板,訓練決定怎麼分配這個天花板」。
🔭 為什麼不能只靠加更多監督式訓練資料來解決『語無倫次』的問題,一定要換成 DPO?
因為兩者是不同的失效模式:SFT 教的是「正確答案長什麼樣子」,但模型在推論時仍可能因為機率取樣走偏,滑進重複輸出的迴圈——這不是「沒看過正確答案」,而是「不知道兩個看似合理的輸出該選哪個」。DPO 直接針對「比較、選擇」做訓練,才對症下藥。這提醒工程師:診斷問題時要先分清楚是「能力不足」還是「穩定性失控」,開錯藥方會浪費算力還治不好。
🔭 如果你的團隊要做技術選型,看到『更新的模型』和『學名不見經傳但做過專精訓練的模型』,該怎麼決定?
文章給的架構是:先問「我的任務有沒有窄且明確的目標領域」。如果有,專精化訓練的天花板可能比等待下一代泛用模型更高,而且成本可控(自己就能做,不必等廠商)。如果任務本身就需要廣泛泛用能力,那麼砸資源做專精化反而是浪費。這是「先看任務形狀,再選工具」的工程思維,而不是「哪個新就用哪個」。
🔭 DPO 帶來的『推論成本下降』,跟訓練階段多花的成本相比划算嗎?
這是一次性訓練成本換長期推論成本的權衡:DPO 訓練需要額外一輪偏好資料與訓練運算,是前期投資;但換來的是往後每一次呼叫都更少失敗、更少重跑,長期推論帳單下降。對一個會被大量呼叫的生產系統來說,這筆前期投資通常很快回本——這也是文章特別強調 DPO 對「生產環境下的可靠度」的意義,而不只是「測試分數變好看」。

📝 隨堂考(點選答案,立即回饋)

Q1. 文章裡,DharmaOCR 的訓練分成兩個階段,第一階段(SFT)主要負責解決什麼問題?
✅ SFT 負責的是「準不準」,把模型的能力校準到目標語言與任務上;穩定度是 DPO 的工作。
Q2. DPO(直接偏好優化)主要解決的是什麼問題?
✅ 文章明確指出 DPO 處理的是穩定性問題,透過比較輸出教模型挑出比較好的那個,進而降低退化率。
Q3. 為什麼文章說『架構和參數量只是決定模型能學什麼的天花板,訓練才決定天花板怎麼被用』?
✅ 這正是文章的核心論點:天花板(架構)與怎麼把天花板用滿(訓練分配)是兩件事,DharmaOCR 用更聰明的訓練分配打贏了更大的天花板。
Q4. 假設你要幫產品選一個 OCR 模型,任務是『只需要辨識台灣的手寫收據』,依文章邏輯,下一步你該優先考慮什麼?
✅ 文章示範的正是這條路徑:任務夠窄、夠明確時,專精化訓練往往比等待或依賴泛用大模型更有效益。

🃏 翻牌記憶卡(先想答案,再點開對答)

OCR(光學文字辨識)點我翻面
讓電腦讀懂圖片或掃描檔裡文字的技術,本質是把圖片轉成可編輯文字。
監督微調(SFT)點我翻面
拿大量「題目+標準答案」讓模型照著學,把模型能力校準到特定任務與語言。
直接偏好優化(DPO)點我翻面
讓模型比較兩個候選輸出、學會穩定挑出比較好的那個,用來抑制退化、提升穩定度。
退化(degeneration)點我翻面
生成式模型偶爾卡住,開始重複同樣字句或講出語無倫次內容的失效模式。
生成式模型點我翻面
用機率方式一個字一個字產生輸出的 AI 模型,本質上就會出錯,差別只在錯多少、錯成什麼樣。

✅ 離開前自測(全勾=這課真的學會了)

0%