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