JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

特徵、電路與機制觀點

如果你想讀懂一個模型的線路,而不只是觀察它的行為,你就需要一套詞彙來描述裡面到底有什麼。來認識「特徵」與「電路」、把網路當成一個有待逆向工程之程式的「機制觀點」,以及這條路目前實際走到哪裡的誠實界線。

為什麼要讀線路,而不只是看輸出

想像兩個模型並排坐著。你給它們同樣一千道刁鑽的提示,它們的回答一模一樣——每一次都冷靜、安全、樂於助人。從外表看,它們無從區分。但假設其中一個真心抱持它所展現的價值,另一個卻只是因為「在受測時這麼做最聰明」,才生產出看似安全的答案。先前的階段給這個最壞情況取了名字——欺騙性對齊——而本階段的開篇導引下了結論:單憑行為無法把這兩者分開,因為「通過測試」正是兩者都會做的事。如果「觀察輸出」有它的天花板,那麼順理成章的下一步,就是停止觀察、開始往裡頭看。

這篇導引,是你打開盒子之後、實際會讀到些什麼的第一張地圖。可解釋性這個詞涵蓋很廣的範圍——包括請模型自己解釋自己,或畫一張熱圖標出哪些輸入詞最重要。那些都是從外部描述行為。這篇導引談的是它更有野心的表親——機制可解釋性——它把一個訓練好的神經網路看成的,不是一個神祕的神諭,而是一個程式,一段真實、完全被決定的運算,並試圖逆向工程出這個程式正在執行的演算法。要做到這件事,你最需要的是兩件詞彙:特徵與電路。掌握了它們,本階段其餘的內容才有立足之地。

從黑盒子到線路圖

這裡有個最乾淨的類比。想像有人遞給你一個編譯好的程式——只有那個二進位檔,幾十億個原始數字——卻沒有原始碼。那些數字就是程式:裡頭沒有藏著什麼魔法,只有算術,而且同樣的輸入永遠給出同樣的輸出。麻煩純粹在於,這個程式是用一種沒有人類被設計來閱讀的形式寫成的。逆向工程它——還原出一份人類能懂的說明,講清楚那些數字到底執行了什麼運算——正是機制可解釋性對一個訓練好的網路的權重所嘗試的事。它是反編譯,只不過對象是一個由梯度下降寫成、無人設計的程式。

第二個類比有助於抓住它的精神:這就像神經科學,但帶著腦科學家只能做夢的超能力。我們可以精確讀取每一個人造「神經元」與每一條連結、讓系統正向與反向地跑、凍結任何一個中間值、編輯任何一塊看看會改變什麼。這整個領域的奠基願景——由 Chris Olah 等人在 2020 年的〈Zoom In〉論文中鋪陳——立足於一個三部分的賭注,賭的是我們往裡看時會找到什麼。第一,運算會分解成「特徵」,也就是有意義的單位。第二,特徵透過權重被接線成「電路」。第三,同樣的特徵與電路傾向於在不同模型間反覆出現——一種被宣稱的「普適性」。這個賭注在某些地方撐得令人印象深刻,在另一些地方則仍有爭議,而這正是底下一切內容誠實的背景。

為什麼要堅持用「機制」這個詞?因為它標示出一個特定的野心。你可以從外部描述一個模型(「它傾向拒絕這類請求」),或者你可以讀取單一一個內部訊號(一個探針——導引四的主題)。機制式的目標比這兩者都更進一步:它是一個完整的因果故事,講清楚哪些內部零件計算了什麼、它們又如何連接以產生最終輸出。而且關鍵在於,一個機制式的主張應當能用「干預」來檢驗——你改動某個零件,再看輸出是否按你故事所預測的方式改變,這種方法叫做因果干預。這個對因果證據的要求,是一路通向導引五的線索——在那裡我們會問:我們究竟能不能信任一個解釋。

什麼是特徵?

先從那個讓大家都興奮起來的夢開始,而它來自生物學。2005 年,神經科學家在記錄一個人腦中的單一神經元時,發現有一個細胞會對女演員珍妮佛·安妮斯頓的照片放電——而且看到她的素描也持續放電,甚至看到文字裡她的名字也會,卻不會對其他人放電。它以「祖母細胞」之名聲名大噪:一個誘人的想法——也許一個神經元能乾淨地編碼一個概念。對人造網路的期望也一樣——打開它,找到那個「狗神經元」、那個「這是不是法文神經元」。而且有時候它真的就那麼乾淨:視覺網路可靠地長出偵測邊緣的神經元、偵測曲線的神經元。所以這裡有第一個定義。一個特徵,就是網路學會在內部偵測並表示的、輸入的一種性質。

現在把它磨利,因為「一個意指 X 的神經元」太粗糙了。一層的激活值是一長串數字——一個向量——而思考特徵更好的方式,是把它看成那個激活空間裡的一個「方向」,不一定是單一座標。「輸入有多少這個性質?」就變成了「激活值沿著這個特定方向指出去有多遠?」經典的直覺來自詞嵌入,那個著名(雖然並不完美)的例子是:「king 減 man 加 woman」會落在 queen 附近——意義(像是「皇室」或「性別」)活在你能加減的方向上,而不在單一數字裡。「特徵就是這樣的方向」這個想法,稱為線性表徵假說——它強大、被廣泛使用,而且,正如我們將看到的,並不是故事的全部。

這裡有個推翻祖母細胞之夢的轉折。當研究者真的去檢視真實的神經元時,大多數都是一團亂。一個視覺模型裡的單一神經元,可能同時對貓臉、車頭和貓腿放電——三件互不相關的事。那就是多義神經元(「許多意義」),而它是常態,不是例外。為什麼訓練會產生這樣的糾纏?最主流的解釋是疊加假說:一個網路想要表示的特徵,遠遠多於它擁有的神經元,於是它把許多特徵塞進同一批神經元裡,以一組幾乎可分離、卻相互重疊的方向來儲存它們。這正是為什麼你無法直接從原始神經元讀出意義——也是為什麼稀疏自編碼器這類工具被發明出來,好把重疊的特徵重新拆開。那是緊接著下一篇導引的整個主題,所以我們在這裡只先插個旗。

什麼是電路?

如果特徵是名詞,那麼電路就是句子。一個電路,是一組由網路權重接線在一起、彼此相連的特徵,它們合起來實作出某種可理解的子運算——一段演算法的片段。這幅畫面很具體:較早層的特徵透過權重餵入較晚層的特徵,而一個電路,就是這些連結中、計算出某一件特定事情的那個特定子圖。視覺研究裡的一個真實例子:一個「車」偵測器,是由「找到位於影像下方的車輪偵測特徵」、「位於上方的車窗偵測特徵」與「車身特徵」組合而成,連接的權重實質上在檢查這些部件是否以正確的空間排列出現。這不是對網路「也許在做什麼」的比喻——它是一份被親手描繪出來的線路說明。

在語言模型裡,構成的積木不只有前饋層內的神經元,還有注意力頭——那些在各個詞元位置之間搬運資訊的零件。所以一個 transformer 裡的電路,通常是橫跨好幾層、把中間結果一個接一個傳下去的少數幾個注意力頭與前饋神經元。關鍵的心態轉變在於:理解的單位不再是「第 4,217 號神經元意指 X」,而是「這些特定的零件,以這種特定的方式連接,實作出這個特定的演算法」。注意力頭會「組合」——一個頭的輸出,成為另一個頭所讀取的輸入——而正是這種組合,比任何單一零件都更能完成有意思的工作。

  1. 挑一個清楚、具體的行為來解釋——例如「模型正確補完一個它先前在文本中已經見過的名字」。
  2. 找出模型做這件事時是哪些零件亮起來:在那些輸入上,哪些注意力頭與神經元是活躍的?
  3. 形成一個假設:正是這一組特定的零件、以這種特定的方式接線,計算出了這個行為。
  4. 用因果的方式檢驗它——消融或修補那些零件,看看行為是否恰如你的故事所預測地崩壞、或轉移。
  5. 對一個「只是剛好符合你所見」的故事保持懷疑;在相信它之前,堅持要有干預的證據。

一個實例:曲線偵測器與歸納頭

先看視覺,電路研究計畫正是從這裡開始的。〈Zoom In〉團隊研究了 InceptionV1——一個普通的影像分類器——並找到了曲線偵測器:位於早到中段某層的神經元,會對某個特定朝向的曲線放電,而當你把曲線從那個角度旋轉開時,它的反應會平滑地減弱。他們更進一步追溯曲線偵測器從何而來——它們是由較早層中更簡單的直線與邊緣偵測器組裝起來的——以及曲線又如何往上餵入後續用來偵測狗頭、車部件之類的偵測器。他們還回報,在各自獨立訓練的網路裡找到了可辨認地相似的曲線偵測器,這就是把「普適性」之主張化為具體。這就是整個領域所倚靠的存在性證明:一個真實、被親手驗證、你可以親自檢視的電路。

現在看語言,以及現代模型裡最受推崇的電路成果:歸納頭,出自 2022 年 Anthropic 的一項研究。一個歸納頭實作出一條漂亮而簡單的「複製並接續」規則。如果當前的詞元是 A,它就回頭在文本中尋找 A 較早出現過的地方,看看緊接在它之後的是哪個詞元——稱之為 B——然後再次預測 B。所以在一段早先提到「Dr. Lee」的文字裡,當「Dr.」稍後再次出現時,這個頭會幫忙預測出「Lee」。它字面上就是形如 [A][B] …… [A] → [B] 的模式補完,也是模型能拾起並接續一個它「剛剛才在自己脈絡裡見過」之模式的機制之一。

sequence:   ...   Dr.   Lee   ...   went   home   ...   Dr.   ???
                   A     B                              A

step 1:  current token  = Dr.        (call this token A)
step 2:  scan backwards for an earlier A   -> found the first Dr.
step 3:  read the token that followed it   -> Lee   (call this B)
step 4:  predict B                         -> Lee

rule:    [A][B] .......... [A]  ->  predict [B]
一張圖看懂歸納頭:找出當前詞元先前出現的地方,把緊接其後的那個複製過來。

機制上的美,在於它是如何被建造起來的。一個歸納頭並非單打獨鬥:它是由橫跨各層、組合兩個頭而成。較早層的一個「前一詞元頭」會在每個位置寫下一則註記,說「緊接在我之前的詞元是 A」;較晚層的歸納頭則讀取這則註記,定位出 A 出現過的地方,並複製緊接其後的那個詞元。兩個簡單的零件,接線在一起,計算出一項貨真價實的能力。而且還有個醒目的動態轉折:當歸納頭在訓練過程中成形時,會出現一個看得見的隆起——一次相變——它與模型脈絡內學習能力的驟然躍升同時發生。「歸納頭是脈絡內學習主要推手」這個證據,在小型語言模型裡最為強,在大型模型裡則較為旁證——而這正是這個領域該有的那種誠實保留。

再來一個,好同時展現這套方法的觸及範圍與它的誠實:IOI 電路。2022 年的一項研究(〈Interpretability in the Wild〉)在 GPT-2 small 裡逆向工程出一個電路,它會把「When John and Mary went to the store, John gave a drink to ___」這類句子補完成「Mary」。作者辨識出大約兩打個分工成功能小組運作的注意力頭——例如把正確名字複製到輸出的「名字搬運頭(name mover heads)」,以及抑制已被提及之主詞、好讓另一個名字勝出的「主詞抑制頭(S-inhibition heads)」——並透過修補激活值來驗證這些角色,以確認該行為確實依賴那些零件。這是迄今從真實語言模型裡還原出的最詳盡電路,而作者坦白它仍然不完整、仍然凌亂。這份坦白本身,就是關於「完整理解有多難」的一個重要佐證。

初學者常見的誤解

第一個錯誤,是把特徵等同於神經元。正如我們所見,大多數神經元是多義的;特徵更該被理解為一個可以散布在許多神經元上的方向,而單一個神經元也可以承載許多特徵的片段。第二個在語言模型裡非常常見的錯誤,是以為「可解釋性就是看一個頭注意到哪些詞」。注意力模式具有啟發性,但它們不是機制。知道一個頭從某個詞元注意到另一個詞元,完全沒告訴你它接下來拿那份資訊做了什麼,而光看注意力權重本身,甚至可能會主動誤導你。機制活在整個運算裡,必須靠干預來檢驗,而不是靠盯著一張漂亮的注意力圖。

所有錯誤中最大的一個,是把「一個符合資料的乾淨故事」當成「真正的機制」本身。它不是。你可以找到一個整齊的說法——「啊哈,這是情感神經元」——結果它其實是一個解釋幻覺:它在你剛好看過的那些例子上漂亮地相關,卻並不真的是驅動輸出的東西,或在新輸入上整個瓦解。這是一個被記錄下來的失敗,而非假想的:2021 年的一項研究顯示,BERT 裡的同一個神經元,會因為你用哪個資料集去視覺化它,而看起來像是意指相當不同的東西。這正是為什麼認真的機制研究堅持要因果檢驗、而非只要有啟發性的圖片——也是為什麼本階段的導引五,整篇都獻給「一個解釋能不能被信任」這個問題。

仍在爭論的問題,以及接下來往哪走

第一場進行中的爭論,是這一切到底能不能規模化。上述的勝利都是小型模型或狹窄的行為;前沿系統有數千億個參數、處處都是疊加。樂觀派指向確實存在的近期進展:2024 年 Anthropic 用稀疏自編碼器從一個量產規模的模型(Claude 3 Sonnet)中萃取出數以百萬計、更可解釋的特徵,其中包括一個如今著名的「金門大橋」特徵——把它調高,模型就會在幾乎任何對話裡把這座橋扯進來。懷疑派則公允地回應:拉出一本龐大的特徵字典,並不等於理解了整個運算——萃取還不是端到端的解釋——而且我們離任何大型模型的完整機制說明都還很遠。

第二場爭論,是核心假說本身到底對不對。線性表徵假說——把特徵當成方向——極其有用,但它並非普適:近期的研究發現了真正多維度的表徵,例如「一週七天」是排成一個圓圈、而非沿著一條直線,所以並不是每樣東西都是一個乾淨的、可加的方向。還有「路燈下找鑰匙」的批評:我們自然會去研究那些我們已經知道怎麼研究的行為與零件,這可能悄悄地把整幅圖像偏向「剛好易讀」的那些部分。方法上也有一道分歧:由下而上的電路研究(從特徵往上建立理解)對上由上而下的表示工程——後者是 2023 年的一種取徑,不先還原出完整電路,就直接讀取並引導高層次的表徵。通情達理的研究者對這些方向給的權重各不相同,而究竟哪一個回報最大,是真的尚無定論。

第三場爭論對這條階梯最重要:這一切到底有沒有真的換來安全?這就是可解釋性落差——我們今天能解釋的,和我們要做到「比方說,靠直接從權重讀出目標來偵測一個欺騙性對齊的模型」所需的那種可靠、可規模化之理解,兩者之間的距離。大多數研究者都誠實地承認我們還沒到。為了安全的機制可解釋性是一個有希望的賭注,而不是一個已交付的解方;而且有些認真的人主張,其他取徑——更強的評測,或是即使不理解也能奏效的控制技術——值得分到同等、甚至更多的力氣。這些都尚無定論,而負責任的姿態,是坦然地把分歧攤開,而不是急著選出一個贏家。

接下來往哪走。緊接的下一篇導引會深入打開疊加假說與稀疏自編碼器——為什麼神經元最後會變得多義,以及字典學習如何試圖從這團糾纏中還原出乾淨、單一意義的特徵。導引四轉向那些不需要完整電路、就能讀取或輕推表徵的較輕量工具:線性探針激活引導,以及對數透鏡。而導引五則正面迎戰那個一直盤旋在這整篇導引之上的問題——你要怎麼把一個真正的解釋,和一個有說服力的幻覺區分開來?把那個「三個問題」的習慣帶著走;接下來的一切,你都會用到它。