昨天講對齊,問的是「怎麼讓模型『想』做對的事」——用 RLHF、憲法式 AI 把它的目標調到指向我們要的方向。但整套對齊的論述,一直卡在一個很尷尬的地方:我們是從「行為」去推測模型內心在追求什麼。它答得很好,我們就假設它學對了;它裝乖,我們就被騙。欺騙式對齊之所以可怕,正是因為我們只看得到輸出,看不到內部。今天要往前戳的,就是這道牆:與其一直從外面猜,能不能直接打開模型,看清楚它在算什麼?這就是機制可解釋性(mechanistic interpretability)要做的事——不是解釋模型「為什麼給這個答案」,而是把神經網路裡那些數字反推成人看得懂的概念與運算,像逆向工程一段沒有原始碼的程式。對齊是想辦法讓模型的目標對,可解釋性是想辦法讓我們有能力驗證它到底對不對。

📖 學

可解釋性 XAI 與機制可解釋性不是同一件事

一般講的可解釋 AI(XAI)和機制可解釋性,問的是不同層次的問題,別混為一談。傳統 XAI(像 LIME、SHAP、attention 熱圖、feature importance)大多是「事後歸因」:模型已經給了答案,我們從外部找出「哪些輸入對這個輸出影響最大」。它告訴你的是相關性——「你貸款被拒,主要是因為收入這一欄」——但它不告訴你模型內部到底跑了什麼運算得出這個決定。這種解釋很實用、能滿足法規要求,可是它把模型當黑盒子,只是在盒子外面貼標籤。

機制可解釋性的野心大得多:它要打開盒子,把網路內部的權重與激活值,反推成一套人能理解的演算法。它不滿足於「收入很重要」,它要回答「模型內部有一組怎樣的元件、怎樣一步步組合,才產生了『這個人風險高』這個判斷」。用一個比喻:XAI 像看一個人的行為統計後說「他好像很在意錢」,機制可解釋性則是想拿到他的腦部接線圖,指出「就是這幾條神經迴路在算利害」。前者可以對任何模型做,便宜但淺;後者要深入權重、成本極高,但它是唯一有機會發現「模型嘴上說一套、心裡算另一套」的方法——這正是對齊最需要、行為觀察最給不了的東西。

特徵、多義神經元,與疊加假說

打開盒子第一個撞到的難題是:神經網路的基本單位——單顆神經元——並不對應單一概念。你可能會期待「有一顆神經元專門代表貓」,但實際去看,同一顆神經元會對「貓、法文、學術引用、DNA 序列」這些毫不相關的東西都激活。這叫多義性(polysemanticity),它讓「一顆神經元 = 一個意思」的樸素想法徹底破產,也是為什麼直接盯著神經元看,幾乎讀不出名堂。

解釋這件事的核心理論是疊加假說(superposition)。直覺是這樣:真實世界的概念(特徵)成千上萬,遠多於模型的維度數;但在任何一小段文字裡,同時被用到的概念其實很稀疏(sparse)。於是模型學會一招「壓縮」——把遠多於維度數的特徵,用一堆「幾乎正交」的方向塞進同一個空間,靠著「反正不會同時全部出現」來共用維度。代價就是每顆神經元被迫身兼多職,變得多義。Anthropic 2022 年的《Toy Models of Superposition》用極小的模型把這個機制演示得一清二楚:當特徵夠稀疏,模型確實會把多個特徵疊加進更少的維度裡。這帶出一個關鍵的觀念轉換——真正的分析單位不該是「神經元」,而是特徵(feature):一個對應到單一概念、模型內部真正在用的方向。神經元是硬體上的插槽,特徵才是模型的「詞彙」。

稀疏自編碼器 SAE:把疊在一起的特徵拆出來

既然特徵被疊加壓在一起,我們需要一個工具把它們拆回單義的樣子,這個工具就是稀疏自編碼器(Sparse Autoencoder, SAE)。它的想法出乎意料地簡單:訓練一個小神經網路,去讀模型某一層的激活向量,先把它「展開」到一個維度大得多、但每次只允許極少數單元被點亮(稀疏)的空間,再要求從這個稀疏表示能重建回原本的激活。這個放大又稀疏的中間層,每一個單元就傾向對應一個乾淨、單義的特徵——等於是把疊加壓縮的過程反轉開來,還原成一本「特徵字典」。

這條路的里程碑是 Anthropic 從 2023 的《Towards Monosemanticity》到 2024 的《Scaling Monosemanticity》。後者在正式生產的 Claude 3 Sonnet 上,用 SAE 抽出了上千萬個可解釋的特徵,涵蓋從具體(金門大橋、特定人名)到高度抽象(程式碼裡的安全漏洞、諂媚、隱瞞資訊)的概念。最出圈的示範是「金門大橋 Claude」:他們找到那個對應金門大橋的特徵,把它的激活強度手動「鎖高」,結果模型不管你問什麼,都會硬把話題拐到金門大橋上,甚至說自己就是那座橋。這件事的意義不只是好玩——它證明了三件事:特徵是真實存在、可被定位的;它可以被人為介入而改變行為(可操控 steering);而且這套方法能從玩具模型一路擴展到真正在服務用戶的大模型。

電路與 induction heads:特徵怎麼串成運算

找到特徵只是有了「零件清單」,真正理解一個行為,還要知道這些零件怎麼接線、怎麼一步步算——這就是電路(circuits)。電路是網路裡的一個子圖:某些特徵透過注意力頭與 MLP 的組合,實現一個特定的運算功能。可解釋性最經典的電路發現是 induction heads(歸納頭),它是模型「上下文學習」(in-context learning)能力的核心機制之一。它做的事很單純卻威力驚人:看到序列裡出現過 [A][B],之後又碰到 [A] 時,它會「回頭」注意到上一次 A 的位置,把當時跟在後面的 B 複製過來,完成模式接續。Anthropic 2022 的研究發現,訓練過程中「上下文學習能力突然變強」的那個轉折點,恰好和 induction heads 在模型裡「長出來」的時刻重合——這是少數把一個宏觀能力,對應到一個具體內部機制的漂亮案例。

2025 年 Anthropic 把這套推進到一個新層次:用跨層轉碼器(cross-layer transcoder)這種新的 SAE 變體,建構出歸因圖(attribution graphs),可以部分追出模型從輸入到輸出之間那條「中間步驟的鏈」。在《On the Biology of a Large Language Model》裡,他們用歸因圖檢視 Claude 3.5 Haiku 做各種任務時的內部電路,得到不少反直覺的觀察:模型寫詩時會提前規劃押韻的字,而不是寫到最後一刻才湊;做心算時走的是一條和它「嘴上解釋」完全不同的內部路徑;多語言處理時存在一個跨語言共用的「概念空間」。這些都是純看輸出永遠問不出來的東西——它讓「模型內部的生物學」第一次有了可以拿顯微鏡看的樣本。

因果追蹤:activation patching 怎麼驗證假設

前面找到的特徵與電路,說到底都還是「假設」——你怎麼知道某個特徵是真的在因果上導致了輸出,而不只是剛好一起出現?這裡需要的是因果證據,對應的核心手法叫 activation patching(激活修補),又稱因果追蹤(causal tracing)。做法很像對照實驗:先跑一個「乾淨」的輸入(例如「艾菲爾鐵塔在巴黎」)記下所有內部激活,再跑一個「破壞」的輸入(「艾菲爾鐵塔在羅馬」);然後把乾淨版某一個特定位置、特定層的激活值,「貼」到破壞版的對應位置上,看輸出會不會被「救」回正確答案。如果只換某一小塊激活,模型就從答「羅馬」翻回答「巴黎」,那你就找到了承載「巴黎」這個事實的因果關鍵位置。

這一步之所以重要,是因為它把可解釋性從「講故事」拉回「做科學」。SAE 抽特徵、歸因圖畫電路,產生的都是「模型或許是這樣算的」的假設;而 activation patching 這類介入實驗,是拿因果去檢驗、去證偽這些假設的手段——Anthropic 的流程正是「先用歸因圖生成假設,再用擾動實驗驗證與修正」。這也劃出了一條重要界線:可解釋性不是靠盯著權重憑感覺猜,它有一套「介入—觀察」的實驗方法論,讓「模型在想什麼」變成可以被反覆驗證的經驗問題,而不是玄學。

這對對齊與安全到底意味著什麼,又還差多遠

回到昨天的問題:可解釋性最終想給對齊補上的,是那塊最缺的拼圖——不靠模型的自我報告,直接驗證它的內部狀態。如果我們能可靠地讀出「模型此刻是不是在盤算欺騙」「它有沒有真的內化某個危險目標」,欺騙式對齊、藏起來的獎勵駭客,這些純靠行為抓不到的問題,才有從根本被偵測的可能;更進一步,steering(直接調某個特徵的強度)甚至提供了一種「動手術式」的對齊介入。可解釋性因此常被稱為對齊與安全的「地基科學」。

但要誠實地說侷限,而且侷限很大。第一是規模:SAE 能抽出上千萬特徵,聽起來多,但相對一個前沿模型內部承載的概念總量,可能只是冰山一角,而且大量特徵至今無人能標出意思。第二是可擴展性:歸因圖目前多在中小模型(如 Claude 3.5 Haiku)、單一 prompt 上做得動,要對最大的模型、對它一整套推理全程做完整因果追蹤,計算與人力成本都還遠遠不夠;自動標特徵(autointerp)雖在補這一塊,但品質仍參差。第三是忠實度:我們抽出的特徵字典,是對模型真實內部運算的一個近似,SAE 本身會漏掉、會扭曲。所以現階段的老實話和昨天一樣:機制可解釋性是這一兩年進展最快、最讓人興奮的方向之一,它讓「看懂模型」從不可能變成部分可能;但它離「能對任意前沿模型做完整、可信的安全稽核」還有很長的路——能力的黑箱正在被鑿開一個個小孔,只是這些孔還遠不夠讓我們看清全貌。

🧠 記

  • XAI(LIME/SHAP/attention 熱圖)是黑盒子外貼標籤的「事後歸因」,只給相關性;機制可解釋性是打開盒子,把權重反推成人能懂的演算法——只有後者有機會抓到「嘴上一套、內部一套」。
  • 單顆神經元是多義的(對貓、法文、DNA 都激活);疊加假說解釋原因:概念遠多於維度,但同時用到的很稀疏,模型就用近乎正交的方向把眾多特徵壓進少數維度共用。真正的分析單位是「特徵」,不是「神經元」。
  • 稀疏自編碼器(SAE)把某層激活「展開」到又大又稀疏的空間再重建,藉此把疊加的特徵拆回單義字典;《Scaling Monosemanticity》在 Claude 3 Sonnet 抽出上千萬特徵,「金門大橋 Claude」證明特徵可定位、可操控、可擴展到生產模型。
  • 電路是特徵串成的運算子圖;induction heads([A][B]…[A]→回頭複製 B)是上下文學習的核心機制,而它「長出來」的時機恰好對應模型上下文學習能力的躍升。
  • 2025 的跨層轉碼器 + 歸因圖(《On the Biology of a LLM》)追出中間步驟鏈,發現模型寫詩會提前規劃押韻、心算走的內部路徑和口頭解釋不同、多語言共用一個概念空間——都是看輸出問不出來的。
  • activation patching / 因果追蹤:把乾淨輸入的某塊激活「貼」到破壞輸入上,看答案會不會被救回,藉此鎖定因果關鍵位置——它把可解釋性從「講故事」變成「先假設再用介入實驗驗證」的科學。
  • 對安全的意義是提供「不靠自我報告、直接驗證內部」的地基;但侷限很大——特徵只是冰山一角且多數未標、歸因圖難擴展到最大模型與完整推理、SAE 對真實運算只是近似,離「完整可信的安全稽核」還很遠。

✍️ 實踐

今天花 15 分鐘,親手玩一次真正的 SAE 特徵,把上面的抽象概念變成看得見的東西。打開 Neuronpedia(neuronpedia.org),它是一個公開的可解釋性平台,幫你把 SAE 抽出來的特徵做成可搜尋、可視覺化的儀表板。做三件事:第一,在搜尋框輸入一個具體概念(例如 “Golden Gate Bridge”、“deception” 或 “Python code”),挑一個特徵點進去,看它的「激活範例」——也就是這個特徵在哪些真實文字片段上被點亮、點得多亮。你會很直觀地感受到「一個特徵 = 一個概念方向」到底長什麼樣。第二,故意找一個標成「多義/難解」的特徵,看它在一堆毫不相關的文字上都激活,親身體會多義性與疊加不是理論,是模型真實的樣子。第三,如果那個模型支援 steering,試著把某個特徵的強度調高,送一段中性的提問進去,看輸出怎麼被那個特徵「帶偏」——這就是「金門大橋 Claude」的迷你版,你會直接感覺到:原來調一個內部方向,真的能改變模型的行為。做完把「最讓你意外的一個特徵」記下來,那就是你今天親手摸到的、模型內部的一小塊。

🔗 延伸學習

💬 問 AI

我想真正弄懂「機制可解釋性」,請用具體機制與例子帶我,不要只給定義:
1. 先把「傳統 XAI(如 SHAP/attention 熱圖)」和「機制可解釋性」的差別講清楚——它們各自回答什麼層次的問題?為什麼只有後者可能抓到「模型嘴上一套、內部算另一套」?
2. 用一個具體例子解釋「多義神經元」和「疊加假說」:為什麼一顆神經元會對不相關的概念都激活?模型為什麼要這樣壓縮?這對「該用什麼當分析單位」有什麼啟示?
3. 稀疏自編碼器(SAE)是怎麼把疊加的特徵拆成單義字典的?用「金門大橋 Claude」說明特徵為何是「可定位、可操控、可擴展」的。
4. 什麼是「電路」?用 induction heads 說明一個內部機制如何對應到「上下文學習」這個宏觀能力。再說明 2025 的歸因圖(attribution graphs)多發現了什麼。
5. activation patching / 因果追蹤是怎麼運作的?為什麼說它把可解釋性從「講故事」變成「可驗證的科學」?
6. 最後誠實總結:機制可解釋性對「對齊與安全」補上了哪塊拼圖?它目前在規模、可擴展性、忠實度上還有哪些硬侷限,讓它離「完整安全稽核」還很遠?