從零開始到實戰預訓練與應用心得分享

前陣子參加了 GDG DevFest Taipei 2025,聽到 Liang-Hsun Huang 🧠🧪 分享「從零開始到實戰:預訓練與應用心得分享」,收穫超多,因此寫下來分享給大家,圖的來源是作者的投影片XD

對正在做本地化模型或需要模型 customization 的人,這場真的很值得看一下。

(文章太長全文請看留言連結)

一、為什麼還要自己訓練落地模型? 講者一開頭用這句話直接破題,畢竟在大型雲端模型(如 Gemini 或 GPT)日益強大的今天,為什麼企業或社群仍需要自己訓練和微調模型呢? 主要是因為以下三個原因:

  1. 隱私性 (Privacy):在金融或國防工業等特殊領域,政策通常不允許將敏感資料丟上雲端。

  2. 領域專精 (Domain):如果你的應用領域過於專業或在地化,雲端模型(訓練數據可能來自網路爬蟲)回答的內容往往「不夠對味」。

  3. 成本考量 (Cost):當模型的使用量或查詢量變大時,持續使用雲端模型的成本會變得非常昂貴,訓練一個可落地的微調模型是必要的解決方案。

Gemini 3 很強沒錯,但這不代表大家的需求都能直接被滿足,接下來我們就跟著講者的腳步,來看看如還從 0 到 1 打造一個專屬自己的地端模型。

二、範例模型:Gemma 3 Google 在今年初推出了 Gemma 3 系列模型,Gemma 在希臘文中有「珍貴的寶石」之意(講者介紹之前我都不知道XD),這系列模型採用了與 Gemini 相同的技術訓練而成,主要可以分為幾種:

• Gemma 3: 處理文字或視覺模態的輸入,輸出文字。 • Gemma 3n: N代表多模態。 • MedGemma: 偏向醫學相關領域的模型。 • EmbeddingGemma: 向量嵌入模型。

這次案例主角是 Gemma-3-270m,屬於文字模態輸入/輸出的模型,也是一個小到不可思議的模型,可以對比以前的 Bert 與 ChatGPT-2 的大小來想像。官方手冊上這個模型擁有 128K 的 Context Size,支援超過 140 種語言,非常適合部署在資源受限的終端裝置如手機上,光看規格覺得非常棒,但這樣的模型在繁體中文表現上究竟如何呢?

經講者測試後發現,當使用繁體中文問 Gemma-3-270m 時,模型經常預設用簡體中文來回答;除此之外,由於 270M 的參數量相對較小,模型回答的內容通常也較簡短,知識量有限。因此,這次實戰的目標就是為了大幅加強它處理繁體中文的能力。

三、建資料集:打造 FineWeb-Edu-zhtw 為了讓模型真正學會高品質的繁體中文,光有大量資料不夠,資料的乾淨程度、品質等才是關鍵,但 Hugging Face 的繁中資料很多都是垃圾,不能直接拿來預訓練,這是所有做繁中模型的人都知道的痛。近期他們借鏡 FineWeb 與 FineWeb-Edu 的做法,FineWeb 是近年 Hugging Face 整理出的廣乏大型網路語料,包含各國語系,但是文本品質不一;而 FineWeb-Edu 更進一步,只保留「教科書等級」的內容,品質高到足以用來訓練模型的基礎語言能力。

因此為了從 FineWeb-zhtw 中挑選出高品質的教育內容,他們想要打造一套 繁中 classifier,去把大量網路文本裡的「教科書等級內容」挑出來製作成 FineWeb-Edu-zhtw 訓練集,從下圖就能很明顯地看到,要達到這個目的有兩階段的工作需要做。

  1. 訓練 Classifier-zhtw 這個 Classifier 是他們自己標資料與訓練模型,一路磨出來的。

• 使用工具: 他們利用 embeddinggemma-300m 作為基礎,疊加一個 classification head 來構築這個分類器。 • 標註資料: 透過與台灣大哥大合作,並結合 Twinkle AI 社群夥伴提供的優秀 Prompt,他們使用了Magistral-Small-2506 去對文本進行 0 到 3 分的教育價值評分,最終累積了 500 萬筆的 annotations。

  1. Fineweb-Edu-zhtw 最後使用上面的 Classifier-zhtw 篩選出繁體中文首個「教科書等級文本」,包含了大約 200 萬筆樣本、約 20 億 (2B) Tokens 的高品質資料,目前也已經開源。

如此一來,資料集就準備好了,接下來馬上看到怎麼樣做 Pre-training。

四、模型 Pre-training 在前一段我們把繁體中文資料集完整準備好之後,接下來的問題就是,模型到底要怎麼把這些新知識「吃進去」?

這是今天最核心也是最容易被忽略的環節:Pre-training(預訓練)。 很多人以為有資料就餵下去就會學會,但講者提到他的經驗完全不是這樣,小模型像 Gemma-3-270m 其實非常脆弱,學習率、語料比例、token 數任何一個配錯,都會讓模型不是忘記原本的能力,就是根本洗不起來。

這部分有許多坑與技術,但講者很貼心的幫新的幫大家整理了幾個關鍵點:

  1. ChinChill’s law:小模型需要的 token 量其實比想像中來的多, 270M 的模型大概要 4B tokens 才能有效更新語言能力。

  2. 調和比例: 為了避免災難性遺忘(模型忘記原本學會的知識,如小孩被丟去美國回來不會講國語一樣),訓練前必須混合一定比例的原文本,這邊採用 1:1 的中英比例。

  3. 訓練細節與經驗: 訓練環境使用了 8 顆 B200 GPU,講者特別強調,對於小參數量的模型,Learning Rate 是關鍵,如果設定太小,知識會「洗不上去」,建議朝 10 的負 4 次方這個方向去調整。

  4. 訓練參數參考:請看易讀版

訓練後的模型命名為 gemma-3-tw-270m,通過困惑度 (Perplexity Score, PPL,越低越好) 評測,模型在處理繁體中文文本時,PPL 顯著下降,降幅超過 50%,證明繁體中文能力確實大幅提升,這模型也都有開源。

四、模型 Post-training/SFT 五、應用範例 六、結語

因為篇幅限制就不多說了,整體我覺得是非常實用的演講,從資料準備、訓練到應用角度都有涵蓋到,非常推薦大家看看。