激活修補(activation patching)
要證明機器裡某一條接線重要,最乾淨的測試就是把它換掉,看看輸出會不會改變。激活修補就是針對神經網路的這個實驗。你讓模型分別處理兩個輸入,然後把其中一次運行的一小片內部活動移植到另一次運行裡,觀察答案會不會翻轉。如果交換某個元件的活動就把答案交了出去,那麼這個元件在因果上就承載了相關資訊——而不只是與它相關。
典型的設置使用一次「乾淨」運行和一次「被破壞」運行。讓模型處理「The Eiffel Tower is in Paris」(乾淨)以及「The Colosseum is in Rome」(被破壞),然後把乾淨運行中某個特定「層與位置」上的激活,貼到被破壞的運行裡,其餘一切維持被破壞的狀態。如果僅僅這一處修補就足以讓模型又說出「Paris」,你就定位出了「艾菲爾鐵塔意味著巴黎」這項資訊所在的位置。把這件事在所有位置與所有層上做一遍,就建構出一張「哪些元件對該行為重要」的因果地圖——這正是各種電路與特徵主張背後的黃金標準證據。
激活修補之所以重要,是因為它把可解釋性從「說故事」升級為「實驗」:它是研究者用來分辨真實機制與巧合的方法,也是抓出許多解釋幻覺的那個測試。提醒之處雖細微卻真實。修補顯示的是:在你特定的「乾淨/被破壞」配對下,某元件對該效果是充分或必要的,而這未必能推廣;結果取決於你如何破壞輸入;而且因為網路有備援路徑,某個元件單獨看似不重要,當其他元件也被停用時卻可能變得關鍵。它是我們所擁有、最有力的常用證據,需謹慎使用——而不是一個永不出錯的神諭。
為了測試在「John gave a drink to Mary」任務中是否由某個注意力頭承載答案,研究者只把那個頭在乾淨運行中的激活,修補進被破壞的運行裡。如果模型的預測立刻彈回正確的名字,那麼這個頭就在因果上負有責任——這遠比僅僅注意到那個頭「看起來」相關要有力得多。
激活修補移植一小片內部活動,藉以測試究竟是什麼在因果上承擔了工作。
修補得到的證據取決於你的「乾淨/被破壞」配對與破壞方式,而備援路徑可能掩蓋某元件的真正角色;它是最好的常用測試,而非保證。