OpenAI官宣開(kāi)源Transformer Debugger!不用寫代碼,人人可以破解LLM黑箱
AGI真的越來(lái)越近了!
為了確保人類不被AI殺死,在解密神經(jīng)網(wǎng)絡(luò)/Transfomer黑箱這一方面,OpenAI從未停下腳步。
去年5月,OpenAI團(tuán)隊(duì)發(fā)布了一個(gè)令人震驚的發(fā)現(xiàn):GPT-4竟可以解釋GPT-2的三十萬(wàn)神經(jīng)元!
網(wǎng)友紛紛驚呼,智慧原來(lái)是這個(gè)樣子。
圖片
而就在剛剛,OpenAI超級(jí)對(duì)齊團(tuán)隊(duì)負(fù)責(zé)人又正式官宣,要開(kāi)源內(nèi)部一直使用的大殺器——Transformer調(diào)試器(Transformer Debugger)。
簡(jiǎn)之,研究者可以用TDB工具分析Transformer的內(nèi)部結(jié)構(gòu),從而對(duì)小模型的特定行為進(jìn)行調(diào)查。
圖片
也就是說(shuō),有了這個(gè)TDB工具,未來(lái)它就可以幫我們剖析和分析AGI了!
圖片
Transformer調(diào)試器將稀疏自動(dòng)編碼器,與OpenAI開(kāi)發(fā)的「自動(dòng)可解釋性」——即用大模型自動(dòng)解釋小模型,技術(shù)相結(jié)合。
鏈接:OpenAI炸裂新作:GPT-4破解GPT-2大腦!30萬(wàn)神經(jīng)元全被看透
圖片
論文地址:https://openaipublic.blob.core.windows.net/neuron-explainer/paper/index.html#sec-intro
值得一提的是,研究人員不用寫代碼,就能快速探索LLM的內(nèi)部構(gòu)造。
比如,它可以回答「為什么模型會(huì)輸出token A而不是token B」,「為什么注意力頭H會(huì)關(guān)注token T」之類的問(wèn)題。
圖片
因?yàn)門DB能支持神經(jīng)元和注意力頭,所以就可以讓研究人員通過(guò)消融單個(gè)神經(jīng)元來(lái)干預(yù)前向傳遞,并觀察發(fā)生的具體變化。
不過(guò)根據(jù)Jan Leike的說(shuō)法,這個(gè)工具現(xiàn)在還只是一個(gè)早期的版本,OpenAI放出來(lái)是希望更多的研究人員能夠用上,并且在現(xiàn)有基礎(chǔ)上進(jìn)一步改進(jìn)。
圖片
項(xiàng)目地址:https://github.com/openai/transformer-debugger
工作原理
要理解這個(gè)Transformer Debugger的工作原理,需要回顧OpenAI在2023年5月份放出的一份和對(duì)齊有關(guān)的研究。
TDB工具是基于此前發(fā)布的兩項(xiàng)研究,不會(huì)發(fā)布論文
簡(jiǎn)單來(lái)說(shuō),OpenAI希望用參數(shù)更大能力更強(qiáng)的模型(GPT-4)去自動(dòng)分析小模型(GPT-2)的行為,解釋它的運(yùn)行機(jī)制。
圖片
當(dāng)時(shí)OpenAI研究的初步結(jié)果是,參數(shù)比較少的模型容易被理解,但是隨著模型參數(shù)變大,層數(shù)增加,解釋的效果會(huì)暴降。
圖片
當(dāng)時(shí)OpenAI在研究中稱,限于GPT-4本身設(shè)計(jì)就不是用來(lái)解釋小模型行為的,所以整體上對(duì)于GPT-2的解釋成果還很差。
圖片
未來(lái)需要開(kāi)發(fā)出能夠更好地解釋模型行為的算法和工具。
而現(xiàn)在開(kāi)源的Transformer Debugger,就是OpenAI在之后這一年的階段性成果。
而這個(gè)「更好的工具」——Transformer Debugger,就是將「稀疏自動(dòng)編碼器」結(jié)合進(jìn)這個(gè)「用大模型解釋小模型」的技術(shù)線路中去。
然后再將之前OpenAI在可解釋性研究中用GPT-4解釋小模型的過(guò)程零代碼化,從而大大降低了研究人員上手的門檻。
GPT-2 Small被看穿了
在GitHub項(xiàng)目主頁(yè),OpenAI團(tuán)隊(duì)成員通過(guò)視頻介紹了最新Transformer調(diào)試器工具。
與Python調(diào)試器類似,TDB可以讓你逐步查看語(yǔ)言模型輸出、跟蹤重要激活并分析上游激活。
進(jìn)入TDB主頁(yè),首先是「提示」一欄輸入——提示和感興趣的token:
Mary and Johon went to the store, Johon gave a drink to....
那么接下來(lái),就是做一個(gè)「下一詞」的預(yù)測(cè),需要輸入目標(biāo)token,以及干擾性的token。
最后提交后,便可以看到系統(tǒng)給出的預(yù)測(cè)下一詞候選的對(duì)數(shù)。
下面的「節(jié)點(diǎn)表」是TDB的核心部分。這里的每一行都對(duì)應(yīng)一個(gè)節(jié)點(diǎn),也就是激活一個(gè)模型組件。
圖片
如果要了解對(duì)某個(gè)特定提示中非常重要的注意力頭的功能,直接點(diǎn)擊組件的名稱。
然后TDB會(huì)打開(kāi)「神經(jīng)元瀏覽器 」頁(yè)面,頂部會(huì)顯示之前的提示詞。
圖片
這里能看到淺藍(lán)色和粉色的token。每個(gè)對(duì)應(yīng)顏色的token之下,從后續(xù)標(biāo)記到這個(gè)token的注意力會(huì)讓一個(gè)大范數(shù)向量(large norm vector)被寫入后續(xù)token中。
圖片
在另外兩個(gè)視頻中,研究人員介紹了TDB的概念,以及其在理解回路中的應(yīng)用。與此同時(shí),他還演示了TDB如何定性地再現(xiàn)論文中的一個(gè)發(fā)現(xiàn)。
OpenAI自動(dòng)可解釋性研究
簡(jiǎn)單來(lái)說(shuō),OpenAI自動(dòng)可解釋性研究的思路是讓GPT-4對(duì)神經(jīng)元的行為進(jìn)行自然語(yǔ)言解釋,然后把這個(gè)過(guò)程應(yīng)用到GPT-2中。
這何以成為可能?首先,我們需要「解剖」一下LLM。
像大腦一樣,它們由「神經(jīng)元」組成,它們會(huì)觀察文本中的某些特定模式,這就會(huì)決定整個(gè)模型接下來(lái)要說(shuō)什么。
比如,如果給出這么一個(gè)prompt,「哪些漫威超級(jí)英雄擁有最有用的超能力?」 「漫威超級(jí)英雄神經(jīng)元」可能就會(huì)增加模型命名漫威電影中特定超級(jí)英雄的概率。
OpenAI的工具就是利用這種設(shè)定,把模型分解為單獨(dú)的部分。
第一步:使用GPT-4生成解釋
首先,找一個(gè)GPT-2的神經(jīng)元,并向GPT-4展示相關(guān)的文本序列和激活。
然后,讓GPT-4根據(jù)這些行為,生成一個(gè)可能的解釋。
比如,在下面的例子中GPT-4就認(rèn)為,這個(gè)神經(jīng)元與電影、人物和娛樂(lè)有關(guān)。
圖片
第二步:使用GPT-4進(jìn)行模擬
接著,讓GPT-4根據(jù)自己生成的解釋,模擬以此激活的神經(jīng)元會(huì)做什么。
圖片
第三步:對(duì)比打分
最后,將模擬神經(jīng)元(GPT-4)的行為與實(shí)際神經(jīng)元(GPT-2)的行為進(jìn)行比較,看看GPT-4究竟猜得有多準(zhǔn)。
圖片
還有局限
通過(guò)評(píng)分,OpenAI的研究者衡量了這項(xiàng)技術(shù)在神經(jīng)網(wǎng)絡(luò)的不同部分都是怎樣的效果。對(duì)于較大的模型,這項(xiàng)技術(shù)的解釋效果就不佳,可能是因?yàn)楹竺娴膶痈y解釋。
圖片
目前,絕大多數(shù)解釋評(píng)分都很低,但研究者也發(fā)現(xiàn),可以通過(guò)迭代解釋、使用更大的模型、更改所解釋模型的體系結(jié)構(gòu)等方法,來(lái)提高分?jǐn)?shù)。
現(xiàn)在,OpenAI正在開(kāi)源「用GPT-4來(lái)解釋GPT-2中全部307,200個(gè)神經(jīng)元」結(jié)果的數(shù)據(jù)集和可視化工具,也通過(guò)OpenAI API公開(kāi)了市面上現(xiàn)有模型的解釋和評(píng)分的代碼,并且呼吁學(xué)界開(kāi)發(fā)出更好的技術(shù),產(chǎn)生得分更高的解釋。
此外,團(tuán)隊(duì)還發(fā)現(xiàn),越大的模型,解釋的一致率也越高。其中,GPT-4最接近人類,但依然有不小的差距。
圖片
以下是不同層神經(jīng)元被激活的例子,可以看到,層數(shù)越高,就越抽象。
圖片
圖片
圖片
圖片
稀疏自動(dòng)編碼器設(shè)置
OpenAI使用的的稀疏自動(dòng)編碼器是一個(gè)在輸入端具有偏置的模型,還包括一個(gè)用于編碼器的具有偏置和ReLU的線性層,以及另一個(gè)用于解碼器的線性層和偏置。
研究人員發(fā)現(xiàn)偏置項(xiàng)對(duì)自動(dòng)編碼器的性能非常重要,他們將輸入和輸出中應(yīng)用的偏差聯(lián)系起來(lái),結(jié)果相當(dāng)于從所有激活中減去固定偏差。
研究人員使用Adam優(yōu)化器訓(xùn)練自動(dòng)編碼器,以使用MSE重建Transformer的MLP激活。使用MSE損耗可以避免多語(yǔ)義性的挑戰(zhàn),用損失加上L1懲罰項(xiàng)來(lái)鼓勵(lì)稀疏性。
在訓(xùn)練自動(dòng)編碼器時(shí),有幾個(gè)原則非常重要。
首先是規(guī)模。在更多數(shù)據(jù)上訓(xùn)練自動(dòng)編碼器會(huì)使特征主觀上“更清晰”且更具可解釋性。所以O(shè)penAI為自動(dòng)編碼器使用了80億個(gè)訓(xùn)練點(diǎn)。
其次,在訓(xùn)練過(guò)程中,一些神經(jīng)元會(huì)停止激活,即使在大量數(shù)據(jù)點(diǎn)上也是如此。
研究人員于是在訓(xùn)練期間「重采樣」這些死神經(jīng)元,允許模型代表給定的自動(dòng)編碼器隱藏層維度的更多特征,從而產(chǎn)生更好的結(jié)果。
判斷指標(biāo)
怎樣判斷自己的方法是否有效?在機(jī)器學(xué)習(xí)中可以簡(jiǎn)單地用loss作為標(biāo)準(zhǔn),但在這里就不太容易找到類似的參考。
比如尋找一個(gè)基于信息的指標(biāo),這樣可以在某種意義上說(shuō),最好的分解是最小化自動(dòng)編碼器和數(shù)據(jù)總信息的分解。
——但事實(shí)上,總信息通常與主觀特征可解釋性或激活稀疏性無(wú)關(guān)。
最終,研究人員使用了了幾個(gè)附加指標(biāo)的組合:
- 手動(dòng)檢查:特征是否看起來(lái)可以解釋?
- 特征密度:實(shí)時(shí)特征數(shù)量和觸發(fā)它們的token的百分比是一個(gè)非常有用的指導(dǎo)。
- 重建損失:衡量自動(dòng)編碼器重建MLP激活的程度。最終目標(biāo)是解釋MLP層的功能,因此MSE損耗應(yīng)該很低。
- 玩具模型:使用一個(gè)已經(jīng)非常了解的模型,可以清晰地評(píng)估自動(dòng)編碼器的性能。
不過(guò)研究人員也表示,希望從Transformer上訓(xùn)練的稀疏自動(dòng)編碼器中,為字典學(xué)習(xí)解決方案確定更好的指標(biāo)。
參考資料:
https://twitter.com/janleike/status/1767347608065106387?s=20