聊聊AI的记忆——短期记忆

0 评论 850 浏览 0 收藏 4 分钟

AI本身并不具备原生记忆能力,我们感受到的对话连贯性,全靠外挂策略实现!这篇文章聚焦AI短期记忆,拆解其核心价值——解决当前会话的流畅衔接,同时详解三种常见实现方式:全量上下文保留完整信息却受限于窗口长度,滑动窗口高效控本却易丢早期关键信息,摘要法平衡完整性与空间却会遗漏细节。

前段时间我接触了一个 AI 玩偶的项目。为了让这个 AI 玩偶更智能,它必须得具备记忆功能,所以我顺便对AI 记忆这一块做了一点研究。

今天咱们先来聊聊短期记忆,至于长期记忆,咱们后面再讲。

为什么 AI 需要记忆?

从大语言模型的原理来说,我们给模型的输入只有提示词(Prompt),有且只能有提示词。所以,大模型本身其实是不具备记忆能力的。

我们现在看到的所谓记忆,往往是咱们通过一定的策略外挂上去的。比如把历史对话存进向量数据库里,这就是一种常见的策略。

针对不同的目的,玩法也不同。比如:

  • 如果只是想让当前的对话聊起来更连贯,用短期记忆一般就能解决问题;
  • 但如果想把历史对话长期保存下来,或者想实现跨会话的记忆调用,那就得动用长期记忆了。

短期记忆的三种常见玩法

一般来说,实现短期记忆主要有这么几种路子:

第一种:全量上下文

这种方式最简单粗暴,就是把所有的历史对话,一股脑全塞进 Prompt 里发给模型。

  • 优点:保留的信息最完整,原汁原味。
  • 缺点:受限于大模型的上下文长度。咱们知道,上下文窗口不是无限的,哪怕是支持百万 Token 的模型也有上限。而且,塞进 Prompt 的记忆越多,大模型的调用成本也就越高。

第二种:滑动窗口

这种方式比较常见。简单说,就是只保留最近的 N 轮对话,更早之前的直接舍弃掉。

  • 优点:实现简单,能很好地控制住成本,提升推理速度。
  • 缺点:因为只留了最近几句,早期的对话就丢了,万一里面包含关键信息,后面就找不回了。

第三种:做摘要

这种方式的原理是,当会话长度超过一定阈值时,就把较早期的那部分对话生成一个简短的摘要存起来,同时保留最近的几轮原话。

  • 优点:既能让信息记录得相对完整,又能节省空间。
  • 缺点:不可避免地丢失一些细节信息。

总结

在实际使用过程中,还是得看你要解决的具体问题和场景来做选择。甚至在一些非常简单的情况下,完全不用记忆功能,也能满足场景的诉求。

本文由人人都是产品经理作者【产品经理伯庸】,微信公众号:【AI文如刀】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!