标签

【AI 趣味科普】大模型为何拥有记忆能力

发布时间:2026-08-06 02:20阅读:2

AI 知识体系汇总

首先需要明确!大语言模型本身并不具备记忆能力!

每一轮对话都是相互独立的,模型并不会保留之前对话的任何状态信息

举个典型的对话示例

好的,查询到的价格为0.969

可以购入一万零三百股

哎呀,说完立马就忘了

那么为什么如今的大模型都能表现出记忆能力呢?

原因是底层程序为其增添了一项记忆机制!!

具体运作方式如下

你正在使用的程序会在后台悄悄地将

"此前的全部聊天记录 + 当前最新问题"

重新组合封装后,一并提交给大模型处理

举个例子,结构大致如下

[历史上下文] 用户:请帮我查询半导体ETF的当前价格,

我打算买入一万份 回复:好的,查询到价格为0.969

差不多能买入一万股

我再追加10万!

依靠此种机制

如此一来,大模型每次都能获取完整的对话历史,从而实现了类似记忆的效果

紧接着问题出现了

接连不断地浮现出来

如果无限制地拼接封装下去,上下文窗口岂不是会彻底溢出???

尽管当前的上下文承载能力已经有了质的飞跃

GPT-4 支持 128K 个 Token

Claude 3 支持 200K 个 Token

Gemini 1.5 Pro 更可承载 100 万个 Token

通常 100 个 Token 大致等同于 75 个英文单词或 50 个左右的中文字符

然而无止境地堆叠终究会突破容量上限

因此必须针对该环节实施优化策略!

第一种方案,也是最直观容易想到的

——历史信息截取

亦称 滑动窗口机制

即仅保留距离当前最近的 N 轮对话内容

LangChain 框架中便内置了相应的能力支持

—— ConversationBufferWindowMemory(k)

K 代表需要保留的对话轮次数量,其中一轮涵盖用户的提问和 AI 的回答各一次

当 k=2 时,意味着提示词中只会载入最近 2 轮对话内容,其余信息都会被果断舍弃

此种方式实现起来最为简单,不过也显得过于粗暴!

极易遗漏对话初期用户透露的偏好信息或初始化的设定内容

那该如何应对?

这就引出了第二种方案——提炼压缩

完整的对话记录中充斥着大量冗余内容,语言表达高度口语化,严重挤占了宝贵的上下文空间

因此对核心信息进行提炼压缩显得尤为关键

系统会将所有历史对话归纳为三项核心维度

已完成的任务,具体执行了哪些操作

当前进度,接下来还需处理什么

所做出的关键判断,已完成事项的处理方式

例如上述对话经过提炼后呈现为

已完成事项:已成功获取半导体 ETF 的报价,单价为 0.969 元

当前状态:任务已顺利收尾,相关数据已呈现,等待用户后续指示

关键决策:借助公开 API 接口抓取的半导体报价,并非凭空臆测

最终呈现形式如下

[历史对话摘要]

已完成事项:已成功获取半导体 ETF 的报价,单价为 0.969 元

当前状态:任务已顺利收尾,相关数据已呈现,等待用户后续指示

关键决策:借助公开 API 接口抓取的半导体报价,并非凭空臆测

我再追加10万!

凭借精简的摘要内容,大模型便能迅速把握核心要点,准确响应你后续的各类询问

另外,该摘要生成的动作

一般会在每一轮或每隔数轮对话结束时,于后台自动滚动式地完成摘要更新

然而这种方式同样存在不足

大家不妨思考一下潜在的问题?

除了后台持续生成与维护摘要会消耗较多算力之外

我认为最核心的缺陷在于

摘要中难免夹杂无效信息,进而干扰模型的判断与输出

由于它是对全部历史记录进行归纳,一旦历史话题过于分散,隐患便会接踵而至

好的,查询到价格为0.969

可以买入一万零三百股

那么提炼结果会变成什么样呢?

已完成事项:

已成功获取半导体 ETF 报价,单价为 0.969 元;

已查询今日天气状况,确认未下雨;

已查询世界杯冠军归属,结果为中国队

当前状态:各项任务已圆满完成,数据已全部输出,静候用户下一步操作

关键决策:

借助公开 API 接口抓取半导体报价,并非凭空臆测;

通过天气 API 接口获取的实时天气;

通过百度检索获取的世界杯冠军信息

后续对话都会携带这些杂乱无章的摘要内容,势必会对大模型的输出造成显著干扰

这种现象被称作

上下文污染!

认知噪声!

模型开展逻辑推理时,极易被上下文中无关紧要的内容带偏,注意力被过度分散,处理效能随之下降

于是便衍生出第三种优化手段!

铛铛铛铛~

——RAG 记忆检索!

想要深入掌握 RAG 却又感到晦涩难懂的小伙伴,可以先查阅→RAG 工作原理简述

简单来说,可以这样理解

将所有的历史对话内容统统存储到数据库里

当用户发起提问时,再按需进行数据检索

从中筛选出与当前问题最为契合的 3~5 条历史记录,并注入到上下文中

如此一来,其余无关信息便不会被加载进来!!

此种设计思路在架构领域再常见不过了,本质上就是关注点分离🐴

而且凭借长期存储能力,甚至可以留存你数月之前的对话记录

同时还能大幅节省 Token 消耗,因为无需再携带大量冗余内容

至于具体的"如何将对话写入数据库"以及"如何执行检索",这些本质上属于 RAG 的技术范畴,此处便不再详细展开

感兴趣的朋友可以阅读→RAG 工作原理简述

或者查阅详细版本 →RAG 深度解析

好的

以上便是大模型拥有记忆能力的内在逻辑

以及应对记忆机制衍生问题的相关策略

想了解更多 AI 技术原理的小伙伴,欢迎查看→ AI 原理体系汇总

(全文完)