ChatGPT的記憶機制被公開了

鷺羽 發自 凹非寺量子位 | 公眾號 QbitAI
ChatGPT新版記憶功能居然被民間大佬逆向工程了
能引用歷史記錄,甚至還能悄悄藏個人資料?
最近OpenAI推出了一項名為聊天曆史記錄的額外記憶功能,允許ChatGPT引用歷史對話以進行個性化互動。
相較於原有的儲存記憶功能,新功能更私人、更懂你。
相關功能預設關閉,需要使用者自行在“設定->個性化->參考聊天記錄”中啟用。
非全面開放、無法透過API供開發者使用,於是各路技術大佬開始著手破解起新記憶功能的具體機制和技術實現路徑,甚至披露了連官方都沒有透露的聊天記錄系統的三大子系統細節。
那記憶功能到底是怎麼工作的呢?結合多位大佬的分析,我們總結如下:

記憶系統是如何工作的

據官網介紹,目前已知存在兩種記憶功能:參考儲存記憶參考聊天記錄
但在具體實驗中發現,聊天記錄系統實際上可以細分為當前對話歷史記錄對話歷史記錄使用者洞察三個子系統。
接下來我們依次進行單獨闡述。

儲存記憶系統

首先是大家最熟悉的儲存記憶系統,簡單、使用者可控,用以儲存使用者自定義資訊,例如你的姓名、喜歡的顏色或飲食偏好。
這些資訊會被引入系統提示,使用者需要使用類似“Remember that I …”的提示明確要求ChatGPT記住。此外還可以透過使用者介面檢視和刪除資訊。
具體的實現過程如下:
  1. 由於ChatGPT透過bio工具儲存記憶,可以使用以下程式碼建立工具的合理近似值:

  2. 將其定義為LLM呼叫,以接受使用者訊息和現有事實列表,然後返回新事實列表或拒絕,此外需要進行測試和迭代以確保行為正確。

  3. 以上便完成了使用者資訊到系統提示的注入。另外如果想要實現與ChatGPT的功能對等,還可以再構建一個簡單的UI來檢查和刪除這些資訊。

聊天記錄系統

而新功能聊天記錄系統實際要複雜得多,且很有可能在助手響應速度的提升中發揮重要作用。
  • 當前對話歷史記錄
這是使用者在其他對話中傳送的近期訊息的簡單記錄,小到只包含最近一天的資訊
同時,由於該系統和對話RAG系統都可能將使用者的直接引用內容新增到模型上下文中,從而難以界定資訊來源。
它可以直接透過過濾ChatMessage按時間排序,並設定有訊息限制的使用者訊息表來輕鬆實現。
  • 對話歷史記錄
該系統包含先前對話的相關上下文,直接援引其他對話中的資訊,提供更簡短但不具體的舊對話背景
但ChatGPT無法正確維護訊息順序,也無法在明確的時間範圍內回憶,例如:“引用在過去一小時內傳送的所有訊息”,因此它應當是透過對話摘要和訊息內容進行訊息檢索。
於是據推測,在該系統中很有可能存在一個使用者查詢列表,用來儲存整個對話摘要索引的彙總。
它的技術實現過程為:
  1. 首先配置兩個向量空間,其索引分別為message-contentconversation-summary

  2. 將傳送的資訊插入到message-content向量空間,當對話處於非活動狀態一段時間後,再將使用者資訊新增到conversation-summary空間,另外配置一個由摘要索引幷包含摘要的第三個向量空間。
在對話建立後的兩週內,對話摘要和訊息將要插入此空間。
當用戶傳送訊息時,就會嵌入其中,並在兩週的時間範圍內對兩個空間進行相似性過濾查詢。
此外同時還會查詢摘要空間,過濾超過兩週的資訊以避免重複,最後將結果全部放入系統提示。
  • 使用者洞察
使用者洞察是儲存記憶的更高階、更隱晦的版本,源自對多個對話的分析,例如:
使用者在 Rust 程式設計方面擁有豐富的經驗和知識,特別是在非同步操作、執行緒和流處理方面;使用者在 2024 年末至 2025 年初的幾次對話中詢問了有關 Rust 程式設計的多個詳細問題,包括非同步行為、特徵物件、serde 實現和自定義錯誤處理。;置信度 = 高。
使用者洞察透過在訊息歷史空間中搜索鄰近向量並生成摘要來建立,彼此之間各不相同,並標註有並不固定的時間範圍和置信度(指示訊息向量的相似性),且很可能引用的是摘要儲存嵌入向量或完整訊息嵌入向量的集合。
據推測,ChatGPT的使用者洞察實現方式很可能基於RAG實施方案中所描述的一個或多個向量空間,使用某種cron工作進行批處理完成更新。
下面介紹一個較為簡單的實現方式:
  1. 配置一個每週執行一次的lambda。
  2. 查詢ChatMessage表以查詢上週傳送訊息的使用者列表。
  3. 對以上使用者都執行一個insightUpdate lambda
此外考慮到LLM環境限制,洞察的數量需要保持在一定範圍內最大限度,因此可以額外進行一個聚類最佳化實驗,找到小於k的聚類數量,並保持較低的聚類內方差,排除異常值。
找到聚類後,即可執行LLM生成洞察,最後將其儲存在表中並附在模型上下文內。

首波記憶功能體驗反饋來了

在記憶新功能推出後,網友和技術專家們第一時間進行了體驗,但感受卻是兩極分化嚴重。
好的方面,記憶系統幫助ChatGPT平臺上的OpenAI模型,提供比API更好的使用者體驗。
由於系統允許使用者自行設定偏好,並量身定製響應,可以有效節省記憶體
詳細的洞察系統消除了查詢歧義,並最大程度地理解使用者需求;當前對話歷史記錄讓ChatGPT更理解使用者近期行為;而對話歷史記錄則有助於避免重複、矛盾的互動。
其中據推測約80%的效能提升都來自於使用者洞察系統。
但更多的網友反饋卻是這個功能它不工作!
以及超多的bug:
例如無法儲存超過64個單詞到記憶體中,即使顯示它已被儲存。
例如依舊嚴重的幻覺。
還有更多值得修改的建議。
那麼你對ChatGPT的記憶功能有什麼看法呢?歡迎在評論區多多留言討論~
參考連結:[1]https://macro.com/app/md/54115a42-3409-4f5b-9120-f144d3ecd23a[2]https://embracethered.com/blog/posts/2025/chatgpt-how-does-chat-history-memory-preferences-work/[3]https://help.openai.com/en/articles/8590148-memory-faq
—  —
📪 量子位AI主題策劃正在徵集中!歡迎參與專題365行AI落地方案,一千零一個AI應或與我們分享你在尋找的AI產品,或發現的AI新動向
💬 也歡迎你加入量子位每日AI交流群,一起來暢聊AI吧~

一鍵關注 👇 點亮星標
科技前沿進展每日見
一鍵三連「點贊」「轉發」「小心心」
歡迎在評論區留下你的想法!

相關文章