# [2025李宏毅ML] 第3講:AI 的腦科學-語言模型內部運作機制剖析 (解析單一神經元到整群神經元的運作機制、如何讓語言模型說出自己的內心世界)
:::success
:+1: 筆記全集Book 請至: https://hackmd.io/@4j/r1U_UJ_pye/
:::
:::info
2025生成式AI時代下的機器學習_李宏毅
課程網站 https://speech.ee.ntu.edu.tw/~hylee/ml/2025-spring.php
video: https://www.youtube.com/watch?v=Xnil63UDW2o
[[ppt]](https://docs.google.com/presentation/d/1dmR4HtycPwofpOEgmdjqMdlTsTtfYcFR/edit#slide=id.p1)
(20250317)
:::
:::spoiler 目錄
[TOC]
:::
▪ **相關複習**
Transformer
[[self-attention 上]](https://youtu.be/hYdO9CscNes?si=Ke55_ABHZqtp_Aib) [[self-attention 下]](https://youtu.be/gmsMY5kc-zw?si=-3_1WABbennG1QqW)
[[Transformer 上]](https://youtu.be/n9TlOhRjYoc?si=brnV18A1d8T-QxfF) [[Transformer 下]](https://youtu.be/N6aRv06iv2g?si=lLr3V2--QyfTuRM2)
[[Transformer 簡介]](
https://youtu.be/uhNsUCb2fJI?si=5jeDnNlcEGv2UPIN)
可解釋的機器學習
https://youtu.be/WQY85vaQfTI?si=QP9mlhZoD4Hy-xF-
https://youtu.be/0ayIPqbdHYQ?si=WtdggsDHBMMXMiIB
語言模型在「想」什麼?
https://youtu.be/rZzfqkfZhY8?si=SghPRZbFJLrKQk7L

## 一「個」神經元在做什麼

生成式AI: 給定seq z1~zt-1, 預測下一個token zt
輸出下一個token zt 是任一個token的機率有多大, 是個 "機率分布"

**embedding**:每個 token 對應到一個向量
**unembedding**: 把最後一層的向量 seqence 的最後一個向量拿出來,轉成distribution
(把向量轉回token的過程)

一個layer裡有多種layer
一個 **神經元(neuron)** 的輸出 = weighted sum + activation function(RELU)
這個紅到藍的轉換過程就是 **神經元** 的作用

▪ 怎麼知道一個神經元在做什麼?
"移除"的方式, ex:把輸出設成0或平均值

一件事情可能很多神經元共同管理

一組神經元來管一個任務
## 一「層」神經元在做什麼

Representation:某層神經元的輸出

想單獨取出"控制拒絕"的部分

 
利用拒絕的 減去 沒拒絕的
得到純拒絕向量

減去向量, ex: 用 相減 或 投影距離的
這種 **修改Representation來改變語言行為的事情** ,稱為: Representation Engineering, Activation Engineering, Activation Steering …
[[ref]機器學習2021](https://youtu.be/ExXA05i8DEQ?si=1Q3LbmyW5m_rZHXr)
範例論文:In-Context Vector
 
 

每個 representation 都是功能向量的線性組合(weighted sum)
e 是非功能向量的部分 --> **希望 e 越小越好**

每次選擇的功能向量越少越好 --> **希望 α 越小越好**

Loss function 如上!
可用 Sparse Auto-Encoder (SAE) 來解
## 一「群」神經元在做什麼
 
需要一個語言模型的模型來幫忙解析語言模型
faithfulness:保有原來實物的特徵
▪ **舉例 一個早期的研究**
 
前面幾層先對主詞做理解
主詞跟受詞的"關聯性" 會產生個 linear function

用幾筆(x,y)回推找出 W,b
再去對答案 來達到用簡單的模型比擬語言模型的行為

結果還可以 有的高 有的低
▪ **根據模型上得到的預測來改變實體**


也有試驗用這種方式去修改語言模型
(用模型的模型得到的結論 直接用在語言模型上)
結果有蠻多情況是可以成功的
ex: 硬要他回答錯成高雄
▪ **系統化的語言模型「模型」建構方法**

pruning: 刪減一些模型的 component
circuit: 語言模型的模型

## 讓語言模型直接說出它的想法

之前簡化的講法忽略了 residual connection
**residual connection**:layer的輸出 其實還會再加上輸入,才會得到最終的輸出
這個設計使很深的網路更好訓練

所以 transformer 的 layer 間是需要加上 residual connection 的, 通過一個 layer 產生輸出後 會把原來的輸入再加起來
==!!!右邊換一種畫法!!!== :tada:
▪ **residual stream**: 像是高速公路, 直接把輸入往前送送送到輸出
▪ 在中間過程每個 layer 都會加一點東西進去
才會才會得到最終的 distribution
▪ 想:中間幾層的輸入是否相同可像最後層一樣, 加過 unembedding layer 來得到 token 的機率分布
--> **logit lens**
由對應的文字反推看語言模型的 representation 可能代表的意思
▪ **logit lens**:檢查每一層的 logic 看看 transformer 是怎麼思考的
(logic: 過 softmax 前叫 logic)
論文範例

到後面發現他把 it 推理成 album

用 logit lens 發現他會把法文先翻成英文再翻成中文, 代表這個模型是用英文在思考的
▪ **每一層就是加點什麼進去 Residual Stream**

加了什麼呢?
- 綠色:原輸入
- 橘色:先前說一個神經元是把前一層的結果 做weighted sum <--> 前一層的某神經元乘上 weight 後傳入下一層不同的 神經元
**"Transformer Feed-Forward Layers Are Key-Value Memories"** 提出這種另一面的解釋概念!
把前一層(橘色)看成 attention 的 weight --> k
中間線段 weight --> value v

若想把金城武換成李宏毅
就可去找出是哪個v在影響的, 把金換成李
這篇論文發現此做法有48%會改變輸出, 34%會成功換掉
▪ **Patchscopes**


利用不同角度解析 representation (非一個token,可能是一句話)
但這會受到你舉的例子的影響

ex: 解析每一層最後一個字對這個模型的意義
威爾斯王子



-另一個範例論文 利用分析每層的輸出 發現有時要到很後面層才會被解析出關鍵事(太晚)
-所以他試著把後層再傳遞到最前面重跑一次
發現對原本答錯的題目 有40~60%變成答對!
-- END --