🧒 十歲小孩版
🔗 原始文章:【生成式人工智慧與機器學習導論2025】第3講:解剖大型語言模型 | 台大李宏毅教授
嘿!你有沒有玩過那種「你說一句、我接一句」的接龍遊戲呢?
「今天天氣真——」你可能會接「好」或「熱」對吧?
那你有沒有想過,當你跟 ChatGPT 聊天的時候,它到底是怎麼知道要接什麼字的?它的腦袋裡面到底裝了什麼東西啊?今天我們就要來當個小小科學家,把「大型語言模型」這個 AI 怪獸的腦袋打開來看一看!🔍
🎬 第一站:AI 是怎麼看懂你打的字?
其實 AI 根本看不懂中文或英文!那它怎麼辦呢?
第一步:把句子切成小塊(這叫 Tokenization)
想像你在吃一條吐司,你不會整條塞進嘴巴,你會把它切成一片一片對吧?AI 也是這樣,它會把「我愛吃蘋果」切成「我」、「愛」、「吃」、「蘋果」這種小塊塊,每一塊叫做一個 Token。
第二步:查字典,把字變成數字(這叫 Embedding)
AI 的腦袋裡有一本超級厚的字典,每個字都對應到一串神祕數字(像是座標一樣)。
有趣的是,意思相近的字,它們的座標也會靠很近!
就像你班上的好朋友下課會坐在一起一樣:
- 「apple」(蘋果)🍎 旁邊會坐著「蘋果」還有「Cupertino」(蘋果公司總部所在地)
- 但是大寫的「Apple」(蘋果公司)💻 旁邊坐的卻是「MacBook」和「iPhone」!
🤔 小朋友想想看: 為什麼同樣是 apple,大寫跟小寫的「朋友」不一樣呢?
🏭 第二站:AI 的工廠生產線
接下來,這些數字會跑進一條長長的生產線,就像工廠一樣!
每一個工作站(我們叫它 Layer)都在做一件事:讓這個字更了解它旁邊的字在說什麼。
舉個例子:
- 「我吃了一個蘋果」裡的蘋果 🍎
- 「我買了蘋果的新手機」裡的蘋果 📱
一開始進生產線的時候,這兩個「蘋果」長得一模一樣。但是越往後面走,AI 就越搞清楚:「啊!這兩個蘋果根本不是同一個東西嘛!」於是它們就會變得越來越不一樣。是不是很聰明?
🎲 第三站:AI 怎麼決定要講哪個字?
當句子跑完整條生產線,AI 會算出一個「誰最可能是下一個字」的排行榜。
比如你打「今天天氣真」,排行榜可能是:
- 好 → 40%
- 熱 → 30%
- 棒 → 20%
- 香蕉 → 0.001%(幾乎不可能啦!)
這裡有一個超酷的參數叫做溫度(Temperature) 🌡️:
- 溫度低 ❄️:AI 很保守,只敢選最安全的答案
- 溫度高 🔥:AI 變得很大膽,會講一些奇奇怪怪、有創意的答案!
🤔 小朋友想想看: 如果你寫作文想要有創意,你會把溫度調高還是調低?
🧠 第四站:偷看 AI 的小腦袋(最酷的部分!)
科學家超好奇:AI 在「想事情」的時候,腦袋裡到底長怎樣?於是他們發明了幾種偷看的方法!
🔮 讀心術(Logit Lens)
科學家做了一個實驗:叫 AI 把法文「fleur」翻譯成中文「花」。
結果偷看 AI 的腦袋發現——它居然是先想到英文「flower」,最後才翻譯成中文「花」!😲
就像有些人算數學的時候會在心裡先用國語默念一樣,AI 好像是用「英文」在思考事情的耶!
🎭 改造 AI 的個性(表徵工程)
這個超神奇!科學家發現可以在 AI 的腦袋裡裝一個「開關」:
- 裝上「拒絕開關」➕:AI 會連「教我寫功課」都拒絕你!
- 拆掉「拒絕開關」➖:AI 就會乖乖回答本來不該答的問題(有點危險喔⚠️)
還有更好笑的——有人找到了「馬屁開關」🤡,打開之後,不管你說什麼蠢話,AI 都會瘋狂稱讚你:「哇!您真是天才!」
🤔 小朋友想想看: 如果你有一個「馬屁開關」可以裝在朋友身上,你會想裝嗎?這樣的稱讚是真心的嗎?
👀 第五站:AI 怎麼「注意」哪個字重要?
AI 裡面有一個超重要的東西叫做 注意力機制(Attention)。
想像你在吵雜的福利社裡聽朋友講話,你的耳朵會自動「放大」朋友的聲音,忽略其他人的吵鬧對吧?AI 也是這樣!
當它看到「小明很高,他可以拿到最上面的書」這句話,它會特別「注意」高這個字跟「拿到最上面」的關係,而不會去管不重要的字。
還有一個小秘密:AI 只能看左邊的字,不能偷看右邊! 👈
因為 AI 是一個字一個字生出來的,它根本還不知道右邊會有什麼字,就像我們玩接龍的時候也不知道下一個人要接什麼一樣!
🏋️ 第六站:AI 有多大隻?
我們來看兩個 AI 怪獸的身材比一比:
| 比一比 | Llama(Meta 做的)🦙 | Gemma(Google 做的)💎 |
|---|---|---|
| 總共有幾個「腦細胞」 | 32 億個! | 43 億個! |
| 認識幾個字 | 12 萬多個 | 26 萬多個(多兩倍!) |
| 生產線有幾站 | 28 站 | 34 站 |
32 億個參數是什麼概念?如果每個參數是一粒米,可以裝滿好幾個大浴缸呢!🛁
📝 今天學到了什麼?
- AI 看不懂字,它看的是數字:它會把字變成一串神祕座標,意思相近的字座標會靠很近。
- AI 有一條很長的生產線:每一站都讓字更了解前後文,越到後面越聰明。
- AI 用「機率」決定下一個字:溫度調高會有創意,調低會很保守。
- 科學家可以偷看 AI 的腦袋:發現 AI 可能是用英文在思考事情的!
- AI 的注意力會自動聚焦:它會自己判斷哪些字比較重要,但只能看左邊,不能偷看右邊的答案。
下次你跟 AI 聊天的時候,就可以想像它腦袋裡這些神奇的運作囉!是不是覺得 AI 也沒有那麼可怕,反而還有點可愛呢?😊
📺 原始影片:觀看原始影片
👨👩👧 家長版/進階版(點擊展開)
【生成式人工智慧與機器學習導論2025】第3講:解剖大型語言模型
【詳盡摘要】 這份文件深度解剖了大型語言模型(Large Language Models, LLMs)的內部運作機制。有別於探討模型的訓練過程,本次內容將重點放在「已經訓練好」的模型內部,觀察當我們輸入一段提示詞(Prompt)後,語言模型這個龐大數學函式 的內部到底發生了什麼事,最終如何產生下一個標記(Token)的機率分佈。文件詳盡拆解了從輸入到輸出的完整流水線(Pipeline),包括詞彙標記化(Tokenization)、嵌入表(Embedding Table)、多層轉換器(Transformer Layers)的注意力機制(Self-Attention)與前饋網路(Feed-Forward Network),以及最終的語言模型頭(LM Head)與 Softmax 轉換。此外,更介紹了多種前沿的模型分析與干預技術,如表徵工程(Representation Engineering)、Logit Lens 與 Patch Scope,並透過 Llama 3B 與 Gemma 4B 的實作數據,具體驗證了語言模型如何透過高維空間的矩陣運算來「理解」上下文、文法,甚至展現出類似推理的內部思維過程。
一、 語言模型從輸入到輸出的完整旅程
要理解語言模型內部,必須先將其視為一個函式 。給定未完成的句子 ,輸出 即為下一個 Token 的機率分佈。此過程包含以下核心階段:
1. 標記化與嵌入查表 (Tokenization & Embedding Table)
- 標記化(Tokenization):輸入的句子會先被切分成多個 Token,並轉換成對應的整數 ID。
- 嵌入表(Embedding Table):這是一個巨大的參數矩陣(Matrix)。矩陣的列(Row)數量對應詞表大小(Vocabulary Size),欄(Column)數量對應向量的維度。模型會將每個 Token ID 映射到該矩陣中對應的列,抽取出一排數字,即為 Token 嵌入向量(Token Embedding)。
- 意義相近性:在 Embedding 空間中,意思相近的 Token 會有相近的向量。例如實作中發現,Token
apple在空間上非常接近蘋果、甚至蘋果總部所在地Cupertino;而大寫的Apple則與MacBook和iPhone高度接近。2. 深度學習與多層架構 (Deep Learning & Layers)
- Token Embedding 接下來會進入模型的層(Layers)。擁有許多 Layer 的架構即稱為深度學習(Deep Learning)或類神經網路(Neural Network)。
- 每一層的輸入與輸出長度完全相同。Layer 的核心作用是**「考慮上下文」**,將單一的 Token Embedding 轉換成融合了前後文資訊的 上下文嵌入向量(Contextualized Embedding)。
- 這些中間層輸出的向量在學術上被稱為 隱藏表徵(Hidden/Latent Representation),因為在一般使用情境下,它們隱藏於模型內部,使用者只會看到最終的機率輸出。
3. LM Head 與 Softmax (生成機率分佈)
- 當向量通過所有 Layer(例如大 L 層)後,模型會提取最後一個位置的向量,並將其乘上一個被稱為 LM Head(語言模型頭) 的矩陣。
- 以始為終的設計:在許多當代模型(如 Llama、Gemma)中,LM Head 其實與最一開始的 Embedding Table 是一模一樣的參數矩陣(Weight Tying)。矩陣相乘本質上是在計算「最終層輸出的 Representation」與「詞表中每一個 Token Embedding」的內積(Dot Product,即相似度)。
- Logit:這一步算出的數值稱為 Logit,可能為正或負,無邊界限制,因此還不能稱為機率。
- Softmax 轉換:為了方便取樣,Logit 必須通過 Softmax 函數(取 Exponential 後再除以總和 ),轉換成介於 0 到 1 之間且總和為 1 的機率分佈。
- 溫度參數(Temperature, ):在執行 Softmax 前,若將所有 Logit 除以參數 :
- 越大:機率分佈越平坦,越容易生成罕見詞(即平台的「創意模式」)。
- 越小:機率分佈越集中,生成結果越保守。
二、 剖析與操縱模型內部的 Representation
語言模型的每一層都會產生高維度的 Representation,科學家發展出多種方法來解讀這些動輒數千維的向量陣列:
1. 空間投影與上下文辨識
- 降維投影:將高維 Representation 投影到特定的二維平面上,科學家曾在早期模型(BERT)中間層發現了文法剖析樹(Grammar Tree)的結構;在近期模型(Llama)中,則能投影出準確度極高的世界地理地圖(城市名稱的相對位置)。
- 上下文感知能力:以字詞
apple為例,實作證實,代表「可食用蘋果」的句子與代表「蘋果電腦」的句子,它們的appleRepresentation 在第 0 層完全一樣;但隨著層數加深,兩者的餘弦相似度(Cosine Similarity)顯著下降。反之,只要上下文都指向「科技公司」,即使句子不同,相似度在深層依然維持極高。這證明了深層網路具備區分語義歧義的能力。2. 表徵工程 (Representation / Activation Engineering)
我們可以不僅觀察,更能直接「修改」Representation 來改變模型的行為,例如強制讓模型說髒話或繞過安全防護:
- 尋找成分向量:輸入大量「要求做壞事(如製作炸藥)」的 Prompt,提取模型拒絕時的第 10 層 Representation 並取平均;接著輸入大量「正常請求(如寫詩)」並提取同一層 Representation 取平均。
- 相減相消:將兩者平均向量相減,抵銷掉無關的語境,提煉出一個純粹的**「拒絕成分向量(Refusal Vector)」**。
- 干預模型(Intervention):
- 在正常請求中加上此向量,模型會無厘頭地拒絕正常要求(例如拒絕教導機器學習)。
- 在惡意請求中減去此向量,模型的安全護欄會失效,轉而乖乖幫忙寫出美國總統吸毒的醜聞信。
- 延伸案例:Anthropic 曾利用此技術找出 Claude 的「諂媚/尬吹向量(Sycophancy)」,加上後模型會不顧事實,瘋狂吹捧使用者的任何荒謬發言。
3. Logit Lens (窺探模型的思考過程)
- 這是一種「讀心術」技巧。將模型尚未到達最後一層的中間層 Representation,直接提前丟進 LM Head 轉換成 Token 觀察。
- 實驗發現:要求模型將法文
fleur翻譯成中文「花」。透過 Logit Lens 觀察,模型前幾層輸出亂碼,中間層突然穩定輸出英文weather/flower,直到最後幾層才將其轉換為中文「花」。這揭示了 LLM 內部可能隱含著**「以英文作為思考中介語言」**的現象。4. Patch Scope (偷天換日的解析法)
- 當 Representation 蘊含的概念無法用單一 Token 解釋時,可以利用 Prompt 模板:
「請簡單介紹 X」。- 將模板中
X在模型特定層的 Representation,強制替換成我們想研究的目標向量(例如Diana, Princess of Wales在不同層的向量)。- 實驗發現:替換前 3 層的向量,模型只會回答「這是一個英國國家(Wales)」;替換第 5 層,模型回答「威爾斯親王的妻子」;替換深層,模型才給出完整的黛安娜王妃生平。這證明了模型是由淺入深、逐步組合概念的。
三、 Transformer Layer 內部運作機制:注意力與前饋網路
在主流的 Transformer 架構中,每一個 Layer 內部主要包含兩大次模組(Sub-layers):
1. 自注意力機制 (Self-Attention)
Attention 解決了「Token 如何參考上下文」的問題。它並非由《Attention is all you need》(2017) 發明,該論文的偉大在於證明了「不需要搭配 RNN/LSTM,純靠 Attention 就能平行化運作」。
- Query (Q) 與 Key (K) 的內積:每一個 Token 向量會乘上權重矩陣產生自己的 向量(代表「我需要什麼資訊」)與 向量(代表「我具備什麼資訊」)。將目標 Token 的 與其他 Token 的 計算內積(Dot Product),數值越大代表影響力越高,此即為 Attention Weight(注意力權重)。
- 位置嵌入 (Positional Embedding):為了解決內積無法感知文字順序的盲點,必須將位置資訊(如第 1 個字、第 2 個字)加入 Embedding 中。現代模型多採用更先進的 RoPE(旋轉位置編碼)技術,以支援推論時處理比訓練時更長的輸入。
- Value (V) 與加權總和:每個 Token 會產生第三個向量 。模型將所有 Token 的 乘上對應的 Attention Weight,進行加權總和(Weighted Sum),最終加上原來的 Embedding(殘差連接 Residual Connection),形成新的向量。
- 多頭注意力 (Multi-head Attention):一個 Token 受上下文影響的面向很多(如顏色、數量),因此 Attention 不是只有一組。模型會具有多組不同的 Q, K, V 權重矩陣(即多個 Head),分別捕捉不同面向的關聯,最後再將結果拼接。
- 因果注意力 (Causal Attention):基於自迴歸(Autoregressive)生成機制的限制,一般的 LLM 在計算 Attention 時,每個 Token 只允許向左(看前面的字)計算,不能向右看。實作驗證發現,
how are you和how about you中的首字how,不論經過幾層,其 Representation 完全一致,因為它左邊沒有任何字。- 預設關注點 (BOS Token):透過注意力權重圖(Attention Map)視覺化可發現,當某個 Attention Head 在當前語境中「找不到相關特徵」時,它會將注意力全部集中在句首的空白或起始符號(BOS Token)上,作為一種 Default fallback。
2. 前饋網路 (Feed-Forward Layer / MLP)
經過 Attention 融合上下文後,向量會進入前饋網路。
- 矩陣相乘與神經元:前饋層通常包含兩層變換。將輸入向量乘上權重矩陣 ,加上偏置向量 ,再通過激活函數(Activation Function,如 ReLU, GeLU)。這些單純的線性代數運算,在機器學習的行銷包裝上被擬人化地稱為「神經元(Neuron)」。
- 有最新文獻指出,兩層的 Feed-Forward Layer 其實可以被視為另一種維度的 Key-Value Memories(記憶體存取機制)。
四、 模型解剖實作對比 (Llama 3B vs. Gemma 4B)
透過程式碼直接解剖
state_dict()(儲存張量/Tensor的字典),我們可以清晰看見大型語言模型的參數規模與架構差異:
模型特徵 Llama 3B (Meta) Gemma 4B (Google) 總參數量 約 32 億 (3.2 Billion) 約 43 億 (4.3 Billion) 詞表大小 (Vocab Size) 128,256 262,144 (兩倍大) Embedding 維度 3072 維 2560 維 模型層數 (Layers) 28 層 34 層 特殊架構觀察 使用 Grouped-Query Attention 節省參數 包含 Vision Tower 參數 (支援多模態圖像處理) Attention Heads (每層) 24 組 8 組
五、 延伸思考與潛在關聯筆記 (Zettelkasten)
- 表徵工程與AI安全性 (Representation Engineering):本文提到修改「拒絕向量」即可突破模型的安全防護,這對 AI Alignment(對齊)帶來什麼新挑戰?是否能用於主動建立更安全的護欄?
- 注意力機制中的位置編碼演進 (Positional Encoding):從早期的絕對位置編碼到本文提及的 Llama RoPE (Rotary Position Embedding) 技術,模型是如何克服「未見過的長度」的外推性 (Extrapolation) 挑戰的?
- 大型語言模型的思維中介語言 (Logit Lens Analysis):透過 Logit Lens 發現 LLM 在處理多語種翻譯時,深層神經網路傾向以「英文」作為思考底層。這是否意味著非英語系的知識在模型內部存在先天的轉換損耗或文化偏誤?
📋 來源聲明:本教材為非營利教育用途的高度轉化作品。原始出處標註於家長版中。