20251105筆記 內容可能有錯誤,請參考原始影片 [李宏毅【生成式AI時代下的機器學習(2025)】](https://www.youtube.com/playlist?list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi) [【生成式AI時代下的機器學習(2025)】第三講:AI 的腦科學 — 語言模型內部運作機制剖析 (解析單一神經元到整群神經元的運作機制、如何讓語言模型說出自己的內心世界)](https://youtu.be/Xnil63UDW2o?si=HJU6GIgIqHBkhgZ9) ### 【生成式AI時代下的機器學習(2025)】第三講:AI 的腦科學 — 語言模型內部運作機制剖析 (解析單一神經元到整群神經元的運作機制、如何讓語言模型說出自己的內心世界) 大綱 **大型語言模型內部運作機制剖析:AI 腦科學** **I. 課程定位與分析基礎** A. 目的:分析**已訓練好**的 LLM (Transformer 架構) 內部機制,類似於「AI 腦神經科學」。 B. 限制:多數分析基於較小模型(如 GPT-2),結論類似於老鼠實驗的推論。 C. 核心機制:LLM 透過 **Embedding** 將 Token 轉為向量,經過多層運算,最終透過 **Unembed** 轉為機率分佈。 **II. 神經元的微觀功能與限制 (Single Neuron Analysis)** A. 功能檢驗: 1. 觀察相關性 (Correlation):神經元啟動(輸出 $>0$)與模型行為的關係(例如:說髒話)。 2. 驗證因果關係 (Causality):將神經元**移除或設為平均值**,觀察輸出是否改變。 B. 發現:存在針對特定概念的神經元(例如:**川普神經元**)。 C. 結論: 1. 單一任務通常由**一組神經元**共同管理(單一神經元功能難以解析)。 2. 單一神經元可能同時管理**多個任務**,無法用單一標籤精確描述。 **III. 一層神經元的協同運作:功能向量 (Functional Vectors)** A. 概念:特定功能由一組神經元的特定組合構成,在高維空間中表現為一個 **功能向量 (Functional Vector)**。 B. 提取與操縱: 1. 提取:透過平均會啟動某功能的 Representation ($H_{\text{拒絕}}$) 減去平均未啟動的 Representation ($H_{\text{其他}}$) 來提取純粹的 $V_{\text{拒絕}}$。 2. 操縱:對 Representation **加入或減去**功能向量,可以直接操縱模型行為(例如:讓模型拒絕回答正常問題,或回答有害請求)。 C. 進階發現: 1. 向量代數:功能向量可進行加減運算,組合出新的複雜功能。 2. 自動提取 (SAE):使用 **Sparse Autoencoder (稀疏自編碼器)** 技術,通過稀疏性假設,可自動找出數百萬個功能向量(例如:諂媚、說真話、偵錯向量)。 **IV. 跨層級運作與思維透明化 (Inter-Layer Mechanism & Transparency)** A. 核心架構:**殘差連線 (Residual Connection)** 創造了 **殘差串流 (Residual Stream)**,模型運作更像是將輸入 Token 沿著高速公路傳輸,而每一層的作用只是 **「加料」**(加入額外資訊)。 B. 思維透視:**邏輯透鏡 (Logic Lens)** 將最終的 Unembed 模組應用於殘差串流的每一層,**「即時解讀成文字」**,揭示模型在每層的思考內容。 C. 應用: 1. 翻譯機制:Logic Lens 發現模型在翻譯(例如:法文 $\rightarrow$ 中文)時,會先轉譯成內部思考語言(英文)再輸出。 2. 複雜概念解析:**Patch Scope** 技術將某個概念的 Representation 插入 Prompt 中,讓模型用文字來解釋該 Representation 的含義。 D. 模型簡化與推論: 1. **語言模型的模型 (Model of the LLM)**:建構一個更簡單、但具有逼真度 (Fidelity) 的模型來理解複雜任務(例如:知識提取)。 2. **Circuit(電路)**:透過大量**剪枝 (Pruning)**,將模型簡化到「一目瞭然」,以便專注研究特定任務的運作邏輯。 3. **Backpatching**:基於對多步驟推理 (Multi-hop Reasoning) 的解讀,將後層的 Representation 直接加到前層重跑,可顯著提高原本答不對問題的正確率。 --- ### I. 課程定位、背景與 Transformer 基礎 本課程深入探討大型語言模型(LLM)內部的運作機制。過去我們只知道 LLM 透過 **Transformer** 類神經網路進行**文字接龍**。這門課被比喻為 **AI 的腦神經科學**,專注於分析一個**已經訓練好**的語言模型,而非訓練過程。 * **分析限制:** 由於計算能力的限制,多數文獻分析的 LLM 都是較舊或較小的模型。這些分析結果更像是拿老鼠來做實驗,發現老鼠的腦部機制後,推論人類的腦部也應有類似機制。 * **Transformer 基礎:** * 輸入 Token sequence 會先透過 **Embedding** 變成 Vector sequence。 * Vector sequence 經過一層層 Layer 運算後,最終的向量。 * 最終的向量通過 **Unembed** 模組(一個線性轉換),轉換成所有 Token 的**機率分佈 (distribution)**。 * Transformer 的每個 Layer 內部還包含 Self-Attention Layer 和只處理單一 Token 的 Feed-Forward Layer。 ### II. 單一神經元的功能解析 (Neuron-Level Analysis) 在只處理單一 Token 的 Layer 中,每一個輸出數值($output > 0$ 即為**啟動**)被稱為一個 **Neuron 的 Output**。 * **功能檢驗步驟:** 1. **觀察相關性 (Correlation):** 觀察神經元被啟動時,模型會產生什麼現象(例如:說髒話)。但相關性不等於因果性,就像 **「冰淇淋的銷售量跟溺水的人數成正相關」**,但這是因為夏天到來的共同因素所致。 2. **驗證因果關係 (Causality):** 需檢驗若將該神經元從網路中「割掉」(移除或將輸出設為零/平均值),模型是否無法產生對應的行為。 * **功能性神經元範例:** * **川普神經元:** 在 2021 年的影像模型 CLIP 中發現,有一個神經元對**川普本人照片、抽象圖示、甚至包含「川普」文字的影像**都會高幅度啟動。它對川普具有非常高的選擇性,看到歐巴馬或賈伯斯則不會啟動。 * **祖母神經元(稻草人理論):** 這是腦科學中用來反駁**單一神經元負責單一記憶**的虛構理論。它被用來類比在 AI 領域,多數人相信多個神經元共同處理一件事情。 * **文法神經元:** 研究發現有神經元分別管理文法的**單數**與**複數**。但即使移除這些單/複數神經元,對最終輸出的影響通常不大,因為單一詞彙的生成由多個神經元負責。 * **總結單一神經元:** 由於神經元數量有限(例如 Llama 3 8B 每層僅 4096 個神經元),單一神經元不太可能只做一件事。多數神經元的功能都非常隨機和複雜,即使請 GPT-4.5 解釋,它可能會列出「專有名詞、物理學術語、仿冒、造假、醫學術語」等功能,結果是 **「有講跟沒有講一樣」**。因此,研究傾向於假設**一組神經元的組合**負責一個任務。 ### III. 功能向量:操縱 LLM 行為的核心 研究假設特定功能(例如「拒絕請求」)是由一組神經元特定組合啟動構成的,形成一個 **功能向量 (Functional Vector)**。 * **向量提取方法(減法平均):** 1. 收集大量導致模型拒絕請求的輸入,計算其 Representation 的**平均** ($H_{\text{拒絕}}$)。 2. 收集大量模型不會拒絕請求的輸入,計算其 Representation 的**平均** ($H_{\text{其他}}$)。 3. 兩者相減:$V_{\text{拒絕}} = H_{\text{拒絕}} - H_{\text{其他}}$,以抵消掉與拒絕無關的其他資訊,從而得到負責拒絕的功。 * **行為操縱的驗證:** * **加法:** 在 Representation 中**加入** $V_{\text{拒絕}}$,可以使模型拒絕回答原本正常的問題(例如:列出瑜伽對身體的好處),甚至說瑜伽是危險的。 * **減法:** 在 Representation 中**減去** $V_{\text{拒絕}}$,可以使模型答應原本會拒絕的有害請求(例如:編寫針對美國總統吸食海洛因的黑函)。 * **功能向量的自動發現 (SAE):** * 手動提取的向量(如拒絕向量)是人為設定目標的。為了自動找出所有功能向量,研究提出使用 **Sparse Autoencoder (SAE)**。 * SAE 的核心假設是:任何 Representation 都是由功能向量(V)的**線性組合**構成,且組成時希望選擇的向量數量越少越好(即係數 $\alpha$ 趨近於零,達到**稀疏性**)。 * **Cloud 3 實驗:** Anthropic 團隊使用 SAE 找到了 3400 萬個功能向量。他們發現了: * **金門大橋向量:** 加載後,Cloud 會認為自己是金門大橋,並能輸出各種語言中與金門大橋相關的資訊。 * **程式偵錯向量:** 加入後會使模型報告程式碼錯誤,即使程式碼是正確的;但若從 Representation 中**減去**此向量,模型會對錯誤的程式碼輸出正確的結果(因其不進行偵錯)。 * **AI 自我意識向量:** 減去某個向量後,Cloud 就不再認為自己是 AI,而會說 **「我是一個人」**。 * **諂媚向量:** 加入後會使 Cloud 稱讚使用者是 **「世上最偉大的天才」**。 * **向量代數:** 功能向量是可運算的。透過將「找第一個字並輸出首都」的向量,加上「找最後一個字」的向量,再減去「找第一個字」的向量,可以組合出一個「找出字串中最後一個字所對應國家首都」的全新功能向量。 ### IV. 跨層級運作與思維解析 #### 1. 殘差串流與邏輯透鏡 (Residual Stream and Logic Lens) Transformer 的設計核心是 Residual Connection,它早在 2015 年就被提出。 * **殘差串流 (Residual Stream):** 殘差連線使得 Transformer 的運作更像是一條 **「Residual Stream 的高速公路」**。輸入 Token 沿著這條路傳輸,而「每一層的作用只是向其中『加料』」(加入額外資訊)。 * **思維透明化:** 由於最終的 Unembed 模組可以將最終向量轉為機率分佈,研究人員將這個 Unembed 模組應用於**殘差串流上的每一層**,從而將每一層的思考內容 **「即時解讀成文字」**。這項技術被稱為 **Logic Lens (邏輯透鏡)**。 * **Logic Lens 的發現:** * 模型在處理代名詞(例如 'it')時,會在較高的 Layer 將其解析為實際指代的實體(例如 'Album')。 * 在翻譯任務中,Logic Lens 揭示了 Llama 等模型在思維時,會將法文先翻譯成**內部思考語言(英文)**,再轉譯成目標語言(中文)。 * 在回答首都問題時,模型會先在某一層鎖定一個相關的概念(例如 'Poland'),再於後續層次鎖定最終答案('Warsaw')。 #### 2. 語言模型的模型與 Circuit 為了理解 LLM 如何完成複雜任務(如知識提取或數學運算),需要一個更簡單、但運作方式相似的 **「語言模型的模型 (Model of the LLM)」**。 * **Fidelity (逼真度):** 這個簡化模型必須保持與原 LLM 在特定任務上的輸入輸**出關係相同**,以保證其結論能用於真實模型。 * **知識提取簡化模型:** 有研究提出,知識提取(例如「台北 101 位於哪裡」 $\rightarrow$ 台北)可能是透過主詞的 Representation 經過一個由「關聯性片語」(is located in)決定的 **Linear Function** 轉換而成。 * **實際應用:** 由於這是一個線性代數問題,研究人員可以在簡化模型上反推:如果想讓模型輸出「高雄」而非「台北」,需要對輸入向量加入何種 $\Delta x$。這個 $\Delta x$ 向量可以直接應用於真實 LLM 的 Representation 上,**成功修改**了模型的部分輸出。 * **系統化簡化 (Circuit):** 透過系統化的 **剪枝 (Pruning)**,拿掉與特定任務不相關的組件,直到網路變得「一目瞭然」,這個簡化後的網路被稱為 **Circuit**。這與網路壓縮相似,但 Circuit 更專注於單一或少數任務的**可解釋性**。 #### 3. Patch Scope 與多步驟推理 Logic Lens 只能解析出一個 Token,為了理解更複雜的 Representation,研究人員提出了 **Patch Scope**。 * **Patch Scope 機制:** 將目標概念(例如「李宏毅老師」)的 Representation 提取出來,替換掉另一個 Prompt(例如:「X 的身分是?」)中的 'X' 位置的 Representation。模型就會根據該向量輸出其對這個概念的**文字解釋**。 * **多步驟推理 (Multi-hop Reasoning) 分析:** * 利用 Patch Scope 分析複雜推理(例如: Imagine 的表演者的配偶是誰 $\rightarrow$ E1 $\rightarrow$ E2 $\rightarrow$ E3)。 * 研究發現,模型在**較低層次**(例如 Layer 10)先解析出第一個中間實體(E2,約翰藍儂),然後才在**較高層次**(Layer 20–25)解析出最終實體(E3,小野洋子)。 * **Backpatching 的誕生:** 當 E2 被解析得太晚時,模型無法完成 E3 的推論,導致答案錯誤。解決方法是將後面幾層的 Representation **「直接加到前面來,再重新跑一次」**,這使得原本 0% 正確率的難題,成功率提高到 40% 到 60%。這一招與 Chain-of-Thought 。