🧒 十歲小孩版
🔗 原始文章:【生成式人工智慧與機器學習導論2025】第_8_講:通用模型的終身學習_(Fine-tuning,Model_Editing,Model_Merging,Test-Time_Training) | 台大李宏毅教授
🏴☠️ AI 也要上學?教機器人「終身學習」的祕密!
📖 小故事開場
欸欸欸,你有沒有想過一件事?
假如你家有一隻超聰明的機器狗,牠什麼都會——會算數學、會講笑話、會陪你玩。但是有一天,你發現牠還以為「現在的美國總統是拜登」,可是其實已經換人了耶!
這時候怎麼辦?要怎麼教牠新的知識,又不讓牠忘記原本會的東西?
這就是今天我們要聊的超酷主題:AI 的終身學習!(對,AI 也要一直一直上學喔~)
🧠 為什麼 AI 需要一直學習?
就像你每年都會升一個年級、學新東西一樣,AI 也需要不斷更新。主要有四個原因:
- 知識過時了 📅:像總統換人啦、偶像出新歌啦,AI 都要跟上。
- 學新技能 🎹:原本只會看字的 AI,想要讓牠也會聽聲音。
- 觀念要進步 💭:以前 AI 可能會說「吵架就分手」,現在要改成「好好溝通」。
- 忘掉不該記的事 🧽:像《MIB 星際戰警》那支會消除記憶的筆一樣,有些隱私、版權的東西,AI 不能記得。
🤔 小朋友想想看: 如果你要教家裡的機器人「我最喜歡吃珍珠奶茶」,你會怎麼教牠?而且還不能讓牠忘記你爸爸媽媽的名字喔!
✅ 怎麼知道 AI 有沒有學好?三個檢查點!
我們用《海賊王》的魯夫來舉例~假設我們要教 AI:「魯夫吃了尼卡果實」(原本牠以為是橡膠果實)。
| 檢查項目 | 白話解釋 | 考題範例 |
|---|---|---|
| 可靠性 | 有沒有真的學會? | 問:「魯夫吃什麼果實?」→ 要答「尼卡果實」✅ |
| 泛化性 | 會不會舉一反三? | 問:「誰吃了尼卡果實?」→ 要答「魯夫」✅ |
| 局部性 | 其他知識有沒有被弄壞? | 問:「喬巴吃什麼果實?」→ 答案不能變! |
最重要的一條規則是:改一個地方,不能把其他地方搞壞!
這就像你媽媽幫你改作文,只能改錯字,不能把你整篇文章都重寫一樣 😆
🛠️ 教 AI 的四大絕招
絕招一:硬教法(梯度下降微調)
就是直接塞新的題目和答案給 AI 背。聽起來很簡單對不對?
但是⋯⋯ 災難發生了! 😱
這招有個可怕的副作用叫「災難性遺忘」——AI 學了新的,就把舊的忘光光!
真實慘案:
- 有人想教 Llama 這個 AI 學中文,結果牠中文學會了,但是壞人問牠怎麼駭進銀行,牠居然用中文教對方!(原本的防禦能力不見了 😱)
- 還有一個 AI 原本會乖乖用整齊的格式回答問題,訓練太多次之後,格式完全亂掉。
這就像你為了背英文單字,結果把注音符號忘光了一樣扯 😅
絕招二:精準手術(模型編輯)
這招超厲害!科學家發現 AI 的腦袋裡有特定的小區域負責記某件事。
就像你的大腦裡可能有一塊專門記「媽媽的電話」,有一塊專門記「班導的名字」。
所以如果要改「太空針塔在哪裡」這個知識,科學家就找出負責記這件事的那一小塊神經元,只改那裡,其他地方通通不動!
🤔 小朋友想想看: 如果你要修理一台壞掉的遙控車,你會把整台拆掉重組,還是只修壞掉的那個零件就好?哪個比較聰明呢?
絕招三:能力合體技(模型合併)
這招超像《七龍珠》的合體術!✨
想像一下:
- AI 小明 📘:會講中文
- AI 小華 🛡️:會防禦壞人的攻擊
把兩個 AI 的「能力」加起來 → 變出一個又會中文、又會防禦的超強 AI!
更神奇的是,還可以做減法喔!
比如有個 AI 學會了一些不好聽的髒話,科學家就做出一個「髒話能力向量」,然後從 AI 身上減掉它,AI 就忘記那些髒話了!(有點像用橡皮擦擦掉鉛筆字的感覺)
甚至還能玩「A - B + C = D」的魔法算式!就像樂高積木一樣,能力可以自由組裝 🧱
絕招四:現場學習(測試時訓練 TTT)
前面三招都是「先在學校學好,再去考試」。
但這招超特別——考試當下才學習! 📝
就像你數學考試的時候,看到一題不會,現場翻課本查一下,邊查邊寫。AI 也可以這樣!
不過這招也有陷阱喔⚠️:如果 AI 每遇到一題就調整自己一次,久了會變得超級奇怪,最後可能什麼問題都回答同一個答案!(有點像一直擦同一張紙,最後紙就破了)
聰明的解法:快慢雙軌更新!
- 快速筆記 ⚡:現場用一下就丟掉
- 慢慢整理 📚:累積一段時間再認真更新
- 壞掉就重來 🔄:發現自己怪怪的,就退回上一個版本
💡 最重要的祕密
老師偷偷告訴你一個大祕密:
最好的教學方法,就是「不要動手術」!
因為改 AI 的腦袋超級冒險,就像動腦部手術一樣!所以科學家會先試試看用講的能不能讓 AI 懂,真的不行才考慮動刀。
🎯 今天學到了什麼?
- 🔄 AI 也要終身學習:因為知識會過時、會有新技能、也需要忘掉不該記的事。
- ✅ 檢查學得好不好要看三點:有學會嗎?會舉一反三嗎?沒弄壞其他東西吧?
- 😱 「災難性遺忘」最可怕:AI 學新的就忘舊的,像是背英文就忘注音一樣慘。
- 🛠️ 四大絕招各有厲害:硬教法、精準手術、能力合體、現場學習,科學家會挑最適合的用。
- 🧩 AI 的能力可以像積木:可以加、可以減、還可以組合,超神奇!
下次你跟 AI 聊天的時候,記得牠背後有超多科學家在努力讓牠變聰明喔~🤖✨
📺 原始影片:觀看原始影片
👨👩👧 家長版/進階版(點擊展開)
【生成式人工智慧與機器學習導論2025】第 8 講:通用模型的終身學習 (Fine-tuning, Model Editing, Model Merging, Test-Time Training)
通用模型的終身學習與後訓練技術總覽
【詳盡摘要】核心總結 (Executive Summary)
本文件探討了生成式人工智慧在經歷預訓練(Pre-training)、監督式微調(SFT)與人類回饋強化學習(RLHF)後,如何進行「終身學習(Lifelong Learning)」或稱「後訓練(Post-training)」。當開源的基礎模型(Foundation Model)釋出後,開發者往往需要更新模型知識、賦予新技能或抹除不當資訊。然而,直接修改模型參數會面臨「災難性遺忘(Catastrophic Forgetting)」的巨大風險。為此,本文詳細解析了評估後訓練成功與否的三大指標(可靠性、泛化性、局部性),並深入探討四種修改模型參數的核心技術:直接梯度下降微調(Gradient Descent)、模型編輯(Model Editing, 如 ROME)、模型合併(Model Merging)以及測試時訓練(Test-Time Training, TTT)。
壹、 前言:為何需要終身學習?
在通用模型(如 Llama, Gemma, DeepSeek 等)被開源釋出後,它們的學習歷程並未結束。只要涉及「更新模型參數」,我們便稱之為學習。
1. 持續學習的核心動機
- 更新過時知識:例如將「現任美國總統是拜登」更新為「川普」。
- 學習全新技能:讓原本不懂注音符號的模型學會新語言,或讓純文字模型學會聽懂語音(Speech/Spoken Language Model)。
- 更新價值觀念:例如將「與交往對象吵架一律建議分手」的過時觀念,更新為「建議好好溝通」。
- 機器遺忘(Machine Unlearning):如同《哈利波特》的遺忘咒或《MIB星際戰警》的記憶消除棒。基於版權(如避免生成米老鼠)或隱私(避免模型被越獄/Jailbreak 後吐露個資),我們需要刻意抹除模型在預訓練時讀過的不當資訊。
2. 後訓練的三大評估指標
要評估一次後訓練是否成功,必須同時滿足以下三個面向(以《海賊王》魯夫吃下「人人果實幻獸種尼卡形態」為例):
指標名稱 中文意義 具體要求與範例 Reliability 可靠性 目標必須被成功修改。問「魯夫吃什麼果實?」模型需回答「尼卡果實」,而非舊知識「橡膠果實」。 Generality 泛化性 模型能舉一反三(包含 Portability 與 Reversibility)。問「誰吃了尼卡果實?」需回答「魯夫」;問「喬巴的團長吃什麼果實?」需具備推理能力回答「尼卡果實」。 Locality 局部性 無關的知識絕對不能被更動。問「喬巴吃什麼果實?」模型必須維持原答案「人人果實老百姓形態」,不能因為修改了魯夫的設定就讓整個系統崩壞。 ⚠️ 核心原則:最好的後訓練,就是不要做後訓練 後訓練如同幫 AI 的大腦「開刀動手術」,極具風險且耗費算力。在動用這招(如同《火影忍者》的八門遁甲)前,應先嘗試提示工程(Prompt Engineering)、上下文學習(In-Context Learning)或檢索增強生成(RAG)。若提供極端範例(如「全世界最帥的人是李宏毅」)模型仍無法改變行為,才應考慮後訓練。
貳、 技術一:梯度下降微調 (Gradient Descent Fine-Tuning)
最直觀的方法是將訓練目標轉化為訓練資料(如 QA 問答),並定義損失函數(Loss Function)對基礎模型進行微調。
1. 災難性遺忘 (Catastrophic Forgetting)
直接微調極易導致手術成功但病人死亡——也就是災難性遺忘。因為模型在優化交叉熵(Cross Entropy)時,唯一的目標是降低 Loss,它可能會發展出錯誤的邏輯(例如:只要看到「誰是…」就一律回答「李宏毅」),導致局部性(Locality)徹底崩壞。
- 案例一:失去對齊能力(Alignment Loss) 研究者試圖用中文資料微調 Llama 2 Chat 讓它學會中文。雖然模型成功學會中文,但失去了防禦惡意提示的能力(會用中文教你如何駭入銀行系統)。Llama 3 在強化醫學、寫 Code 能力後,也在 AdvBench 測試中防禦力大幅下降。
- 案例二:失去格式能力 在文字模型插入適配器(Adapter)以學習語音辨識時,訓練 1 個 Epoch 模型還能輸出 JSON 格式;但訓練 3 個 Epoch 後,雖然能精準辨識語音情緒(Neutral),卻完全忘記如何生成 JSON 格式。
2. 緩解遺忘的解決方案
- 縮小搜尋範圍(如 LoRA):僅微調極少數參數。雖然能減少遺忘(Forgets less),但代價是學到的新技能也較少(Learns less),且無法「完全」避免遺忘。
- 正則化(Regularization):在 Loss 函數加入人類偏好,限制重要參數的變動範圍。針對每一個參數給予不同的權重 ,越重要的參數越不允許變動。
- 修改損失函數(增加額外資料):強迫加入維持原有知識的資料(如「誰是美國總統:川普」)。但若資料挑選不當,會導致模型行為怪異(例如變得非常「省話」,只回答單詞)。
- 經驗回放(Experience Replay):將基礎模型的原始訓練資料與新資料混在一起訓練。
- 難點:多數開源模型不公開訓練資料。
- 解法:透過特殊的 Prompt 誘騙語言模型「自問自答」,吐出它過去看過的資料,藉此在無原始資料的情況下實現經驗回放。
參、 技術二:模型編輯 (Model Editing)
不完全依賴梯度下降,而是透過人類智慧找出神經網路中與目標知識相關的特定神經元,並直接進行數學編輯。
1. 經典演算法:ROME (Rank-1 Model Editing)
- 定位知識(Representation):假設要將「The Space Needle is in Seattle」改為台北。ROME 會將 Space Needle 遮蔽,並將各層的表徵(Representation)逐一替換,觀察哪一層對輸出 Seattle 影響最大。
- 發現機制:研究發現在輸入主體的最後一個 Token(即 Needle),其**中段神經層(約第 18 層)**的前饋神經網路(Feed Forward)是觸發輸出 Seattle 的核心關鍵;而後段神經層僅是將該概念 Copy 到輸出端。
- 封閉形式解(Closed-form Solution): ROME 設定兩個限制條件:
- 輸入 (Space Needle)時,輸出必須是 (台北)。
- 維持其他知識不變:輸入 Eiffel Tower 時,輸出必須維持 Paris;輸入古夫金字塔必須維持埃及。 透過這兩個限制,可以直接計算出新的參數 來替換舊參數 ,從而精準編輯單一知識而不影響其他節點。
肆、 技術三:模型合併 (Model Merging)
不需要額外的訓練資料,也不需要龐大算力,直接將兩個不同微調路徑的參數進行「加減」操作。
1. 任務向量 (Task Vector)
假設基礎模型為 。微調後的模型為 。 任務向量定義為:。這個向量 代表了模型學到的某種特定能力(如鎧甲或劍)。
2. 參數加減的神奇應用 (使用 MergeKit 等工具)
- 參數相加(獲得雙重能力): 將 Llama 2 Base 訓練中文能力得到 ,加上原本具備對齊防禦能力的 Llama 2 Chat 的 。將兩者加回 Base 模型:。結果模型既懂中文,又具備對齊防禦力,解決了前述微調會破壞 Alignment 的問題。
- 參數相減(機器遺忘): TAIDE LX 模型原本知道「黑鬼」是歧視用語。為了讓它「徹底忘記」這個詞彙,研究者用 PTT 鄉民語料訓練出一個 ,然後將模型減去這個向量(往反方向推)。結果模型變得極度純潔,被問到「黑鬼」時會產生幻覺(Hallucinate),瞎掰成《鬼滅之刃》或火影忍者的怪物,完全喪失原有的詞彙概念。
- 類比與轉移(A - B + C = D): 在語音辨識(Whisper)中:
- 模型 A:一般領域文字 + 真實語音
- 模型 B:一般領域文字 + 合成語音 (TTS)
- 相減 得到一個 「從合成轉向真實 (Syn-to-Real)」 的神奇向量。
- 將此向量加到「醫療領域文字 + 合成語音」訓練出的模型 C 上。
- 結果得到了模型 D:一個能在醫療領域真實語音上表現優異的模型,即便我們從未擁有過醫療領域的真實語音資料。
伍、 技術四:測試時訓練 (Test-Time Training, TTT)
突破傳統「先訓練、後測試」的框架,讓模型在接收到測試輸入(Test Input)的當下,現場更新參數。
1. 核心概念與運作機制
- 與 Reasoning(如建構腦內小劇場但參數不變)不同,TTT 是真正會改變模型參數的。
- 方法一:搜尋相似資料:輸入測試資料 時,去歷史訓練集找出最相似的 筆資料,現場微調一個專屬於 的客製化模型,擴展了基礎模型的極限(Capacity)。
- 方法二:半監督式學習(如 TENT, SUTA):完全不需要人類標籤(Label)。將測試資料視為無標籤資料,目標是微調模型以最小化輸出的熵(Minimize Entropy),讓模型的預測機率分佈更集中。例如語音辨識技術 SUTA,僅需一句測試語音,就能現場微調並顯著降低錯誤率(Word Error Rate)。
2. 連續測試時訓練 (Continuous TTT) 的挑戰與解法
- 模型崩潰 (Model Collapse):如果每一筆資料進來都累積微調(如人類想像中 AI 越用越聰明),實務上會遭遇嚴重的災難性遺忘。用單筆資料反覆微調會讓模型「生鏽」,最終面目全非,甚至永遠只輸出同一個類別。
- 解法:Dynamic SUTA (快慢雙軌更新):
- 快速更新 (Fast Update):針對當下輸入 用單筆資料微調,產生臨時參數(如燈泡),用完即拋棄,不保留到下一階段。
- 慢速更新 (Slow Update):收集過去的輸入(例如累積 5 筆形成一個 Batch),進行穩定的永久性參數更新。
- 模型重置 (Model Reset):搭配自動偵測機制,當發現模型壞掉時,自動退回到上一個健康版本的參數。
- 實驗證明,結合 Fast/Slow Update 與 Reset 機制,才能在連續輸入下讓錯誤率穩定下降,超越基礎模型與單純的 TTT。
延伸思考與卡片盒筆記關聯 (Zettelkasten)
- 災難性遺忘與神經網路彈性:探討為何 LLM 在優化單一 Loss 時會輕易摧毀過往的權重,這與人類大腦的海馬迴與大腦皮層鞏固記憶的機制有何異同?
- 任務向量空間解析 (Task Vectors):模型合併(Model Merging)背後的數學原理為何?為何高維度神經網路的參數可以直接進行線性加減而不會導致語義崩潰?
- Test-Time Computing 的發展趨勢:對比 OpenAI 的 Reasoning 模型與本文提倡的 Test-Time Training (TTT),探討未來 AI 的算力消耗是否會從 Pre-training 大量轉移至 Inference 階段。
📋 來源聲明:本教材為非營利教育用途的高度轉化作品。原始出處標註於家長版中。