iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
AI Security

打開黑盒子:大型語言模型的機制解釋性入門系列 第 4

Day 4|如果模型裡有「概念」,我們怎麼把它讀出來?

  • 分享至 

  • xImage
  •  

上一篇我們提出了一個可能的想法:模型會在 Residual Stream 中形成 representation,而其中一些 concept,可能可以用 activation space 中相對簡單的 direction 描述。但如果現在真的給你一個 4096 維的 activation:

[0.42, -1.37, 0.08, ..., 2.11]

我們要怎麼知道裡面到底有沒有「台北」、「正面情緒」、「真假」、「專業程度」,或其他我們感興趣的資訊?一個很直接的方法是:「只看 activation,我們能不能訓練另一個簡單的模型預測出這個 concept?」如果可以,那是否就代表在這些 activation 中確實存在某些與我們感興趣的 concept 有關的資訊?這就是 Linear Probe 的基本想法。

用一個簡單的分類器探測 Representation

假設我們想知道,模型內部有沒有表示一段文字的「正面/負面情緒」的 concept。我們可以準備一組已經標註好的句子:

I absolutely loved this series.   → Positive
This was a terrible experience.  → Negative
What a wonderful day.            → Positive
I really hate this place.        → Negative

接著把這些句子輸入一個 frozen language model,在某一層取出 activation,再額外訓練一個非常簡單的線性分類器。

https://ithelp.ithome.com.tw/upload/images/20260831/20183469snP6ENwFY0.png

如果這個分類器可以根據 held-out sentences 的 activation,準確判斷這些句子的情緒,一個合理的結論就是:這個 representation 中存在某種可以被線性讀出的情緒相關資訊。這類方法通常被稱為 probing。Alain 與 Bengio 很早就使用 linear classifier probe 觀察深度神經網路不同 layer 中的 representation,而 probing 後來也成為分析 NLP 與語言模型內部表示的常見工具之一。[1]

Linear Probe 找的是一個 Direction

一個二元 Linear Probe 做的事情其實非常簡單。給定 activation (h),我們學習一組參數 w 和 b:

https://ithelp.ithome.com.tw/upload/images/20260831/201834696iOtHQNMRj.png

如果不在意公式,也可以把它理解成 Probe 正在高維 activation space 中尋找一個能夠區分兩類資料的線性方向。

這就和上一篇談到的 Linear Representation Hypothesis 接起來了。如果某個 concept 具有相對簡單的線性 representation,那麼我們就應該有機會用一個簡單的線性工具把它讀出來。

不過,probing 本身其實比 LRH 的正式提出早得多。比較好的理解方式不是「因為 LRH,所以有 Linear Probe」,而是兩者共享一個相容的直覺:如果某項資訊以簡單的線性結構存在,我們應該可以用簡單的線性工具讀出它。

回到我們的 factual recall 謎題,Linear Probe 提供了一種問題視角。當模型看到:The capital of Taiwan is

在它真正輸出 Taipei 以前,我們可以取出不同 layers 的 activation,再問:和最後答案有關的資訊,是否已經可以從某些 representation 中被線性讀出?

不過,這邊要注意,如果 Probe 成功預測答案,它也可能只是讀到了 prompt 裡的 Taiwancapital 等與答案「相關」的資訊,不一定代表模型已經形成了真正「用來」產生 Taipei 的中間 representation。因此,這個結果最多先告訴我們:某些和答案相關的資訊是 linearly decodable 的。

動手做:真的 Probe 一次模型

這篇的實作會先使用 sentiment 為例,因為 Positive / Negative 有清楚的 labels,也更適合直觀地理解 Linear Probe 到底在做什麼。(factual recall 也可以做 linear probe 但實驗設計可能會比 sentiment 複雜一些)

程式的完整版本會放在這個系列的 Github Repository 裡,文章本身只留部分和概念最相關的程式碼。

這次我們會使用:

  • GPT-2 Small
  • SST-2 sentiment dataset
  • Positive / Negative labels
  • Logistic Regression 作為 Linear Probe

完整 notebook 會先幫我們處理 tokenization、batching、activation extraction 等步驟。最後,我們會取得每段文字在某一層的 representation:

X_train = get_activations(train_texts, layer=8)
X_test  = get_activations(test_texts, layer=8)

接著,真正的 Linear Probe 只有幾行:

probe = LogisticRegression(max_iter=1000)

probe.fit(X_train, y_train)

accuracy = probe.score(X_test, y_test)
print(accuracy)

GPT-2 本身完全沒有被更新。我們只是把模型內部的 activation 當成資料,問一個線性分類器:只看這些 activation,你能不能判斷原本的句子是正面還是負面?

如果在類別大致平衡的 test set 上,accuracy 明顯高於 50% 的隨機猜測基準,我們至少得到了一個線索:這一層的 representation 中,存在可以被線性讀出的 sentiment-related information。

資訊在哪一層最容易被讀出?

既然 Transformer 有很多 layers,一件很直覺可以嘗試的事就是我們可以對每一層都做同樣的事情:

accuracies = []

for layer in range(n_layers):
    X_train = get_activations(train_texts, layer)
    X_test  = get_activations(test_texts, layer)

    probe.fit(X_train, y_train)
    accuracies.append(probe.score(X_test, y_test))

最後把結果畫成:

https://ithelp.ithome.com.tw/upload/images/20260831/20183469aTtPxqkdrP.png

這時我們觀察的就不只是:「模型裡有沒有 sentiment information?」,而是:「這項資訊在模型不同深度中,有多容易被線性讀出?」

某些資訊可能很早就已經出現,有些則可能隨著模型往後計算才逐漸變得明顯。實際結果會隨模型、資料、取哪個 token 的 activation,以及實驗設定而改變。重點不是得到一條特定形狀的漂亮曲線,而是第一次真正看到:我們可以把「模型裡有沒有某項資訊?」這個抽象問題,轉換成一個可以實際測量的實驗。

但 Probe 找得到,代表模型真的在用嗎?

現在假設我們訓練出一個 accuracy 很高的 Probe。我們可以說:「這個 representation 中存在可以被線性解碼的情緒資訊。」但我們能不能進一步說:「模型就是靠這項資訊做決定的。」?答案是還不行。

Probe 能把資訊讀出來,不代表模型自己的後續 computation 真的使用了它,這兩件事情非常容易被混在一起。更進一步,如果 probe 本身過於複雜,它甚至可能從 representation 中挖出一些原本並不容易被模型自身使用的 pattern。因此 probing 的研究後來也開始討論 control tasks、probe complexity 與 selectivity 等問題。[2]

所以 Linear Probe 給我們的是一種非常有用,但有限的證據:decodable,不等於 causally used。而這個差別會貫穿接下來幾乎所有 Mechanistic Interpretability 的方法。我們可能找到一個 direction、某個 layer,甚至一組和模型行為高度相關的 activation;但要累積到什麼程度,我們才能說自己真的理解了模型?

在這篇大家把一個非常基礎的 ML 工具(linear classifier)應用在模型的解釋上,算是學會了第一個非常簡單、非常直觀也很常用的解釋性工具。應該也不難發現到目前為止我們花了很多篇幅在把工具本身能支持多少證據、回答什麼問題、理論上為什麼可以這樣分析講清楚,因為這對我們嚴謹的「解謎」至關重要。因此,下一篇,我們會先暫停介紹新的工具,來建立整個系列很重要的一張地圖:在 Mechanistic Interpretability 裡,到底什麼層級的證據可以回答什麼謎題?而迫不及待學習各種新工具的人也不用擔心,在下一篇建立好大家心中的地圖後,我們將開始一系列的工具介紹,升級各位偵探的軍火庫!

參考資料與延伸閱讀

[1] Alain, G., & Bengio, Y., “Understanding intermediate layers using linear classifier probes”, 2016. https://arxiv.org/abs/1610.01644

[2] Hewitt, J., & Liang, P., “Designing and Interpreting Probes with Control Tasks”, Proceedings of EMNLP-IJCNLP, 2019. https://aclanthology.org/D19-1275/


上一篇
Day 3|模型裡真的存在「概念」嗎?
下一篇
Day 5|我挖到線索了,但它們代表什麼?
系列文
打開黑盒子:大型語言模型的機制解釋性入門6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言