OpenAI開源GPT-4 SAE,提供1600萬個解釋模式
6月7日凌晨,OpenAI在官網開源了GPT-4的稀疏自動編碼器(Sparse AutoEncoder,簡稱“SAE”)。
雖然現在大模型的功能越來越強,能生成文本、圖片、視頻、音頻等內容,但是你無法控制神經網絡生成的內容,例如,你問ChatGPT多個相同的問題,可能每一次回答的內容都不相同。
就像我們睡覺做夢一樣,無論你怎么集中注意力還是很難精準控制腦神經形成的夢境。這就會出現很多無法控制的情況,例如,大模型生成的內容帶有歧視性、錯誤、幻覺等。
SAE的主要作用是在訓練過程中引入稀疏性約束,幫助大模型學習到數據的更有意義、更具解釋性的特征表示,使其輸出的內容更精準、安全。所以,SAE對于開發前沿、超強功能的大模型非常重要。
早在2023年10月,著名大模型平臺Anthropic發布了一篇《朝向單義性:通過詞典學習分解語言模型》的論文,深度解釋了神經網絡行為的方法。
Anthropic在一個小型的Transformer架構模型進行了實驗,將512個神經單元分解成4000多個特征,分別代表 DNA 序列、法律語言、HTTP 請求、營養說明等。
研究發現,單個特征的行為比神經元行為更容易解釋、可控,同時每個特征在不同的AI模型中基本上都是通用的。
而本次OpenAI不僅公布了論文還開源了代碼,同時提供了一個在線體驗地址,與全球開發者分享他們的研究成果,同時讓用戶深度了解神經網絡生成的內容流程,以便更精準、安全地控制大模型輸出。
開源地址: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
?
什么控制神經網絡行為很難
?
無論你用多么精準的提示詞,都無法讓DALL·E 3、Stable Difusion生成100%相吻合的圖片。這是因為,神經網絡的輸出很大程度上依賴于它們所接受的訓練數據。
神經網絡通過大量的樣本數據學習到復雜的模式和特征。但是,訓練數據本身可能包含噪聲、偏差或者數據標準不準確等。這些因素會直接影響神經網絡對輸入數據的響應。
例如,讓神經網絡生成一張貓的圖片。如果訓練數據中有一些不清晰或錯誤標記的圖片,例如狗或其他動物的照片,模型可能會在生成貓的圖片時出現混亂,生成出一些看起來不像貓的圖像。同理,文本類的ChatGPT等產品也會出現一本正經胡說八道的情況。
神經網絡的內部結構和參數設置極其復雜。隨著技術的迭代,目前隨便一個神經網絡模型的參數都在幾十億甚至數百億,這些參數共同決定了模型的行為。
在訓練過程中,我們通過優化算法(如梯度下降法)對這些參數進行調整,但最終模型的表現是所有參數綜合作用的結果,而非單一參數所能決定的。
這種復雜性導致我們難以精確預測或控制任何特定的輸出。例如,如果你調整一個參數來讓生成的圖片更有細節,它可能導致其他部分的圖片出現失真或不自然的效果。
此外,神經網絡的設計和訓練目標通常是為了優化整體性能指標(如準確率、損失函數等),而不是精確到每一個具體的輸出細節。例如,在圖像生成中,模型的目標可能是生成總體上看起來真實的圖片,而不是控制每一個像素的具體值。
同樣,在文本生成中,模型的目標是生成語法正確、語義連貫的句子,而不是控制每個單詞的具體選擇。例如,一個訓練寫詩的模型,目標是寫出富有詩意的句子,而不是精確到每一個詞的位置和使用頻率。
這也就是說,大模型的輸出通常是基于概率分布的采樣,輸出不可避免地帶有一定程度的不確定性。
OpenAI的SAE簡單介紹
?
SAE是一種無監督學習算法,屬于自編碼器家族的一種,主要用來學習輸入數據的有效且稀疏的低維表示。在傳統的自編碼器中,數據被編碼成一個潛在的低維表示,然后再解碼回原始數據空間,目的是使重構的數據盡可能接近原始輸入。
而SAE在此基礎上添加了一個關鍵特性,即對隱藏層的激活進行稀疏性約束,這意味著在隱藏層中只有少量的神經元會被激活(通常接近0),而大部分神經元則保持在非常低的激活水平或者完全不激活。
從OpenAI公布的論文來看,為了深度理解大模型的單個神經元行為,OpenAI使用了一種N2G的方法。
N2G的核心思想是,如果一個潛在單元在給定的輸入模式下被激活,那么這個單元可能對輸入中的某些特定特征或模式特別敏感。
通過識別這些特征或模式,我們可以為每個潛在單元構建一個圖表示,圖中的節點對應于輸入序列中的特定位置,而邊則表示這些位置之間的依賴關系。這種圖表示可以揭示潛在單元激活的條件,從而提供對模型行為的直觀理解。
N2G的構建過程開始于選擇一些能夠激活特定潛在單元的序列。對于每個序列,N2G尋找最短的后綴,這個后綴仍然能夠激活該潛在單元。這個過程是為了確定潛在單元激活的最小必要條件。
接著,N2G會檢查內容是否可以被填充標記替換,以插入通配符,從而允許在解釋中包含變化的部分。此外,N2G還會檢查解釋是否依賴于絕對位置,即在序列的開始處插入填充標記是否會影響潛在單元的激活。
N2G還有一個非常大的技術優勢就是對算力需求很低,與需要模擬整個模型行為的解釋方法相比,N2G只需要分析潛在單元的激活模式即可。
目前,OpenAI通過SAE在GPT-4模型中找到了1600萬個可解釋的模式和特征,但這還遠遠不夠。如果想通過SAE完整捕捉大模型的行為,大概需要10億或數萬億個特征才可以。
本文轉自 AIGC開放社區 ,作者:AIGC開放社區
