早在2023年10月,著名大模型平臺(tái)Anthropic發(fā)布了一篇《朝向單義性:通過詞典學(xué)習(xí)分解語言模型》的論文,深度解釋了神經(jīng)網(wǎng)絡(luò)行為的方法。

Anthropic在一個(gè)小型的Transformer架構(gòu)模型進(jìn)行了實(shí)驗(yàn),將512個(gè)神經(jīng)單元分解成4000多個(gè)特征,分別代表 DNA 序列、法律語言、HTTP 請(qǐng)求、營養(yǎng)說明等。

研究發(fā)現(xiàn),單個(gè)特征的行為比神經(jīng)元行為更容易解釋、可控,同時(shí)每個(gè)特征在不同的AI模型中基本上都是通用的。

圖片

而本次OpenAI不僅公布了論文還開源了代碼,同時(shí)提供了一個(gè)在線體驗(yàn)地址,與全球開發(fā)者分享他們的研究成果,同時(shí)讓用戶深度了解神經(jīng)網(wǎng)絡(luò)生成的內(nèi)容流程,以便更精準(zhǔn)、安全地控制大模型輸出。

開源地址:https://github.com/openai/sparse_autoencoder

論文地址:https://cdn.openai.com/papers/sparse-autoencoders.pdf

在線demo:https://openaipublic.blob.core.windows.net/sparse-autoencoder/sae-viewer/index.html

什么控制神經(jīng)網(wǎng)絡(luò)行為很難

無論你用多么精準(zhǔn)的提示詞,都無法讓DALL·E3、Stable Difusion生成100%相吻合的圖片。這是因?yàn)?,神?jīng)網(wǎng)絡(luò)的輸出很大程度上依賴于它們所接受的訓(xùn)練數(shù)據(jù)。

神經(jīng)網(wǎng)絡(luò)通過大量的樣本數(shù)據(jù)學(xué)習(xí)到復(fù)雜的模式和特征。但是,訓(xùn)練數(shù)據(jù)本身可能包含噪聲、偏差或者數(shù)據(jù)標(biāo)準(zhǔn)不準(zhǔn)確等。這些因素會(huì)直接影響神經(jīng)網(wǎng)絡(luò)對(duì)輸入數(shù)據(jù)的響應(yīng)。

例如,讓神經(jīng)網(wǎng)絡(luò)生成一張貓的圖片。如果訓(xùn)練數(shù)據(jù)中有一些不清晰或錯(cuò)誤標(biāo)記的圖片,例如狗或其他動(dòng)物的照片,模型可能會(huì)在生成貓的圖片時(shí)出現(xiàn)混亂,生成出一些看起來不像貓的圖像。同理,文本類的ChatGPT等產(chǎn)品也會(huì)出現(xiàn)一本正經(jīng)胡說八道的情況。

圖片

神經(jīng)網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu)和參數(shù)設(shè)置極其復(fù)雜。隨著技術(shù)的迭代,目前隨便一個(gè)神經(jīng)網(wǎng)絡(luò)模型的參數(shù)都在幾十億甚至數(shù)百億,這些參數(shù)共同決定了模型的行為。

在訓(xùn)練過程中,我們通過優(yōu)化算法(如梯度下降法)對(duì)這些參數(shù)進(jìn)行調(diào)整,但最終模型的表現(xiàn)是所有參數(shù)綜合作用的結(jié)果,而非單一參數(shù)所能決定的。

這種復(fù)雜性導(dǎo)致我們難以精確預(yù)測(cè)或控制任何特定的輸出。例如,如果你調(diào)整一個(gè)參數(shù)來讓生成的圖片更有細(xì)節(jié),它可能導(dǎo)致其他部分的圖片出現(xiàn)失真或不自然的效果。

圖片

此外,神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)和訓(xùn)練目標(biāo)通常是為了優(yōu)化整體性能指標(biāo)(如準(zhǔn)確率、損失函數(shù)等),而不是精確到每一個(gè)具體的輸出細(xì)節(jié)。例如,在圖像生成中,模型的目標(biāo)可能是生成總體上看起來真實(shí)的圖片,而不是控制每一個(gè)像素的具體值。

同樣,在文本生成中,模型的目標(biāo)是生成語法正確、語義連貫的句子,而不是控制每個(gè)單詞的具體選擇。例如,一個(gè)訓(xùn)練寫詩的模型,目標(biāo)是寫出富有詩意的句子,而不是精確到每一個(gè)詞的位置和使用頻率。

這也就是說,大模型的輸出通常是基于概率分布的采樣,輸出不可避免地帶有一定程度的不確定性。

OpenAI的SAE簡單介紹

SAE是一種無監(jiān)督學(xué)習(xí)算法,屬于自編碼器家族的一種,主要用來學(xué)習(xí)輸入數(shù)據(jù)的有效且稀疏的低維表示。在傳統(tǒng)的自編碼器中,數(shù)據(jù)被編碼成一個(gè)潛在的低維表示,然后再解碼回原始數(shù)據(jù)空間,目的是使重構(gòu)的數(shù)據(jù)盡可能接近原始輸入。

而SAE在此基礎(chǔ)上添加了一個(gè)關(guān)鍵特性,即對(duì)隱藏層的激活進(jìn)行稀疏性約束,這意味著在隱藏層中只有少量的神經(jīng)元會(huì)被激活(通常接近0),而大部分神經(jīng)元?jiǎng)t保持在非常低的激活水平或者完全不激活。

從OpenAI公布的論文來看,為了深度理解大模型的單個(gè)神經(jīng)元行為,OpenAI使用了一種N2G的方法。

N2G的核心思想是,如果一個(gè)潛在單元在給定的輸入模式下被激活,那么這個(gè)單元可能對(duì)輸入中的某些特定特征或模式特別敏感。

通過識(shí)別這些特征或模式,我們可以為每個(gè)潛在單元構(gòu)建一個(gè)圖表示,圖中的節(jié)點(diǎn)對(duì)應(yīng)于輸入序列中的特定位置,而邊則表示這些位置之間的依賴關(guān)系。這種圖表示可以揭示潛在單元激活的條件,從而提供對(duì)模型行為的直觀理解。

圖片

N2G的構(gòu)建過程開始于選擇一些能夠激活特定潛在單元的序列。對(duì)于每個(gè)序列,N2G尋找最短的后綴,這個(gè)后綴仍然能夠激活該潛在單元。這個(gè)過程是為了確定潛在單元激活的最小必要條件。

接著,N2G會(huì)檢查內(nèi)容是否可以被填充標(biāo)記替換,以插入通配符,從而允許在解釋中包含變化的部分。此外,N2G還會(huì)檢查解釋是否依賴于絕對(duì)位置,即在序列的開始處插入填充標(biāo)記是否會(huì)影響潛在單元的激活。

圖片

N2G還有一個(gè)非常大的技術(shù)優(yōu)勢(shì)就是對(duì)算力需求很低,與需要模擬整個(gè)模型行為的解釋方法相比,N2G只需要分析潛在單元的激活模式即可。

目前,OpenAI通過SAE在GPT-4模型中找到了1600萬個(gè)可解釋的模式和特征,但這還遠(yuǎn)遠(yuǎn)不夠。如果想通過SAE完整捕捉大模型的行為,大概需要10億或數(shù)萬億個(gè)特征才可以。

分享到

nina

相關(guān)推薦