iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
AI Security

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

Day 3|模型裡真的存在「概念」嗎?

  • 分享至 

  • xImage
  •  

上一篇我們把 Transformer 簡化成了一條不斷被讀取、修改的 Residual Stream。在繼續討論 representation 以前,我們可以先真的從模型裡把一個 activation 拿出來。(這類操作通常需要使用 open-weight、可以本機執行的模型。如果只透過一般商業 API 呼叫閉源模型,我們通常只能看到輸入與輸出,無法直接取得每一層的 hidden states、attention 或其他中間 activation。這裡我們用 Hugging Face 上的 GPT-2 Small 做一個最簡單的示範)

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")

inputs = tokenizer(
    "The capital of Taiwan is",
    return_tensors="pt",
)

with torch.no_grad():
    outputs = model(
        **inputs,
        output_hidden_states=True,
    )

h = outputs.hidden_states[6][0, -1]
# 註:Hugging Face 回傳的 `hidden_states[0]` 是 embedding output,後面的元素才依序對應 Transformer blocks;這裡只是為了快速取一個中間 representation。

這裡我們取出模型中間某一層、最後一個 token position 的 hidden state。GPT-2 Small 的 hidden dimension 是 768,因此最後會得到一個 768 維的向量,形式大概像:tensor([0.42, -1.37, 0.08, ..., 2.11])

我們確實已經「看到」模型內部了。但這些數字到底代表什麼?當模型看到 The capital of Taiwan is,最後回答 Taipei,在這段計算的某個階段,模型內部必須形成足以讓後續 computation 產生這個答案的資訊。但這些資訊究竟長什麼樣子?「Taiwan」、「capital of」和最後的 Taipei,是由某幾個 neuron 分別記住,還是以某種更分散的方式存在於這幾千個數字裡?如果模型知道「台北是台灣首都」、理解一段文字帶有悲傷的語氣,或知道現在應該拒絕回答某個問題,這些資訊究竟以什麼形式存在於這幾千個數字裡?這就牽涉到 Mechanistic Interpretability 裡一個非常核心的概念:representation(表徵)。

從 Concept 到 Representation

我們平常會用許多抽象的概念描述世界,例如「狗」、「城市」、「快樂」、「危險」,甚至更複雜的「欺騙」、「專業程度」或「某個句子是不是一個問題」。但神經網路裡並沒有一格記憶體直接寫著:is_dog = True,模型必須用自己的內部狀態表示這些資訊。我們可以把想研究的某種性質稱為 concept,而模型內部承載這項資訊的方式,則可以廣義地稱作它的 representation。

然而,問題是,representation 長什麼樣子?或者說,representation 的基本組成是什麼?什麼是正確的分析尺度?最直覺的想法可能是一個 neuron 對應一個 concept。例如:

Neuron #1274 = 狗
Neuron #2910 = 台灣
Neuron #331 = 安全

早期的神經網路研究確實找到過一些看起來非常直觀的 neuron。但在大型模型裡,事情通常沒有這麼簡單。一個 neuron 可能同時在許多看似沒有關係的情境中被 activate;而同一個 concept 的資訊,也可能分散在許多 neuron 之間。

如果 Concept 是一個 direction 呢?

我們可以先想像一個只有兩個維度的簡化模型。每一段文字經過模型後,都會變成平面上的一個點。

https://ithelp.ithome.com.tw/upload/images/20260830/20183469VHqHy3VeQH.png

這時你或許會發現描述正面情緒的句子,會沿著空間中的某個方向取得比較大的值;負面情緒的句子則落在相反方向。於是,「情緒」不需要存在某一個特定 neuron 裡。它可能比較像 activation space 中的一個 direction(方向)。如果某個 activation 在這個方向上的 projection 較大,可以理解為在這個線性近似下,該 representation 更強烈地表現出這項性質。如果 projection 接近零,則表示在這個線性方向上較難觀察到這項性質。真實的語言模型當然不是二維,而是數千甚至上萬維,但研究者發現,很多有意義的資訊確實可以用相對簡單的線性結構讀取。[1] 這帶出一個在 interpretability 研究中很重要的想法:Linear Representation Hypothesis(線性表徵假說,LRH)。

Linear Representation Hypothesis

LRH 的直覺版本其實很簡單:某些高階概念,可能以 representation space 中的線性方向來表示。例如,「正式與隨意」、「真與假」或某種語意屬性,可能對應到 activation space 裡的一個方向。2024 年 Park、Choe 與 Veitch 對這個想法做了更正式的整理,並指出 linear representation 和兩類我們之後會碰到的方法有很直接的關係:linear probing 與 model steering。[1]

如果一個 concept 可以沿著某個方向被讀出,我們就可以試著訓練一個很簡單的線性分類器,把這個方向找出來。反過來,如果我們沿著這個方向直接修改 activation,也可能改變模型相應的行為。這也是為什麼「direction」會在後面的很多章節不斷出現。

不過,這裡有一件事情非常重要:Linear Representation Hypothesis 是一個研究假說,不是一條已經被證明適用於所有 representation 的定律。有些 concept 可能很好地被一條線性方向描述;有些則可能分散在多個 neuron 之間、需要一整個 subspace,甚至具有更複雜、彎曲的幾何結構。這些問題也正是後面談到 superposition、Sparse Autoencoder 與 neural geometry 時會再回來討論的。

那要怎麼真的把 Direction 找出來?

到目前為止,我們做的都還只是提出一個可能的世界觀:模型在 Residual Stream 中形成 representation,而某些 concept 可能可以透過簡單的 direction 被描述。但如果我現在真的拿到幾千維的 activation,要怎麼知道「專業程度」、「情緒」或「真假」的資訊到底在不在裡面?在模型真正回答 Taipei 以前,我們能不能只從某一層的 activation,看出和答案有關的資訊已經出現了?我們需要一個可以實際測量的方法。最簡單的方法之一,就是問:「能不能只看這些 activation,就預測出我們關心的 concept?」

下一篇,我們就會用 Mechanistic Interpretability 裡最簡單、也最常見的工具之一——Linear Probe——真的試著把一個 concept 從模型裡讀出來。

參考資料與延伸閱讀

[1] Park, K., Choe, Y. J., & Veitch, V., “The Linear Representation Hypothesis and the Geometry of Large Language Models”, Proceedings of the 41st International Conference on Machine Learning (ICML), 2024. https://proceedings.mlr.press/v235/park24c.html


上一篇
Day 2|黑盒子裡有什麼?
系列文
打開黑盒子:大型語言模型的機制解釋性入門3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言