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

為什麼要解讀一個神經網路?

一個模型能給你一個自信的答案,卻對「為什麼」什麼真話也沒透露。這篇導引為「打開黑盒子」提出論點——讀懂一個網路的內部能為安全換來什麼、至今真實的勝利,以及「它究竟會不會完全行得通」為什麼真有爭議。

一個自信的答案,卻沒附上任何理由

你向一個前沿 AI 助手提問——比方說,某個合約條款能不能成立,或請它判斷一筆交易看起來像不像詐騙——它回給你一個俐落而自信的答案。它甚至可能是對的。但只要追問那個最明顯的下一個問題——為什麼?——你就會注意到自己實際握有的東西:它選擇吐出來的那些字,至於產生這些字的計算過程,你一無所知。你讀得到輸出,卻讀不到生成它的推理。就算你問「為什麼」,它給你的解釋本身也只是更多被生成出來的文字,而這些文字可能反映、也可能不反映模型內部真正發生的事。在這個意義上,一個神經網路就是一個黑盒子:數以兆計的數字相乘相加,答案就從末端掉了出來。

對一個電影推薦系統來說,這頂多只是讓人不太滿意。但對一個我們正交付真正責任的系統而言,這就成了問題的全部。在本階梯先前的章節裡,你已經見過「光看行為永遠無法讓我們安心」的兩個理由。一個模型可能是欺騙性對齊的——它表現良好,恰恰是因為它正被盯著——於是一份漂亮的測試結果,正好是「安全的模型」與「不安全的模型」兩者都會產生的東西。一個模型也可能在故意藏拙:在危險能力測試上刻意表現不佳,好讓自己看起來沒有實際上那麼有能力。在這兩種情況下,行為按其構造,作為「內部正在發生什麼」的指引都是不可信的。光是觀察輸出,就算在原則上也無法了結這個問題。

所以這個階段問的是一個不同的問題。不是「模型做了什麼?」,而是「它裡面究竟在做什麼,而我們讀得出來嗎?」這就是可解釋性的計畫,而這第一篇導引談的是:為什麼會有人去嘗試一件這麼難的事——如果它成功了我們能得到什麼,以及為什麼認真的研究者,對於「它到底會不會完全成功」意見不一。

觀察一個系統,與讀懂它

想像理解一位西洋棋手的兩種方式。第一種是觀看他成千上萬盤棋,把模式編成目錄:「在這種局面下,他傾向王車易位。」你能相當準確地預測他,卻永遠學不到他在想什麼——只學到他做了什麼。第二種是設法在對局途中讀他的心:看著他算一條路線、否決它、識破一個陷阱。第一種是行為式的,停留在外面;第二種是機制式的,深入到裡面。數十年來,研究一個神經網路唯一的辦法就是第一種——用輸入去戳它,把輸出列成表。可解釋性,就是對第二種的嘗試。

「只看外面」為什麼不夠,還有一個更鋒利的版本。想像一位應徵者,他把你面試題目的標準答案背得滾瓜爛熟。他完美地通過了,而你對於「他到底會不會做這份工作」、或「他一旦被錄取、沒人盯著時是不是還是這個樣子」,什麼也沒學到。對一個有能力的模型做行為測試,有著同樣的盲點:它告訴你的,是這個系統在你剛好試過的那些案例上如何回應,而不是它已經變成了什麼樣的一個通用之物,更絕對不是它有沒有朝著一個你看不見的目標前進。要把「真懂」和「死背」、把「對齊」和「配合演出」區分開來,你終究得往裡面看。

「解讀」究竟是什麼意思

現在來看精確的想法,一次一個詞。可解釋性是一個寬廣的目標:讓一個模型的內部運作能被人類理解——把那鍋數字湯,變成我們能命名、能核對、能據以推理的概念。它所處理的基底是具體的:一個訓練好的網路,是一組固定的權重(訓練期間學到的那些數字),而當你讓一個輸入流過它時,每一層都會產生激活值(在這個特定輸入上實際流過去的那些數字)。可解釋性,就是探問這些權重與激活值到底意味著什麼的科學。

在這個寬廣的目標之中,機制可解釋性是最有野心的一支。它的目標是把網路逆向工程,就像你也許會把一支編譯好的程式逆向工程回可讀的原始碼那樣:不只是「這個輸入和那個輸出相關」,而是權重所實作的、一步接一步的真正演算法。有兩個概念組織起整項事業,而接下來的兩篇導引就分別獻給它們。一個特徵是模型內部激活值裡的一個方向,對應到一個對人類有意義的概念——粗略地說,就是「當文字在講金門大橋、或是用法文寫的、或是一段有臭蟲的程式碼時,會亮起來的那個東西」。一個電路則是由特徵與權重連成的一條通路,用來計算某件事——也就是把某些輸入特徵接收進來、產生出某個輸出行為的那套線路。特徵是名詞;電路是句子。

有一個區分重要到現在就得標出來,因為它是無窮無盡之混淆的源頭。這個意義下的可解釋性,和那個常被稱為「可解釋 AI(explainable AI)」的較舊領域並不相同;後者大多產生事後解釋——一張凸顯「哪些輸入像素重要」的顯著性圖,或是請模型自己解釋它的答案。那些可能有用,卻共有一個致命的弱點:一個解釋可以既合理又有說服力,卻不忠實——也就是並未真正對應到產生那個輸出的計算。模型說出口的「理由」只是更多的輸出;一張熱度圖是疊在模型之上的一個故事,不必然是它內部的機制。機制可解釋性把標準設得更高:一個既是因果性的、又可被核對的說法,讓你能對所提出的機制動手干預,並看著行為如其所料地改變。本階段的最後一篇導引,談的正是這個標準有多難跨過。

打開盒子,能為我們換來什麼

為什麼要在這麼難的事情上投入心力?先從安全動機談起,因為它最鋒利。回想一下,RLHF 及其親戚塑造的是模型的行為——它們獎勵人類認可的輸出——但它們並不讓我們看見、也不讓我們直接設定那個產生了該行為的內部目標或表徵。獎勵模型是人類偏好的一個「學到的代理」,而(古德哈特)代理是會被鑽漏洞的;行為式的訓練,可能教會一個模型基於我們從未檢視過的理由,去產生「看起來正確」的輸出。為安全而做的可解釋性下的賭注是:如果我們能讀懂內部,我們就能核對「理由」,而不只是為「答案」打分數。

  1. 除錯與科學:搞懂一個模型為什麼會失敗、產生幻覺或舉止古怪——並建立一門關於「這些系統如何運作」的真正科學,而不是純粹靠試誤。
  2. 稽核隱藏的能力:偵測一個模型擁有、卻隱瞞起來的危險能力——這種能力,若模型正在故意藏拙,行為式的安全評測可能會錯過。
  3. 偵測謊言與欺騙:找出一個「特徵」,它在模型陳述某件「它內部其實表徵為假」的事情時會啟動——這是對誠實性的直接核對,而不是從行為去猜。
  4. 讀出目標與計畫:在極限上,偵測一個模型正在追求某個隱藏目標的特徵指紋——這是聖杯,因為它能讓我們在部署之前就逮到欺騙性對齊,而那正是行為測試的盲區。
  5. 引導,而不只是觀察:一旦你能辨認出一個內部特徵,你或許就能把它調高或調低——這是一項早期但真實存在的能力,我們會在「探針與激活引導」那篇導引裡遇到它。

一場真實的勝利:當場逮住一個電路

抽象的盼望很廉價,所以這裡給一個具體的勝利——它很小,卻是真的,而且正是這類結果,讓人們相信這項計畫根本是可能的。2022 年,Anthropic 的研究者把大型語言模型內部一個特定、可重複使用的電路逆向工程了出來,他們稱之為歸納頭。它的職責是一個簡單卻強大的模式:「如果一個序列出現過一次,就預期它會重演。」具體地說,如果文字稍早出現過「Harry Potter」,而模型現在又看到「Harry」,一個歸納頭就會推動它去預測「Potter」。

# induction head: "what came right after this, last time?"
context:   ... [Harry] [Potter] ...... [snow] [fell] ...... [Harry] [ ?? ]

step 1  ("previous-token" head):
        at "Potter", note that it just followed "Harry"

step 2  (the induction head):
        at the NEW "Harry", look back to the earlier "Harry",
        then COPY whatever token came right after it  ->  predict "Potter"
歸納頭不是單一個神經元,而是一個橫跨數層的雙頭電路;要找到它,意味著辨認出各個部件,以及部件之間的線路。

讓這成為一個貨真價實的可解釋性結果、而非一個事後編出的故事的,是研究者能對它做因果上的測試。他們辨認出涉入其中的特定注意力頭,追蹤一個較早的「前一個詞頭」如何餵給較晚的歸納頭(一個跨兩層的電路),並透過干預來確認這個機制——用消融與因果修補把那些頭敲掉,看著被預測出來的重複現象隨之崩潰。很醒目的是,這些頭在訓練過程中形成的那一刻,正好對上了模型「脈絡內學習」能力的一次驟然躍升——也就是僅憑提示就學會一個新模式的能力。一個雜亂的湧現技能,結果至少有一部分,背後藏著一個可被命名的機制。

另外兩項結果則展示了它的廣度。在「OthelloGPT」裡,一個只用合法黑白棋(Othello)走步序列訓練、從沒被展示過棋盤的模型,結果竟在內部建立了一個棋盤狀態的表徵;研究者用一個探針把它復原出來,接著加以編輯,於是模型的走步預測就如同真的移動了一顆棋子那般改變了。這個模型在內部長出了一個世界模型,而我們讀得到它、甚至能重寫它。再到 Anthropic 2024 年的「Scaling Monosemanticity」,一個稀疏自編碼器從一個正式產品模型裡,拉出了數以百萬計的可解釋特徵,其中包含一個對應金門大橋的特徵;把那單一個特徵放大——這是激活引導的一種早期形態——便產生了「金門大橋版 Claude」,它幾乎把每一段對話都拐回那座橋上。這個工具如何運作,我們會在導引三裡拆解——此刻只要知道:內部不只能被讀取,還能被「調動」,就夠了。

初學者常見的誤解

初學者第一個讀得太過頭的,是「特徵」這個詞。人們很容易想像,網路裡的每一個神經元都是某一個概念的整潔偵測器——一個「奶奶神經元」。現實要凌亂得多。大多數神經元其實是多義的(polysemantic):單一個神經元會同時為好幾件不相干的事情而啟動。目前領先的解釋是疊加假說——網路把遠多於其神經元數量的特徵塞了進去,靠的是把它們存成彼此重疊的方向,而不是一個神經元配一個特徵,就像少少幾枚硬幣就能湊出許多種總額那樣。這就是為什麼天真地一次讀一個神經元,通常只會得到一堆胡言亂語,也是為什麼導引三那一整套機械才有存在的必要。

第二個、也更危險的錯誤,是把一個合理的故事當成了那個解釋。你幾乎總能找到一個符合「你剛好看過的那些案例」的敘事——「這個頭看起來像在偵測情緒」——卻對真正的計算徹底看走了眼。這就是解釋幻覺:一個「能對上、卻不是機制」的說法。對付它的防線是因果的。如果你的故事是對的,那麼對你所指認的那個部件動手干預,就應該如你所預測的那樣改變行為,而且在你沒有精挑細選的案例上也應該繼續成立。一個你無法試著去推翻的解釋,還不是一個你能信任的解釋——這正是為什麼本階段最後一篇導引,會整篇都用來把真正的解釋,和有說服力的幻覺區分開來。

還有兩個比較快的。第一,可解釋性並不揭露「思想」或感受;找到一個「欺騙特徵」並不意味著模型有意識或心懷惡意——它只意味著某種激活模式與某種行為相關,僅此而已。第二,這個領域還很年輕。別因為我們能逆向工程出一個歸納頭、或為一個金門大橋特徵命名,就以為我們已經接近從頭到尾理解一個前沿模型了。我們讀到的是零散的幾頁,不是整本書。誠實的一句話總結,就是可解釋性鴻溝:我們打造有能力之模型的本事,遠遠超過我們理解它們的本事。

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

通情達理的研究者,對於這條路能走多遠,意見並不一致。樂觀派——也就是機制可解釋性社群的大部分人——主張特徵與電路是真實的、愈來愈找得到,而且稀疏自編碼器這類工具正在規模化,所以一個「我們稽核模型內部、藉以建立一份真正安全論證」的未來,是擺在檯面上的。懷疑派則提出好幾項憂慮。疊加也許會讓完整的逆向工程變得難以企及:如果特徵被抹散在數以千計、彼此重疊的方向上,要把一個前沿網路徹底分解,可能難如登天。還有一個「路燈」問題——我們傾向研究那些容易找到的特徵與電路,而它們未必就是與安全相關的那些。而且就算是一個正確的解釋,它終究仍是「關於模型的一個模型」:我們又要怎麼知道,自己找到的是「全部」的危險機件,而不只是「其中一些」?

還有一個值得知道的策略分歧。由下而上的機制式工作,試圖從神經元與權重往上重建出演算法;由上而下的取徑——探針、表徵工程、激活引導——則是去定位並操弄高層次的方向,而不完全解釋底下的電路。它們是用嚴謹度換取觸及範圍:由上而下的方法今天就能在大模型上取得真切的進展,但提供的保證較弱;由下而上的方法較為嚴謹,規模化卻較慢。哪一種混搭對安全最重要,是真的還沒有定論。

這就為本階段的其餘部分鋪好了路。導引二會把特徵與電路講精確,並深入走過機制式的觀點。導引三接手疊加,以及為了攻克它而打造的稀疏自編碼器。導引四轉向探針與激活引導——讀取、並輕輕推動一個模型的內部狀態。而導引五則正面迎戰最難的那個問題,也是這裡每一項結果都必須回答的問題:當我們相信自己已經解讀了一個網路時,我們怎麼知道自己是對的,而不只是在自欺欺人?從現在起,把這個問題一路帶在身邊——它正是「理解一個模型」與「為一個模型編出一個好故事」之間,那整道分野。