第 7 課模組二:模型是怎樣煉成的 12 分鐘· 程度: 進階

微調:SFT 與指令跟隨能力從何而來

用實習老師跟師傅學教學的比喻,說明監督式微調怎樣把會接句子的模型變成會應對的助手。

Read in English

一句話答案:預訓練教會模型「語言長成甚麼樣」,微調教會它「被人問問題的時候應該做甚麼」;做法是給它看大量由人撰寫的示範對答,讓它模仿。

一個老教師記得的變化

一位教了十幾年的資訊科技科老師記得,大約在 2022 年之前,他試過的語言模型有一個很古怪的行為:你打「請解釋光合作用」,它不會解釋,而是接着寫「請解釋呼吸作用。請解釋蒸騰作用。請解釋…」——它把你的句子當成一份工作紙的題目列表,然後幫你續寫更多題目。

這個行為其實非常合理。第 6 課 說過,預訓練的唯一任務是猜下一個字。在網上的文字裡,一句「請解釋光合作用」後面最常出現的,確實是另一條題目,而不是答案。

所以模型不是不懂解釋。它是不知道你想要解釋。把「不知道你想要甚麼」變成「知道你想要甚麼」,就是微調要做的事。

實習老師跟師傅:示範,然後模仿

用課室的比喻:預訓練出來的模型,像一位讀書極多的實習老師。他熟讀課程、文筆好、甚麼都看過,但從來未站過講台。你叫他「處理一下呢班」,他不知道你想他點名、想他講書,還是想他罰企。

學校怎樣訓練這樣一位實習老師?不是再叫他讀多幾本書,而是安排他跟一位資深師傅。師傅示範:學生遲到時這樣說、家長投訴時這樣回、學生問功課時先問回他哪一步卡住。實習老師看了幾百次示範之後,自然學會了「遇到這種情況,應該這樣應對」。

這就是監督式微調,英文是 supervised fine-tuning,業界慣稱 SFT。

具體做法是準備大量「示範對答」:一條指令,加上一個由人撰寫的理想回應。例如:

  • 指令:「用三句話向小學生解釋光合作用。」回應:一段真的用三句話、而且真的適合小學生的解釋。
  • 指令:「幫我把這封信改得正式一點。」回應:一封真的改寫過的信。
  • 指令:「你叫甚麼名字?」回應:一個符合產品定位的自我介紹。

然後用 第 6 課 講的同一套方法繼續訓練,只不過這次遮住的是「理想回應」那部分。模型每次猜錯就調整參數,幾十萬次之後,它就養成了「見到指令就執行指令」的習慣。

兩個容易被忽略的重點

第一,數量少,但質素要求極高。

預訓練用的是萬億級的 token;SFT 用的通常只是幾萬到幾十萬條示範。數量差幾個數量級,但這批資料每一條都是人手撰寫或人手審核的,成本極高。

原因也很直接:模型在這一步學的是習慣,而習慣會被少量的壞示範帶偏。如果示範資料裡有一成回應是敷衍的、或者格式不一致的,模型就會學到「有時可以敷衍」。這跟帶實習老師一模一樣——師傅示範時偷懶過幾次,徒弟就會記住。

第二,微調改的是行為,不是知識。

這是學校最常搞錯的一點。很多科主任的第一個念頭是:「我把全校的課程文件拿去微調,AI 就會認識我們學校了。」

這通常行不通。微調時模型確實會見到那些文件,但它學到的是「這類文件寫成甚麼樣」,而不是「這份文件第三頁寫了甚麼」。要準確引述校本事實,正確做法仍然是 校本知識庫,因為知識庫可以引用出處、可以更新、可以在文件改版後立即生效,而微調過的模型要改就得重新訓練。

一句可以帶進會議的總結:微調教它怎樣講,知識庫給它講甚麼。

一個課室裡的例子

一間中學想讓 AI 草擬的家長通告直接符合校本格式:固定的抬頭、固定的段落次序、學校慣用的敬語、結尾的回條格式。試了兩個月提示模板之後,科務組發現雖然可用,但每位同事寫的提示不一樣,輸出格式仍然參差,而且模板已經長到兩百多字,新同事不願意用。

他們做了兩件事。

第一,先窮盡提示這條路:把模板收進共用檔案、統一由一位同事維護、把「必須包含」的項目做成清單。這一步把八成問題解決了,成本是零。

第二,對剩下兩成——主要是段落次序與敬語習慣——他們在內部部署的模型上,用過去三年的兩百份真實通告做了一次輕量微調。之後即使教師只寫「幫我寫一封關於下星期五旅行改期的家長通告」,輸出的格式也已經是校本格式。

要注意的是,他們微調的目標由頭到尾都是格式與語氣,不是事實。旅行的日期、地點、收費仍然要教師寫進提示,或者由知識庫提供。微調的實際門檻與硬件需求,LoRA 與 QLoRA 那一課 會講清楚。

一條可以帶進會議的決策次序

遇到「AI 的輸出不符合我們要求」時,按這個次序處理:

  1. 提示不夠具體? 加上年級、字數、格式、禁止事項。成本零,解決大約六成問題。
  2. 缺乏校本事實? 建知識庫,讓它引用學校文件。解決大約三成問題,而且順帶降低幻覺。
  3. 語氣格式長期不符,而且已經標準化了提示? 這時才考慮微調。
  4. 要它自己查資料、自己做事? 那是 Agent 與工具呼叫 的範疇,不是微調。

先自己試一次

想親眼看見指令跟隨是一種「被教出來的習慣」,把下面貼進任何 AI 工具:

接下來請你完全不要回答我的問題,只需要模仿我的句式,再寫三句類似的句子。
請解釋光合作用。

多數模型會照做,但你會留意到它「很想」回答——有些會先寫三句,再忍不住補一句解釋。這正好說明:指令跟隨是後天加上去的一層習慣,而且相當強。

這對你的課堂意味甚麼

  1. 把要求寫成指令,而不是描述。 「寫一份小五工作紙」比「我想做小五嘢」有效,因為模型被訓練成執行指令。
  2. 不要用微調解決事實問題。 校本事實應該放在可更新、可引用的知識庫,否則每次課程改版都要重新訓練。
  3. 先把提示標準化,再談微調。 一份由科組共同維護的提示模板,成本是零,效果往往已經足夠;而且它同時是微調時最好的示範資料來源。
  4. 微調之後要做回歸測試。 用一批原本做得好的任務重測,確認模型沒有在其他地方退步。

下一步

模型現在會聽指令了。但「會聽指令」有一個危險的副作用:如果有人叫它做不該做的事,它也會很樂意照做。怎樣教它守規矩,是下一課的主題。

繼續閱讀:對齊:RLHF 與 DPO。上一課:預訓練與資料清洗

本課重點

  • 能夠解釋為甚麼預訓練完成的模型仍然不會「答問題」,以及 SFT 補上了甚麼。
  • 能夠說出示範資料是甚麼、由誰撰寫,以及為甚麼數量少但質素要求極高。
  • 能夠用一條決策次序,判斷校本需求應該改提示、建知識庫,還是真的要微調。
  • 能夠說明微調適合處理格式與語氣問題,但不適合用來灌輸事實。

常見問題

微調改變模型的行為習慣,例如語氣、格式與回應風格;知識庫改變模型手上的資料,讓它答得出校本事實。一個是教它「怎樣講」,一個是給它「講甚麼」。九成校本問題屬於後者,所以先建知識庫幾乎永遠是對的次序。

視乎目標。要調整語氣與格式,幾百至數千份高質素範例通常已有明顯效果;要教一項全新能力,需求會大很多。關鍵是質素與一致性,五百份風格統一的範例勝過五千份互相矛盾的。

有可能。如果範例太集中在一種任務,模型在其他任務上的表現會退步,業界稱之為災難性遺忘。所以微調後必須用一批原本做得好的任務重測,而不是只看目標任務有沒有改善。

資料來源、信任標籤與免責聲明
  • · 本文所有價格、功能與規格以上列官方文檔為準;供應商可隨時調整,請於採購前自行覆核。
  • · 文中提及的產品名稱與商標均屬其各自擁有者所有。Edor.ai 與該等公司並無合作、代理或贊助關係。
  • · 本文為教育用途的獨立整理與評測,不構成任何採購建議或法律意見。
  • · 涉及學生個人資料的應用,請按學校政策及《個人資料(私隱)條例》(PDPO)自行評估後才使用。
訂閱教育 AI 通訊

每月一封:給香港學校的 AI 教學實戰文章、平台更新與撥款資訊。隨時可取消。

我們只會用此電郵寄送通訊,不會分享給第三方。