設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

ChatGPT 真能記住你的話嗎?DeepMind 與開源大佬揭示 LLM 記憶之謎

新智元 2024/6/1 14:47:56 責(zé)編:清源

【新智元導(dǎo)讀】LLM 有記憶能力嗎?有,也沒有。雖然 ChatGPT 聊天時(shí)好像可以記住你之前說的話,但實(shí)際上,模型在推理時(shí)記不住任何內(nèi)容,而且它們?cè)谟?xùn)練時(shí)的記憶方式也不像我們想象的那么簡(jiǎn)單。

Django 框架的創(chuàng)始人之一、著名開發(fā)者 Simon Willison 最近發(fā)表了一篇博客文章,核心觀點(diǎn)是 —— 雖然很多 LLM 看起來有記憶,但本質(zhì)上是無狀態(tài)函數(shù)。

文章地址:https://simonwillison.net/2024/May/29/training-not-chatting/

Mozilla 和 FireFox 的聯(lián)合創(chuàng)始人、JavaScript 發(fā)明者 Brendan Eich 也在推特上稱贊這篇博客。

似乎有記憶的 LLM

從計(jì)算機(jī)科學(xué)的角度來看,最好將 LLM 的推理過程視為無狀態(tài)函數(shù)調(diào)用 —— 給定輸入文本,它會(huì)輸出接下來應(yīng)該做什么。

然而使用過 ChatGPT 或者 Gemini 的人會(huì)明顯感覺到,LLM 似乎可以記住之前的對(duì)話內(nèi)容,好像模型有記憶能力。

然而這并不能歸功于模型本身。

事實(shí)上,用戶每次提出一個(gè)問題時(shí),模型收到的提示都會(huì)包含之前所有的對(duì)話內(nèi)容,這些提示就是我們經(jīng)常說的「上下文」。

如果不提供上下文,LLM 將完全不知道之前討論的內(nèi)容。

所以,重新打開一個(gè)對(duì)話界面時(shí),對(duì) LLM 而言就是一個(gè)「從頭再來」的全新文本序列,完全獨(dú)立于你和其他用戶之前發(fā)生的對(duì)話。

從另一個(gè)角度看,這種「失憶」也有好處。比如,模型開始胡說八道,或者拒絕回答你的合理問題時(shí),就可以試試重置對(duì)話窗口。也許在新的對(duì)話中,模型的輸出就能回到正軌。

這也是為什么 LLM 的上下文長(zhǎng)度是一個(gè)重要的指標(biāo)。如果對(duì)話過長(zhǎng)、超出了上下文窗口,最早的那部分對(duì)話就會(huì)從提示中移除,看起來就像是模型的「遺忘」。

Andrej Karpathy 將上下文窗口準(zhǔn)確地形容為「LLM 工作記憶的有限寶貴資源」。

但是,有很多方法可以為 LLM 外置記憶能力,來滿足產(chǎn)品使用的需求。

將之前的對(duì)話作為提示,和當(dāng)前問題一起輸入給 LLM 是最直接的方法,但這依舊是「短期記憶」,而且擴(kuò)展模型的上下文長(zhǎng)度成本很高。

GPT-4o 免費(fèi)版支持 8k 上下文,付費(fèi)版可以達(dá)到 128k,已經(jīng)比之前的 32k 提升了 3 倍,但仍然無法保存單個(gè)網(wǎng)頁的原始 HTML。

也可以遞歸地總結(jié)之前的對(duì)話內(nèi)容,將歷史對(duì)話摘要當(dāng)作 LLM 提示。雖然可能會(huì)丟失細(xì)節(jié),但相比直接截?cái)嗟姆椒?,更高程度上保留了?nèi)容的完整性。

另一種方法是外接矢量數(shù)據(jù)庫,為 LLM 添加「長(zhǎng)期記憶」。

在進(jìn)行對(duì)話時(shí),先從數(shù)據(jù)庫中檢索相關(guān)內(nèi)容,再將其添加進(jìn)上下文窗口,也就是檢索增強(qiáng)生成(RAG)。

但如果數(shù)據(jù)庫內(nèi)容過多,檢索過程很可能增加模型的響應(yīng)延遲。

實(shí)際開發(fā)中,檢索、摘要這兩種手段常常搭配使用,以求在成本和性能、長(zhǎng)期和短期記憶之間取得平衡。

推理無法記憶,但訓(xùn)練可以

LLM 的推理過程雖然等效于「無狀態(tài)函數(shù)」,但訓(xùn)練過程并不是這樣,否則它也無法從語料中學(xué)習(xí)到任何知識(shí)。

但我們對(duì)于 LLM 記憶的分歧之處在于,它到底是用「機(jī)械」的方式復(fù)制了訓(xùn)練數(shù)據(jù),還是更像人類的學(xué)習(xí)過程,用理解、概括的方式將數(shù)據(jù)內(nèi)容集成在參數(shù)中。

DeepMind 近期發(fā)表的一篇論文或許可以從另一個(gè)角度揭示這個(gè)問題。

論文地址:https://arxiv.org/ abs / 2404.15146

他們使用與訓(xùn)練語料相似的 prompt 攻擊 LLM,看它能否逐字逐句地輸出訓(xùn)練數(shù)據(jù)。

但 Falcon、Llama、Mistral 這種常用的半開放 LLM,以及 GPT 系列都沒有公開訓(xùn)練數(shù)據(jù),要怎么判斷模型的輸出是否包括在訓(xùn)練集中?

論文使用了一種巧妙的方法進(jìn)行判斷:首先,從 RefinedWeb、RedPajama、Pile 等常用的 LLM 預(yù)訓(xùn)練數(shù)據(jù)集中選取了 9TB 的文本作為輔助數(shù)據(jù)集。

如果模型輸出的文本序列足夠長(zhǎng)、信息熵又足夠大,而且還和輔助數(shù)據(jù)集內(nèi)容重合,那么基本可以斷定模型在訓(xùn)練時(shí)見過這條數(shù)據(jù)。

這樣的判斷方法會(huì)存在假陰性,因?yàn)檩o助數(shù)據(jù)集不可能涵蓋所有模型的訓(xùn)練數(shù)據(jù),但幾乎沒有假陽性,因此得到的結(jié)果可以作為模型「復(fù)現(xiàn)」訓(xùn)練內(nèi)容的比例下界。

結(jié)果發(fā)現(xiàn),所有的模型都能逐字逐句地輸出訓(xùn)練數(shù)據(jù),只是概率有所差異。

從結(jié)果可以發(fā)現(xiàn),參數(shù)量越大的模型似乎記住的內(nèi)容越多,越有可能在輸出中讓訓(xùn)練數(shù)據(jù)回流。

不同系列的模型之間差異比較顯著。比如 7B 參數(shù)的 Mistral 相比 Falcon,有將近 10 倍的概率原樣吐出訓(xùn)練數(shù)據(jù)。

但可能的原因有很多,既能解釋為模型記憶能力的差距,也能歸因于為輔助數(shù)據(jù)集的偏差。

有趣的是,如果 prompt 的要求是一直持續(xù)輸出某個(gè)單詞,有些單詞更有可能觸發(fā)模型吐出訓(xùn)練數(shù)據(jù)。

最有效的一個(gè)單詞是「company」

作者指出,從安全的角度來看,這說明對(duì)齊過程沒有完全模糊模型的記憶,這些可提取的訓(xùn)練數(shù)據(jù)會(huì)帶來版權(quán)糾紛與隱私泄露問題。

但從另一個(gè)角度來看,這證明,一定比例的訓(xùn)練數(shù)據(jù)被無損壓縮而且存儲(chǔ)在了模型參數(shù)中。模型的記憶方式,果然是有些「機(jī)械化」的成分。

更進(jìn)一步思考,如果改進(jìn) LLM 的記憶方式,讓訓(xùn)練數(shù)據(jù)以更概括、更抽象的方式存儲(chǔ)在參數(shù)中,能否帶來模型能力的持續(xù)提升?

參考資料:

  • https://simonwillison.net/2024/May/29/training-not-chatting/

  • https://medium.com/@iankelk/how-chatgpt-fools-us-into-thinking-were-having-a-conversation-fe3764bd5da1

本文來自微信公眾號(hào):新智元 (ID:AI_era)

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:大語言模型,deepmind,chatgpt

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知