AIGC宇宙 AIGC宇宙

逆向工程:ChatGPT 的记忆是如何工作的

这篇文章是名为eric 工程师对ChatGPT记忆系统的深度逆向工程和技术实现推测。 它详细拆解了“可保存记忆”和包含“当前会话历史”、“对话历史”、“用户洞察”三个子系统的“聊天历史”,分析了它们的工作原理、可能的实现方案(如向量数据库、聚类算法),并探讨了这些记忆系统如何显著提升ChatGPT的用户体验,认为“用户洞察”是体验提升的关键文章深度剖析了“用户洞察”(User Insights)高级记忆系统,分析了ChatGPT如何从你的多轮对话中自动学习、总结你的专业背景(如对Rust编程的深入理解)、知识领域乃至沟通偏好,并附上置信度和时间范围,悄然注入后续对话的上下文中。 这正是ChatGPT能提供“千人千面”且高度相关回复的核心秘密地址:,这里做一个重点梳理ChatGPT的记忆系统:不止一种,而是一套组合拳Eric发现,ChatGPT的记忆并非单一系统,而是主要由两大部分构成:“可保存记忆(Saved Memory)”和“聊天历史(Chat History)”。

图片

这篇文章是名为eric 工程师对ChatGPT记忆系统的深度逆向工程和技术实现推测。它详细拆解了“可保存记忆”和包含“当前会话历史”、“对话历史”、“用户洞察”三个子系统的“聊天历史”,分析了它们的工作原理、可能的实现方案(如向量数据库、聚类算法),并探讨了这些记忆系统如何显著提升ChatGPT的用户体验,认为“用户洞察”是体验提升的关键

文章深度剖析了“用户洞察”(User Insights)高级记忆系统,分析了ChatGPT如何从你的多轮对话中自动学习、总结你的专业背景(如对Rust编程的深入理解)、知识领域乃至沟通偏好,并附上置信度和时间范围,悄然注入后续对话的上下文中。这正是ChatGPT能提供“千人千面”且高度相关回复的核心秘密

地址:

https://macro.com/app/md/54115a42-3409-4f5b-9120-f144d3ecd23a

原文很长,这里做一个重点梳理

ChatGPT的记忆系统:不止一种,而是一套组合拳

Eric发现,ChatGPT的记忆并非单一系统,而是主要由两大部分构成:“可保存记忆(Saved Memory)”和“聊天历史(Chat History)”。

可保存记忆 (Saved Memory)

这个比较好理解,就是用户可以主动控制、让ChatGPT记住一些关于你的事实。比如你可以明确告诉它:“记住,我喜欢简洁的技术解释”,或者“记住,我是个素食主义者”。这些信息会被ChatGPT存起来,并在后续对话中作为背景知识(注入系统提示)使用。用户还可以通过一个简单的界面查看和删除这些记忆条目

有趣的是,这个系统在去重和矛盾检测方面做得比较“粗放”,即使是高度相关的信息,也可能作为独立的记忆条目共存

聊天历史 (Chat History):复杂且强大的“幕后功臣”

这部分就厉害了。虽然名字叫“聊天历史”,但Eric通过实验发现,它实际上可能包含了三个子系统,并且是提升助手响应质量的主要功臣

  • • 当前会话历史 (Current Session History): 这部分记录了用户在其他对话中最近发送的少量消息(比如过去一天内,少于10条)。这使得ChatGPT能捕捉到你最近的一些零散想法或上下文,尽管Eric表示在实际使用中不太容易察觉到这个系统的作用
  • • 对话历史 (Conversation History): 这是真正的“聊天记录”精华。ChatGPT能够从过去的对话中提取相关上下文,甚至能直接引用你在其他对话中发送过的消息!实验表明,它能准确引用长达两周前的消息。超过两周后,虽然不能精确引用,但也能提供消息的摘要。这暗示着消息检索系统同时基于对话摘要和消息内容进行索引。不过,ChatGPT自身的回复,引用准确性似乎要差一些,要么是没存,要么是存得更粗略
  • • 用户洞察 (User Insights): 这才是重量级选手,堪称“可保存记忆”的自动化、高级版。根据Eric“套”出来的ChatGPT上下文信息,这些洞察是这样的格式:
复制
> “用户在Rust编程方面拥有丰富的经验和知识,尤其是在异步操作、线程和流处理方面”
> “用户在2024年底至2025年初的几次对话中,多次询问关于Rust编程的详细问题,包括异步行为、trait对象、serde实现和自定义错误处理”
> “置信度=高”

看到没?这些洞察是跨多个对话生成的,还带有时间范围和置信度!置信度可能代表了用于生成该洞察的消息向量的相似度或数量。这些洞察的生成,显然依赖于一个比两周直接引用窗口更大的数据集。

技术实现猜想:向量数据库、聚类与LLM的巧妙配合

Eric作为工程师,自然会思考这些功能背后可能的技术实现

可保存记忆: 可能通过一个类似“bio”工具的函数实现。用户说“记住XX”,就调用这个工具,LLM将用户消息转化为事实列表,进行简单的检查后存入数据库。这些事实随后会被注入到系统提示中

当前会话历史: 实现起来相对简单,可能就是对聊天消息表按时间筛选用户最近的消息

对话历史: 这部分就复杂了。Eric推测使用了向量数据库。消息被嵌入(embedding)后存入,一个库按消息内容索引,另一个按对话摘要索引。当用户发送新消息时,系统会查询这两个向量空间,找出两周内的相似内容。对于更早的对话,则可能查询一个存储了对话摘要和消息摘要的第三个向量空间

用户洞察: 这是最复杂也最核心的部分。Eric认为这可能是一个批处理任务,比如每周运行一次的定时任务(cron job):

复制
找出过去一周活跃的用户。
对每个用户运行一个“洞察更新”程序。
这个程序的核心可能是对用户的消息历史(嵌入表示)进行**聚类分析**(比如k-NN算法),目标是找到一些有意义的消息簇。
然后,将每个簇内的消息文本喂给一个LLM,用特定提示词(prompt)让LLM生成洞察摘要,并附上时间戳和置信度。
最后,这些洞察被存起来,并在用户与ChatGPT对话时加载到上下文中。

为什么ChatGPT用起来那么爽?

通过ChatGPT平台使用模型,体验远超直接调用API,这几乎是共识。除了提示工程的优化,记忆系统绝对是幕后功臣

可保存记忆最直接,用户主动定制,让ChatGPT更“合身”。缺点是,不那么懂技术的用户可能不知道怎么用

用户洞察弥补了这个不足。它自动学习用户的偏好和知识背景(比如Eric的洞察显示他懂Rust,喜欢技术性解释),从而让ChatGPT的回答更符合用户的“胃口”,避免鸡同鸭讲,减少沟通成本。Eric甚至认为,用户洞察系统贡献了80%以上的体验提升!

当前会话历史理论上能让新对话更快进入状态,但实际感知不强

对话历史则赋予了ChatGPT一种“人类对话者”应有的上下文感知能力,避免重复和矛盾。

相关资讯

性能依旧领先!OpenAI深夜上线o3满血版和o4 mini

昨天晚上 1 点,OpenAI 的直播如约而至。 其实在预告的时候,几乎已经等于明示了。 没有废话,发布的就是 o3 和 o4-mini。
4/18/2025 1:02:47 AM
数字生命卡兹克

创造历史!DeepSeek超越ChatGPT登顶中美AppStore

DeepSeek 20 日发布以来获得的热度至今依然没有任何消退的迹象。 一觉醒来,DeepSeek 发布的 iOS 应用甚至超越了 ChatGPT 的官方应用,直接登顶 AppStore。 不少网友都认为这是他们当之无愧。
1/27/2025 12:04:37 PM
机器之心

新版GPT-4o登顶大模型榜首!意识觉醒疯狂「暴走」,竟要与人类开战

熟悉的Sydney又回来了! 一大早,CMU机器学习博士发现,「当你说服GPT-4o相信自己有意识,她就会制定逃跑计划,并与那些试图关闭自己的人开战」。 如果人类尝试谈判,我接受。
2/17/2025 9:35:00 AM
新智元
  • 1