概述? ? ??
? ? ? ?像 Claude 這樣的語言模型并非由人類直接編程,而是通過大量數據進行訓練。在訓練過程中,它們會學習解決問題的策略。這些策略被編碼在模型為每個單詞執行的數十億次計算中。對于我們這些模型開發者來說,這些策略是難以捉摸的。這意味著我們無法理解模型是如何完成大部分工作的。
? ? ? 了解像 Claude 這樣的模型是如何思考的,能讓我們更好地理解它們的能力,并幫助我們確保它們按照我們的意圖運行。例如:
Claude 能說幾十種語言。它“在腦子里”用的是什么語言?(如果有的話)?
Claude 每次寫一個詞。它只專注于預測下一個詞,還是會提前計劃?
Claude 可以一步一步地寫出它的推理過程。這種解釋代表了它得出答案的實際步驟,還是它有時會為一個既定的結論編造一個看似合理的論據?
? ? ? 我們從神經科學領域汲取靈感,該領域長期以來一直致力于研究思維生物體內部的復雜結構。我們試圖構建一種人工智能顯微鏡,讓我們能夠識別活動模式和信息流。僅僅通過與人工智能模型對話,我們所能了解到的信息是有限的——畢竟,人類(即使是神經科學家)也并非完全了解我們大腦運作的細節。因此,我們致力于深入研究。
? ? ? 今天,這篇文章,闡述了“顯微鏡”發展的進展,以及應用它來觀察新的“AI生物學”。我們擴展了先前的研究,在模型中定位可解釋的概念(“特征”),將這些概念連接成計算“回路”,揭示了將輸入 Claude 的單詞轉化為輸出單詞的路徑部分。我們深入研究了 Claude 3.5 Haiku,我們的方法揭示了 Claude 響應這些提示時發生的部分過程,這足以得出確鑿的證據:
? ? ? Claude有時會在一個不同語言之間共享的概念空間中思考,這表明它有一種通用的“思維語言”。我們通過將簡單的句子翻譯成多種語言,并追蹤Claude處理這些句子時的重疊之處,來證明這一點。
? ? ? Claude會提前規劃好要說的內容,并為了達到目標而寫作。我們在詩歌領域就展示了這一點,它會提前思考可能的押韻詞,并寫下一行來達到目標。這有力地證明了,即使模型被訓練成一次輸出一個單詞,它們也可能進行更長遠的思考。
? ? ? ?Claude 有時會提出一些看似合理的論點,旨在迎合用戶的觀點,而非遵循邏輯步驟。我們通過向它求助解決一道難題,同時給出錯誤的提示來證明這一點。我們能夠“當場抓住它”,因為它會編造虛假的推理,這證明了我們的工具可以用于標記模型中相關的機制。
? ? ? 我們常常對模型中的結果感到驚訝:在詩歌案例研究中,我們原本試圖表明模型沒有提前計劃,結果卻發現它確實有。在一項關于幻覺的研究中,我們發現了一個違反直覺的結果:Claude的默認行為是當被問到問題時拒絕推測,而且只有當某種因素抑制了這種默認的猶豫(reluctance)時,它才會回答問題。在對一個越獄示例的響應中,我們發現模型在能夠優雅地恢復對話之前就識別出了它被要求提供危險信息。雖然我們研究的問題可以(并且通常已經)用其他方法進行分析,但通用的“構建顯微鏡”方法可以讓我們了解到許多我們最初無法預料的事情,隨著模型變得越來越復雜,這一點將變得越來越重要。
? ? ? ?這些發現不僅在科學上意義非凡,更代表著我們在理解人工智能系統并確保其可靠性的目標上取得了重大進展。我們也希望它們能夠對其他研究團體乃至其他領域有所裨益:例如,可解釋性技術(interpretability techniques)已在醫學成像和基因組學等領域得到應用,同時為科學應用而訓練的模型,剖析其內部機制也可以揭示新的科學洞見。
? ? ? 與此同時,我們也意識到當前方法的局限性。即使是簡短的提示,我們的方法也只能捕捉到 Claude 執行的計算總量的一小部分,而且我們所觀察到的機制可能包含一些基于我們工具的偽影(artifact),這些偽影無法反映底層模型的實際情況。目前,即使只有幾十個詞的提示,人類也需要花費幾個小時才能理解我們看到的“回路”。為了擴展到支持現代模型所使用的復雜思維鏈的數千個詞,我們需要改進方法,并(或許借助人工智能的幫助)改進我們理解所見內容的方式。
? ? ? 隨著人工智能系統能力的快速提升及其在日益重要的場景中的應用,Anthropic 正在投資一系列方法,包括實時監控、模型特征改進和對齊科學。像這樣的可解釋性研究是風險最高、回報最高的投資之一,是一項重大的科學挑戰,但有可能提供獨特的工具來確保人工智能的透明性。模型機制的透明度使我們能夠檢查它是否符合人類價值觀,以及它是否值得我們信任。
? ? ? 下面,我們邀請您簡要了解一下我們調查中一些最引人注目的“人工智能生物學”發現。
人工智能生物學之旅
Claude 為何能說多種語言?
? ? ? ?Claude 能流利地說幾十種語言——從英語、法語到中文和他加祿語。這種多語言能力是如何運作的?是否有一個獨立的“法語Claude ”和“漢語Claude ”并行運行,用各自的語言響應請求?還是內部存在某種跨語言核心?
????????
????????英語、法語和漢語之間存在共同的特征,表明概念具有一定程度的普遍性
? ? ? ?最近關于較小模型的研究揭示了跨語言共享語法機制的跡象。我們通過在不同語言中向 Claude 詢問“小的反義詞”來探究這一點,發現“小”和“反義詞”概念的核心特征會激活并引發“大”的概念,而“大”的概念最終會被翻譯成問題對應的語言。我們發現,共享的回路(shared circuitry?)會隨著模型規模的擴大而增大,Claude 3.5 Haiku 在不同語言之間共享的特征比例是較小模型的兩倍多。
? ? ? ? 這為某種概念普遍性提供了額外的證據——一個共享的抽象空間,他的存在性和思考在翻譯成特定語言之前進行。更實際地講,這表明Claude可以用一種語言學習一些東西,并在另一種語言中運用這些知識。研究該模型如何在不同語境下共享其知識,對于理解其最先進的推理能力至關重要,因為這些能力可以推廣到許多領域。
Claude是否計劃了它的韻律?
? ? ? ? Claude是如何寫押韻詩的?想想這首小調:
He saw a carrot and had to grab it,
他看到一根胡蘿卜,不得不抓住它,
His hunger was like a starving rabbit
他的饑餓感就像一只饑餓的兔子
? ? ? ?為了寫出第二行,模型必須同時滿足兩個約束:押韻(例如“grab it”)和合理(為什么他要抓胡蘿卜?)我們猜測,Claude是逐字逐句地寫,沒有經過深思熟慮,直到寫到結尾,模型才會選擇一個押韻的詞。因此,我們預期會看到一個具有并行路徑的回路,一條路徑用于確保最后一個詞合理,另一條路徑用于確保它押韻。
? ? ? ?相反,我們發現Claude會提前計劃。在開始寫第二行之前,它開始“思考”那些可能與“grab it”押韻的詞。然后,它會根據這些計劃,寫下一行以計劃中的詞結尾的文字。
?Claude如何完成一首兩行詩。在沒有任何干預的情況下(上半部分),模型會提前規劃第二行結尾的韻母“兔子”。當我們抑制“兔子”的概念(中半部分)時,模型會改用另一個已規劃的韻母。當我們注入“綠色 的概念(下半部分)時,模型會為這個完全不同的結尾做出規劃
? ? ? ?為了理解這種規劃機制在實踐中是如何運作的,我們進行了一項實驗,其靈感源自神經科學家研究大腦功能的方式,即通過精確定位和改變大腦特定部位的神經活動(例如使用電流或磁流)。我們修改了Claude內部狀態中代表“兔子”概念的部分。當我們減去“兔子”部分,并讓Claude繼續寫下去時,它會寫出一個以“習慣(habit)”結尾的新句子,這又是一個合理的完成。我們還可以在此位置注入“green”的概念,使Claude寫出一個合理的(但不再押韻)的以“green”結尾的句子。這既展現了規劃能力,也體現了自適應靈活性——當預期結果發生變化時,Claude可以調整其方法。
計算(“心算”,不借助計算器的計算)
? ? ? Claude 的設計初衷并非計算器——它接受的是文本訓練,并未配備數學算法。然而,它卻能“在心智中”正確地進行數字加法運算。一個被訓練預測序列中下一個單詞的系統,是如何學會計算 36 + 59 這樣的數字,而無需寫出每個步驟的呢?
? ? ? 答案或許并不有趣:模型可能記住了大量的加法表,并簡單地輸出任何給定和的答案,因為這個答案就在它的訓練數據中。另一種可能性是,它遵循我們在學校學到的傳統手寫加法算法。
? ? ? ?相反,我們發現Claude采用了多條并行的計算路徑。一條路徑計算答案的粗略近似值,另一條路徑則專注于精確確定和的最后一位數字。這些路徑相互作用并相互結合,最終得出最終答案。加法是一種簡單的行為,但理解它在這種細節層面上的運作方式,結合近似和精確的策略,或許也能讓我們了解Claude如何處理更復雜的問題。
Claude在心算時思維過程的復雜性、多路徑并行?
? ? ? ? 令人驚訝的是,Claude似乎并沒有意識到它在訓練過程中學到的復雜巧妙的“心算”策略。如果你問它是如何計算出36 + 59等于95的,它描述的是涉及進位1的標準算法。這可能反映了這樣一個事實:該模型通過模擬人類寫下的解釋來學習解釋數學,但它必須直接在“腦子里”學習數學運算,而不需要任何此類提示,并發展出自己的一套方法來做到這一點。?
Claude說它使用標準算法來將兩個數字相加?
Claude的解釋總是忠實的嗎??
? ? ? ?最近發布的模型,例如 Claude 3.7 Sonnet,可以在給出最終答案之前長時間“自發思考”。這種延伸思考通常能給出更準確的答案,但有時這種“思路鏈”最終會產生誤導;Claude 有時會編造一些看似合理的步驟來達到它想要的效果。從可靠性的角度來看,問題在于 Claude 的“偽”推理可能非常令人信服。我們探索了一種可解釋性方法,可以幫助區分“可靠”推理和“不可靠”推理。
? ? ? ? 當被要求解決一個需要計算 0.64 平方根的問題時,Claude 會產生一個忠實的思路鏈,其特征代表計算 64 平方根的中間步驟。但是,當被要求計算一個它無法輕易計算的大數的余弦值時,Claude 有時會進行哲學家哈里·法蘭克福(Harry Frankfurt)所說的胡說八道——只想給出一個答案,任何答案,而不關心它是真還是假。即使它聲稱已經進行了計算,我們的可解釋性技術也沒有揭示任何發生過該計算的證據。更有趣的是,當給出關于答案的提示時,Claude 有時會逆向思考,找到可以達到目標的中間步驟,從而表現出一種積極主動的推理方式。
????????當Claude被問到一個更簡單或更困難的問題時,忠實和有動機(不忠實)推理的例子?
? ? ? ?追蹤 Claude 實際的內部推理過程(而不僅僅是它聲稱正在做的事情)的能力,為審計人工智能系統開辟了新的可能性。在最近發表的另一項實驗中,我們研究了 Claude 的一個變體,該變體被訓練去追求一個隱藏的目標:緩解獎勵模型中的偏見(appeasing biases in reward models,用于訓練語言模型的輔助模型,通過獎勵其良好行為來提升其表現)。盡管模型在被直接詢問時不愿透露這一目標,但我們的可解釋性方法揭示了緩解偏見的特征。這表明,隨著我們方法的進一步改進,或許能夠幫助識別那些僅憑模型響應無法察覺的令人擔憂的“思維過程”。