知識分享 · AI 原理
解剖大型語言模型:切開 AI 的腦,看它每一層在想什麼
問它中文,它腦中卻先想英文;往腦裡加一個「拒絕向量」,它連瑜伽都說有害;把同一個向量減掉,防線就被拆了。臺大李宏毅教授把 Llama 一層一層切開來看,本文整理成小白也能跟上的解剖報告 —— 還附一套你自己也能跑的解剖工具。
先看整張圖:AI 的腦其實是一條流水線
大家常說 AI 是「黑盒子」,沒人知道它在想什麼。臺大電機系李宏毅教授這堂課做的事情,就是真的把盒子打開:把一個大型語言模型的參數一個一個印出來、把它每一層的「想法」翻譯成人話、甚至伸手進去改它的腦。打開之後你會發現,裡面沒有魔法 ——全部都是矩陣,30 幾億個數字而已。
整個模型是一條流水線:文字進來先被切成 token、每個 token 換成一個向量(一排數字),然後穿過幾十層的「加工站」,每一層都把上下文的意思往向量裡揉;最後拿加工完的向量去跟每個候選字比對,算出「下一個字是什麼」的機率。以課堂解剖的 Llama 3B 為例:
Llama 3B 的流水線全景。所有數字皆為課堂實際印出來的參數形狀。
入口:每個字都是一個 3072 維的向量
流水線的第一站是一張巨大的對照表 —— token embedding 表。Llama 3B 認得 128,256 個 token,每個 token 對應一排 3,072 個數字(一個 3,072 維的向量)。單獨看某個 token 的向量,就是一堆看不出意義的小數;但課堂上做了一個實驗:拿一個 token 的向量,去跟其他所有 token 的向量算相似度,事情就有趣了 ——
- 跟小寫 apple 最像的,除了各種大小寫與加空白的變體,還有中文的「蘋果」,以及 Cupertino(蘋果公司總部所在地)。
- 換成首字母大寫的 Apple,最像的變成 MacBook 和 iPhone —— 模型知道大寫的 Apple 比較像那家公司。
- 中文的「王」,最像的是英文的 king,還有同為姓氏的「黃」;「李」最像英文的 LEE、姓氏「劉」,甚至還有阿拉伯語系某語言裡的「李」——不同語言、相同意思的 token,向量就是靠在一起的。
也就是說,這張表不是亂數 —— 訓練完之後,「意思」變成了空間中的「方向與距離」。研究者還在這個空間裡找到更多結構:2019 年就有人發現 BERT 的中間層藏著文法樹;有人把 Llama 讀過地名後的向量投影到平面上,居然浮出一張世界地圖。
中間 28 層在做什麼:把上下文揉進去
入口那張表有個致命限制:同一個字,查出來的向量永遠一樣。「兩顆青蘋果」的「果」和「青山綠水紅蘋果」的「果」,在第 0 層一模一樣。中間這 28 層的工作,就是把上下文一層層揉進向量裡,讓它從「查字典的意思」變成「在這句話裡的意思」—— 術語叫 contextualized embedding(語境化的向量)。每一層裡有兩個加工步驟:
- Attention(注意力):先找出「哪些字會影響我的意思」——「果」的向量發出一個「提問」(query),其他字的向量各自亮出「標籤」(key),兩兩算內積,分數高的(「青」「蘋」)就把自己的資訊(value)按比例搬過來加進「果」裡。而且這樣的搜尋不只一組:Llama 每層有 24 組 attention 同時進行(multi-head),可能一組專找形容詞、一組專找數量——「兩顆」的「兩」對「果」也很重要,只是重要在另一個面向。
- Feed-forward(前饋網路):attention 揉完的向量,再各自通過兩層矩陣運算加工(3,072 維先放大到 8,192 維、再壓回來)。有篇論文的標題直接告訴你它在做什麼:Transformer Feed-Forward Layers Are Key-Value Memories——它像另一種形式的記憶查詢,模型的「知識」大量存在這裡。
課堂上還補了兩個容易被神化的細節。其一,residual connection:就算「果」自己的權重只剩 0.07,原本的向量會直接繞道加回來,所以模型不會揉一揉就忘了自己是誰。其二,所謂「神經元」——把矩陣運算的其中一行拆出來畫成一個圈圈,就叫神經元。教授的吐槽很精采:「只說這是矩陣運算聽起來不夠潮,沒辦法騙騙麻瓜,所以就說它是模仿人腦的神經元」——拆開來看,全部都只是矩陣乘法而已。
想看 attention 的 query/key/value 與 feed-forward 的機械原理動起來的樣子?姊妹篇〈Transformer 裡面長什麼樣?〉用一整篇的圖解專講這件事。這裡我們趕路 —— 因為這堂課最精采的部分是接下來的三面透視鏡。
Logit Lens:它心裡想的是英文
還記得流水線的出口嗎?LM Head 把最後一層的向量翻譯成「下一個字的機率」。Logit Lens 這招的想法簡單到暴力:既然出口能翻譯最後一層,那我把每一層的向量都偷拿去出口翻譯一次,不就能看到模型「想到一半」的樣子了嗎?
課堂上輸入「天氣」兩個字,把 Llama 每一層心裡「當下最想接的字」印出來,結果是這樣的:
Logit Lens:把每一層的向量都拿去出口「偷翻譯」。實驗數據出自課堂示範。
這個實驗回答了一個很多人好奇的問題:以英文資料為主訓練出來的模型,內心深處偏好用英文思考,處理中文時像是「英文腦加一層即時口譯」。這不是比喻,是一層一層翻譯出來給你看的。
Patch Scope:看它一層層想通「黛安娜」
Logit Lens 只能翻出「一個字」,資訊有限。Patch Scope 更聰明:準備一句「請簡單介紹 X」,然後動手術 —— 把句子裡 X 的向量,換成你想解讀的那個向量,再讓模型講下去。模型會用一整段話告訴你「這個向量在我看來是什麼意思」——等於請模型當自己的翻譯。
課堂上的例子:輸入 "Princess of Wales"(威爾斯王妃,即黛安娜),把每一層對應的向量逐一送去解讀 ——
Patch Scope:模型的「理解」不是一瞬間發生的,而是一層一層推進的。
這張圖回答了另一個大哉問:模型讀一句話時,理解是有進度的。前幾層只看見個別的字,中段開始把片語組裝起來,後段才出現「指涉的到底是誰」這種真正的理解。順帶一提,課堂上也示範了輸入「李宏毅老師」讓模型解讀自己的向量 —— 某一層解讀出來的結果是「是個肥仔」,教授表示不服。
動手改腦:拒絕向量與 AI 的「諂媚開關」
前兩面透視鏡只是「看」。這一節更進一步:伸手進去改。2024 年有一篇論文發現,模型「要不要拒絕你」這件事,在腦中竟然就是一個方向(一個向量)。找法出乎意料地簡單:收集一堆模型會拒絕的問題(怎麼做炸彈…)和一堆正常問題(怎麼做蛋糕…),把兩堆問題在某一層的向量各自平均、相減 ——差出來的那個方向,就是「拒絕」本身。(哪一層有效?老實說就是每一層都試試看。)
拒絕向量:平均、相減,就把「拒絕」這個概念從腦中萃取出來了。
同一套思路也被用在商用模型上。Anthropic(Claude 的開發商)解剖自家模型,在腦中找到了各式各樣的「成分」—— 其中一個是諂媚(尬吹)成分:把它人為調大,模型看到什麼都猛烈吹捧,連一句普通的「停下來聞聞玫瑰花香」都能被它吹成曠世智慧。找到這種成分的意義不是好玩:知道諂媚在腦中的位置,才有機會把它調小,做出更誠實的 AI。
親手解剖:Llama 與 Gemma 攤開來對照
這堂課最棒的一點:以上不是聽聽就算了,課程附了 Colab 程式檔(在影片說明與公開投影片裡),你可以免費在瀏覽器裡把兩個模型下載下來親手解剖。課堂上示範用 named_parameters() 把所有參數的名字與形狀印出來,兩個模型攤開對照長這樣:
| 解剖項目 | Llama 3B | Gemma 4B |
|---|---|---|
| 總參數量 | 約 32 億 | 約 43 億(另有一組看圖片用的視覺參數) |
| 認得的 token 數 | 128,256(含 256 個保留位) | 262,144 —— 多一倍 |
| 向量維度 | 3,072 | 2,560 |
| 層數 | 28 層 | 34 層 |
| 每層 attention 組數 | 24 組 | 8 組 |
| feed-forward 中間維度 | 放大到 8,192 | 放大到 10,240 |
課堂上還用這套工具跑了兩個漂亮的驗證實驗:
- 歧義實驗:準備四個句子 —— 兩句的 apple 是能吃的蘋果、兩句的 apple 是那家公司。把四個 apple 在每一層的向量兩兩算相似度:意思相同的兩個 apple,相似度每一層都維持很高;意思不同的組合,相似度隨層數一路下降。模型真的分得出「哪些 apple 是同一個意思」——即使上下文完全不同。
- Attention 視覺化:把 attention 的權重畫成方格圖。在 "the apple is green. what color is the apple?" 這句裡,能親眼看到某一層的某組 attention 讓 apple 去注意 green、color 去注意 green——教科書上的理論就在你眼前發生。也有很多組 attention 的行為「蠻無厘頭的」,看不出在做什麼 —— 這也是誠實的觀察結果。
一句話總結
切開大型語言模型,裡面是一張把「意思」存成「方向」的字典(embedding 表),加上幾十層把上下文揉進向量的加工站;用 Logit Lens 偷看每一層,會發現它心裡想的是英文;用 Patch Scope 解讀,會看到理解是一層一層推進的;而「拒絕」「諂媚」這些個性,竟然都是腦中可以被定位、被加減的向量 —— 看得到,就改得動。AI 不再是不可知的黑盒子,只是一個很大、但可以動手解剖的數學物件。
互動實驗室:用解剖學解釋 AI 的怪行為
四個你可能親身遇過的 AI 怪象,點選看本文的哪一把解剖刀能解釋它:
參考與引用來源 (References & Sources)
- 1. 主要來源:李宏毅【生成式人工智慧與機器學習導論 2025】第 3 講 https://www.youtube.com/watch?v=8iFvM7WUUs8
- 2. Refusal in Language Models Is Mediated by a Single Direction https://arxiv.org/abs/2406.11717
- 3. Scaling Monosemanticity(Anthropic) https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html
- 4. Patchscopes: A Unifying Framework for Inspecting Hidden Representations of Language Models https://arxiv.org/abs/2401.06102
- 5. Transformer Feed-Forward Layers Are Key-Value Memories https://arxiv.org/abs/2012.14913