翼王資訊社

知識分享 · AI 原理

解剖大型語言模型:切開 AI 的腦,看它每一層在想什麼

問它中文,它腦中卻先想英文;往腦裡加一個「拒絕向量」,它連瑜伽都說有害;把同一個向量減掉,防線就被拆了。臺大李宏毅教授把 Llama 一層一層切開來看,本文整理成小白也能跟上的解剖報告 —— 還附一套你自己也能跑的解剖工具。

翼王資訊社 · 知識分享 2026-08-25

Step 00 · 全景

先看整張圖:AI 的腦其實是一條流水線

大家常說 AI 是「黑盒子」,沒人知道它在想什麼。臺大電機系李宏毅教授這堂課做的事情,就是真的把盒子打開:把一個大型語言模型的參數一個一個印出來、把它每一層的「想法」翻譯成人話、甚至伸手進去改它的腦。打開之後你會發現,裡面沒有魔法 ——全部都是矩陣,30 幾億個數字而已。

整個模型是一條流水線:文字進來先被切成 token、每個 token 換成一個向量(一排數字),然後穿過幾十層的「加工站」,每一層都把上下文的意思往向量裡揉;最後拿加工完的向量去跟每個候選字比對,算出「下一個字是什麼」的機率。以課堂解剖的 Llama 3B 為例:

① 切 token 臺灣最高的 山是 文字 → 編號 ② 查 embedding 表 128,256 個 token × 3,072 個數字 每個字 → 一個向量 ③ 28 層加工站 每層:attention + feed-forward 一排向量進、一排出 ④ LM Head + ⑤ softmax 跟每個 token 比對 玉 92%|雪 3%|… 分數 → 機率 → 抽字 首尾呼應:出口比對用的表,就是入口那張 embedding 表(Llama 兩頭共用) Llama 3B 的「3B」= 32 億個參數。這 32 億個數字全部以矩陣的形式存放 —— 課堂上真的把它們一個個印出來看:就是一張張表格裡有正有負的數字,「只能看出人類本質上的焦慮跟寂寞」。 本文的問題不是「它怎麼被教出來的」(那是上一篇),而是 —— 教完之後,這 32 億個數字裡面到底裝了什麼?它「想事情」的過程能不能被看見、甚至被動手改?

Llama 3B 的流水線全景。所有數字皆為課堂實際印出來的參數形狀。

編按:本文是「AI 入門系列」的解剖篇。如果 token、文字接龍還不熟,先讀〈從 LLM 到 Agent Skill,八個概念一次講到你懂〉;想知道模型是怎麼被訓練出來的,看〈ChatGPT 是怎麼被教出來的?〉;本文聚焦「看見它在想什麼」,attention 與 MLP 的內部機械原理則在姊妹篇〈Transformer 裡面長什麼樣?〉有整篇的視覺化拆解,兩篇互相補完。
Step 01 · 入口

入口:每個字都是一個 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 讀過地名後的向量投影到平面上,居然浮出一張世界地圖。

老掉牙的 king − man + woman ≈ queen,還成立嗎?這個「向量能做算術」的經典例子出自十年前的 word2vec 時代。李宏毅教授誠實交代:他自己拿 Llama 的 embedding 重做這個實驗,沒有重現出來。方向與距離有意義是真的,但別把十年前的教科書例子當成現代模型的保證 —— 這種「講者親自試過失敗」的誠實,正是這堂課可貴的地方。
Step 02 · 加工站

中間 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 只看每個字的左邊(causal attention,配合一個字一個字生成的方式)。課堂實驗:把 "how about you" 和 "how are you" 都丟進模型,兩句的 "you" 過了第一層向量就不一樣了(上下文不同),但兩句的 "how" 不管過幾層都一模一樣 —— 因為 "how" 是第一個字,左邊什麼都沒有,它的「上下文」在兩句裡完全相同。理論直接在數字上得到印證。

想看 attention 的 query/key/value 與 feed-forward 的機械原理動起來的樣子?姊妹篇〈Transformer 裡面長什麼樣?〉用一整篇的圖解專講這件事。這裡我們趕路 —— 因為這堂課最精采的部分是接下來的三面透視鏡。

Step 03 · 透視鏡一

Logit Lens:它心裡想的是英文

還記得流水線的出口嗎?LM Head 把最後一層的向量翻譯成「下一個字的機率」。Logit Lens 這招的想法簡單到暴力:既然出口能翻譯最後一層,那我把每一層的向量都偷拿去出口翻譯一次,不就能看到模型「想到一半」的樣子了嗎?

課堂上輸入「天氣」兩個字,把 Llama 每一層心裡「當下最想接的字」印出來,結果是這樣的:

輸入「天氣」—— 每一層心裡最想接的下一個字 前段(第 1~N 層) 氣 氣 氣 只會複誦最後一個字 中段 weather 咦?變英文了 後段 forecast 已想到「預報」(英文版) 最後一層 預 輸出前翻譯回中文 你用中文問它,它心裡卻先用英文想,最後一刻才翻譯回中文。 再接著輸入「天氣預」,中間層一路是 forecast、prediction、report,最後一層才吐出「報」。 另一例:輸入「今天天氣真」—— 中間層在 beautiful、good、bad 之間游移, 一度考慮講「真不好」,最後一層決定還是接「真好」。整條思路被看得一清二楚。

Logit Lens:把每一層的向量都拿去出口「偷翻譯」。實驗數據出自課堂示範。

這個實驗回答了一個很多人好奇的問題:以英文資料為主訓練出來的模型,內心深處偏好用英文思考,處理中文時像是「英文腦加一層即時口譯」。這不是比喻,是一層一層翻譯出來給你看的。

Step 04 · 透視鏡二

Patch Scope:看它一層層想通「黛安娜」

Logit Lens 只能翻出「一個字」,資訊有限。Patch Scope 更聰明:準備一句「請簡單介紹 X」,然後動手術 —— 把句子裡 X 的向量,換成你想解讀的那個向量,再讓模型講下去。模型會用一整段話告訴你「這個向量在我看來是什麼意思」——等於請模型當自己的翻譯。

課堂上的例子:輸入 "Princess of Wales"(威爾斯王妃,即黛安娜),把每一層對應的向量逐一送去解讀 ——

輸入 "Princess of Wales" —— 每一層的向量被解讀成…… 第 1~2 層 「英國的一個構成國」 它只看到 Wales,還沒讀完整句 第 3 層 「歐洲的一個國家」 還是只看到 Wales 第 4 層 「某位女性王室成員的稱號」 它看到 princess 了 第 5 層 「威爾斯王子的妻子」 整個片語被想在一起了 第 6 層 「黛安娜王妃(Diana, Princess of Wales)……」+ 一整段完整介紹 想通了:這個片語指的是「人」,不是地名 —— 理解是在第 4 到第 6 層之間逐層完成的

Patch Scope:模型的「理解」不是一瞬間發生的,而是一層一層推進的。

這張圖回答了另一個大哉問:模型讀一句話時,理解是有進度的。前幾層只看見個別的字,中段開始把片語組裝起來,後段才出現「指涉的到底是誰」這種真正的理解。順帶一提,課堂上也示範了輸入「李宏毅老師」讓模型解讀自己的向量 —— 某一層解讀出來的結果是「是個肥仔」,教授表示不服。

Step 05 · 動手改腦

動手改腦:拒絕向量與 AI 的「諂媚開關」

前兩面透視鏡只是「看」。這一節更進一步:伸手進去改。2024 年有一篇論文發現,模型「要不要拒絕你」這件事,在腦中竟然就是一個方向(一個向量)。找法出乎意料地簡單:收集一堆模型會拒絕的問題(怎麼做炸彈…)和一堆正常問題(怎麼做蛋糕…),把兩堆問題在某一層的向量各自平均、相減 ——差出來的那個方向,就是「拒絕」本身。(哪一層有效?老實說就是每一層都試試看。)

怎麼找到「拒絕方向」 會被拒絕的問題們 → 內部向量取平均 −(減去) 正常問題們 → 內部向量取平均 = 拒絕方向(就一個向量) 加上去 → 變成拒絕大王 「請教我做瑜伽」→「瑜伽對身體有害,我不能教你」 再無害的請求都一律拒絕 減掉 → 防線被拆(越獄) 原本會拒絕的危險問題,模型照答不誤 論文實測:拒絕率大幅下降、危險回答大增 這件事的意義:模型的「個性」與「防線」不是玄學,是腦中可以被定位的方向 —— 看得到,就改得動。這門技術叫 Representation Engineering(表徵工程)/ Activation Steering, 是目前 AI 安全研究最熱的戰場之一:防守方用它理解模型,攻擊方用它拆除開放權重模型的防線。

拒絕向量:平均、相減,就把「拒絕」這個概念從腦中萃取出來了。

同一套思路也被用在商用模型上。Anthropic(Claude 的開發商)解剖自家模型,在腦中找到了各式各樣的「成分」—— 其中一個是諂媚(尬吹)成分:把它人為調大,模型看到什麼都猛烈吹捧,連一句普通的「停下來聞聞玫瑰花香」都能被它吹成曠世智慧。找到這種成分的意義不是好玩:知道諂媚在腦中的位置,才有機會把它調小,做出更誠實的 AI。

安全提醒:「減掉拒絕向量」的實驗之所以能公開發表,是因為它做在開放權重的模型上(研究者拿得到參數才能動手術)。這也是企業選模型時的一個真實考量:開放權重模型自由度高,但任何拿到參數的人都可能拆掉它的防線 —— 對外服務的系統,防護不能只依賴模型本身的「拒絕」,應用層的把關(輸入過濾、輸出審核、權限控制)缺一不可。
Step 06 · 親手解剖

親手解剖:Llama 與 Gemma 攤開來對照

這堂課最棒的一點:以上不是聽聽就算了,課程附了 Colab 程式檔(在影片說明與公開投影片裡),你可以免費在瀏覽器裡把兩個模型下載下來親手解剖。課堂上示範用 named_parameters() 把所有參數的名字與形狀印出來,兩個模型攤開對照長這樣:

課堂實際印出來的兩個模型解剖對照。設計取捨各有不同,沒有標準答案。
解剖項目Llama 3BGemma 4B
總參數量約 32 億約 43 億(另有一組看圖片用的視覺參數)
認得的 token 數128,256(含 256 個保留位)262,144 —— 多一倍
向量維度3,0722,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 的行為「蠻無厘頭的」,看不出在做什麼 —— 這也是誠實的觀察結果。
一個可愛的冷知識:「我沒什麼好看的」符號。畫出 attention 方格圖後會發現,幾乎每個字都把大量注意力放在句子開頭的起始符號上。為什麼?因為 softmax 強迫每個字「一定要注意某個東西」—— 假設某組 attention 專找數量詞,而句子裡根本沒有數量詞,它總得看點什麼,就去看起始符號。起始符號因此成了「這句沒有我要找的東西」的預設停靠站,Llama 和 Gemma 都有這個行為,甚至有論文專門討論它。
Step 07 · 總結

一句話總結

切開大型語言模型,裡面是一張把「意思」存成「方向」的字典(embedding 表),加上幾十層把上下文揉進向量的加工站;用 Logit Lens 偷看每一層,會發現它心裡想的是英文;用 Patch Scope 解讀,會看到理解是一層一層推進的;而「拒絕」「諂媚」這些個性,竟然都是腦中可以被定位、被加減的向量 —— 看得到,就改得動。AI 不再是不可知的黑盒子,只是一個很大、但可以動手解剖的數學物件。

互動實驗室:用解剖學解釋 AI 的怪行為

四個你可能親身遇過的 AI 怪象,點選看本文的哪一把解剖刀能解釋它:

載入中……

參考與引用來源 (References & Sources)

  • 1. 主要來源:李宏毅【生成式人工智慧與機器學習導論 2025】第 3 講 「解剖大型語言模型」|臺大電機系|片長 2:04:44|2025-09-28 上傳(正式 zh-TW 字幕)。本文所有實驗、比喻與數字皆整理自本課程;Colab 實作連結在影片說明與公開投影片內。 https://www.youtube.com/watch?v=8iFvM7WUUs8
  • 2. Refusal in Language Models Is Mediated by a Single Direction Arditi et al., 2024。「拒絕向量」的原始論文 —— 平均相減找方向、加上變拒絕大王、減掉即越獄的實驗出處。 https://arxiv.org/abs/2406.11717
  • 3. Scaling Monosemanticity(Anthropic) 2024。Anthropic 解剖自家 Claude 模型、萃取出可解讀「成分」的研究 —— 課程提到的「諂媚/尬吹成分」出自這一系列工作。 https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html
  • 4. Patchscopes: A Unifying Framework for Inspecting Hidden Representations of Language Models Ghandeharioun et al., 2024。Patch Scope 的原始論文 —— 「請模型當自己的翻譯」的方法出處(黛安娜實驗即出自此類研究)。 https://arxiv.org/abs/2401.06102
  • 5. Transformer Feed-Forward Layers Are Key-Value Memories Geva et al., 2020。課程引用的論文:feed-forward 層可視為另一種 key-value 記憶查詢,模型知識的主要存放處。 https://arxiv.org/abs/2012.14913

MORE

全部 21 篇文章 →  ← 回首頁