为什么说 LLM 本身没有记忆? 沉默王二 原创 AI 面试 AI Agent 面试题 LLM Memory 无状态模型 对话历史 约 950 字 大约 3 分钟 AI的药,绝不能停 #022 面试官问你:“LLM 有记忆吗?”如果你回答“有啊,ChatGPT 就能记住我上一轮说的话”,面试官听完直摇头。 AI Agent 面试题 LLM Memory 无状态模型 对话历史 WATCH / 抖音视频 在抖音打开 王二讲Agent 每天3分钟,带你吃透Agent。 为什么? 因为那不是“记住”,是每次重新“读”了一遍之前发送的对话历史。 哈喽大家好,我是二哥呀。今天用 3 分钟,带你搞懂一个反直觉的事——LLM 是没有记忆的。 面试官问这道题,考三层:第一,LLM 无状态的本质你清不清楚;第二,参数记忆和上下文记忆的区别你能不能讲明白;第三,LLM 能“记住”之前的对话到底是怎么回事? 好,接下来给你满分回答,照着背就完事了。 先记住一句话:LLM 是无状态的。每一次请求都是独立的,前一次对话和后一次对话之间,模型不保留任何信息。 打个比方。LLM 就像一个读了几万本书的超级学霸,什么都知道,但有一个致命问题——每次和你说话之前,他都会失忆。 那他“知道”的东西从哪来呢?靠两样东西。 第一样,参数记忆(Parametric Memory)。 训练的时候,模型读了整个互联网的文本,几万亿个 token。这些知识被压缩、编码进了模型的权重参数里。训练结束,权重冻结,对话过程中不会再变。 类比一下:你从小学读到大学,十几年学的数学、物理、历史,已经存在脑子里了。当然你可能会忘,但绝不会忘记一加一等于二。 甚至不用翻书,你也知道勾股定理、知道水的沸点是 100 度。 哦,你忘记了?那当我没说。哈哈。 参数记忆就是模型在训练阶段学到的知识,考试的时候直接用,不用现查。 但参数记忆是死的。 模型训练截止到哪天,知识就停在哪天。你问它今天的新闻,不知道。你告诉它你叫什么,下次新开对话,也不记得。 第二样,上下文记忆(Contextual Memory)。 你跟 ChatGPT 聊天,感觉它“记得”你五分钟前说的话。真相是什么? 每次你发一条消息,系统把你们之前所有的聊天记录,一字不漏,全部打包塞给模型,让它从头读一遍。模型读完,生成回复。下一轮,再把新回复也塞进去,整段历史再来一遍。 它不是“记住”了你说的话。它是“又看了一遍”你说的话。 怎么验证?新开一个对话窗口,问它“我刚才说了什么”。它一脸问号,完全不知道。因为新窗口没有任何历史记录,它的“记忆”是零。 (当然了,现在的 Agent 都提供了长期记忆功能。) 所以,LLM 的记忆是工程层面制造的假象:不是模型自己记得,是系统每次帮它复习一遍。 面试官如果追问:“那 ChatGPT 的记忆功能又是怎么回事?” 告诉他——那是在模型之上加的工程方案。系统从对话里提取关键信息,比如“用户是程序员”“偏好用 Python”,存到外部数据库里。下次新开对话,把这些信息注入 system prompt,让模型“看到”。模型本身还是无状态的,只是被喂了更多上下文。记忆不在模型里,在模型外面的持久化文件里。 最后送大家一句口诀——权重装知识,上下文装对话;开了新窗口,一切从头来。 这道题你学废了吗?下一期拆上下文窗口——LLM 一次到底能“看到”多少内容?点赞关注,我是二哥,下期见!
在 GitHub 上编辑此页 上次编辑于: 贡献者: 沉默王二 上一页 Agent 为什么变笨 下一页 让 Agent 拥有记忆