乐于分享
好东西不私藏

突破 AI 的“金鱼记忆”:一次讲透长上下文和 RAG

突破 AI 的“金鱼记忆”:一次讲透长上下文和 RAG

你有没有遇到过这种情况:

把一份很长的 PDF 扔给 AI,满怀期待地问它一个细节问题,结果它要么答非所问,要么一本正经地说“文中未提到”,甚至直接开始胡编。

再离谱一点,你和 AI 连续聊了几十轮,前面明明已经说过的人名、设定、结论,它后面像失忆了一样,全忘了。

很多人会把这个问题总结成一句话:AI 的记忆力不行,像金鱼。

这话不算错,但也不够准确。

AI 不是完全没记忆,它的问题更像是:它的工作记忆有限,而且对长信息的利用效率并没有我们想象得那么高。

所以,真正要理解的不是“AI 为什么笨”,而是:

  • 为什么长文档一进来,AI 就容易出错?
  • 为什么有些模型号称能读几十万、上百万 token,还是会漏信息?
  • 为什么现在很多“和你的 PDF 对话”“问你的笔记库”类工具,开始大量使用 RAG?

把这几个问题想明白,你就会发现,解决 AI “金鱼记忆”的主流思路,其实只有两条:

  • 一条是把它的“工作记忆”做大,也就是长上下文
  • 另一条是别指望它全都记住,而是让它学会查资料,也就是 RAG

今天这篇,我们就把这两个概念一次说透。

先说问题本质:AI 为什么一遇到长内容就开始犯糊涂?

先用一个最直观的例子。

假设你上传了一本 50 万字的书,然后问 AI:

“第 17 章里,主角第一次提到父亲职业的那一段,具体怎么写的?”

你以为这是阅读理解。

可对 AI 来说,这可能已经是一次超负荷工作了。

原因在于,大模型不是把整本书永久装进脑子里,再随时调取。它更像是在一个有限大小的工作台上处理眼前信息。这个工作台,就是常说的 上下文窗口

你可以把上下文窗口理解成 AI 当前这一轮能“看见并使用”的信息范围。官方文档一般会把它形容成一种工作记忆。Anthropic 的 Claude 文档明确把 context window 解释为模型生成回答时能够参考的全部文本,并提醒“上下文更多不自动等于更好”,因为随着 token 变多,准确率和召回会下降,这种现象甚至被称为 context rot。Google 的 Gemini 文档也用“短期记忆”来解释 context window,并强调它之所以重要,是因为模型每次回答都只能基于这部分上下文来工作。

所以问题就来了:

当你的资料太长、对话太长、附件太多时,AI 不一定是真的“读不进去”,更常见的是它虽然把东西塞进去了,但未必能稳定、准确地把关键细节再找出来。

这就是长文本场景里最容易被误解的一点:

能放进去,不等于能用得好。

解决方案 A:长上下文,本质上是在给 AI 扩大“工作台”

第一条思路很直接:既然上下文窗口有限,那就把窗口做大。

这就是所谓的 长上下文技术

如果把传统模型理解成只能在一张小书桌上摊开几页纸,那长上下文模型就像是换成了一张大会议桌,允许你一次性铺开更多资料。

过去很多模型只能处理几千到几万 token。后来逐步发展到十几万、几十万。现在一些模型已经把上下文窗口推得非常大。

比如:

  • Claude 的官方文档目前写得很清楚,一些 Claude 模型提供 200k上下文窗口,部分新模型甚至支持 1M token
  • Google Gemini 的官方长上下文文档则明确写到,很多 Gemini 模型支持 1M甚至更高的上下文能力

这意味着什么?

意味着以前你得拆着喂、分段问、不断做摘要的东西,现在可以更直接地一次性扔进去处理。

例如:

  • 一整本长文档的摘要
  • 多份 PDF 联合问答
  • 很长的会议记录分析
  • 长代码仓库的整体理解
  • 长视频、长音频、多模态资料的统一处理

听起来很美,对吧?

但这里有一个特别重要的误区:长上下文不是“无限记忆”,更不是“你扔得越多,它答得越准”。

长上下文为什么还不够?

很多人一听“100 万 token”,下意识就会觉得:那不就解决了吗?

其实远没有这么简单。

长上下文至少有三个现实问题。

1. 成本更高

上下文越长,输入给模型处理的 token 就越多。无论是调用 API,还是你在产品里使用“读大文件”“多文件问答”类功能,本质上都在消耗更多计算。

简单说,资料越多,模型越贵。

而且你不是只付一次钱。很多时候,只要你每问一个问题,都要重新把那大堆上下文重新带进去,成本会迅速累积。

2. 速度更慢

这个很好理解。

你让一个人看 3 页材料后回答问题,和让他看 300 页材料后回答问题,反应速度当然不一样。

Google 的 Gemini 文档也明确提到,长上下文通常会带来更高延迟。也就是说,资料越长,响应越慢,这几乎是必然的。

3. 中间的信息,最容易丢

这点最关键。

很多人觉得只要模型“看到了”,就能稳定利用。现实不是这样。

在那篇很有名的论文 Lost in the Middle里,研究者发现:当关键信息出现在输入内容的开头或结尾时,模型表现通常更好;而当关键内容埋在很长上下文的中间位置时,性能会显著下降。换句话说,模型并不是平均地理解整段长内容,它对中间部分经常“不够上心”。

这就是为什么很多人会有这种体验:

前面几页和最后几页的信息,AI 好像挺容易抓住;
但真正藏在中间的那句关键定义、那段解释、那个数字,反而最容易被漏掉。

所以,长上下文更像是:

你给 AI 一个更大的工作台,但它未必会在这张更大的桌子上高效整理资料。

它能解决一部分问题,但不是万能药。

解决方案 B:RAG,本质上是让 AI 学会“开卷考试”

于是,业界主流开始走另一条路。

既然“全塞进去再让模型自己找”不够稳,那不如换个思路:

别让 AI 硬记所有资料,而是让它需要回答时,先去你的资料库里把相关内容找出来,再根据找到的片段作答。

这就是 RAG,全称是 Retrieval-Augmented Generation,中文一般翻译成“检索增强生成”。

这个名字第一次听上去有点技术黑话,但其实很好懂。

你完全可以把它理解成:

让 AI 从闭卷考试,变成开卷考试。

不是让它把整本书都背下来,而是让它先翻书,再回答。

这个思路为什么有效?

因为很多问答场景里,真正需要的不是“记住一切”,而是“在需要时准确找到最相关的那几段”。

而这件事,检索系统往往比单纯把海量内容塞进上下文里更划算、更稳定。

RAG 的工作流,其实一点都不神秘

如果去掉术语,RAG 的流程其实就三步。

第一步:你提一个问题

比如你问:

“去年 Q3 营收变化的原因,报告里是怎么解释的?”

第二步:系统先去资料库里找相关片段

这一步不是让模型直接生成答案,而是先做检索。

系统会到你的文档库、笔记库、知识库、PDF 集合里,找出和 “Q3”“营收”“变化原因” 最相关的几段内容。

第三步:把“问题 + 找到的片段”一起交给模型回答

也就是说,最后送进模型的,不再是整份 200 页报告,而是:

  • 你的原始问题
  • 系统检索到的 3 到 5 段高相关内容

然后模型基于这些内容生成答案。

你看,这就变成了:

不是让模型在整片海里捞针,而是先帮它把针附近那一小撮海水舀上来。

这就是 RAG 最核心的价值。

为什么说 RAG 才是更主流、更实用的解法?

如果你只从“理论上能不能装进去”看,长上下文当然很强。

但如果从大多数真实应用场景看,RAG 往往更实用。

1. 答案更容易溯源

很多 RAG 产品会把引用片段一起展示给你。

所以你不只是拿到一个答案,还能看到:

它依据的是哪一段原文、哪一页文档、哪条笔记。

这件事非常重要。

因为真正让人信任 AI 的,不是它说得像不像,而是你能不能回头核对。

2. 知识可以实时更新

如果你只靠模型训练时学到的知识,它很容易过时。

但 RAG 不一样。你今天把最新文档、最新纪要、最新产品说明扔进知识库,明天它就可以基于这些新资料回答问题。

也就是说,RAG 让 AI 的知识不再完全依赖“训练截止日期”,而能更多依赖你手头的最新材料。

3. 成本通常更低

相比每次都把整本书、整堆 PDF、整份知识库全部塞进上下文,RAG 只需要把最相关的少量片段送进去。

这就意味着:

  • token 消耗更少
  • 响应速度通常更快
  • 大规模应用更现实

这也是为什么现在企业知识库、文档问答、客服问答、内部搜索助手,大量都在用 RAG。

你每天用到的很多 AI 工具,背后其实就是 RAG

很多人一听 RAG,觉得那是开发者才关心的技术。

其实你可能早就在用了,只是没意识到。

场景一:问自己的笔记库

比如 Notion AI、一些 Obsidian 插件、各类本地知识库工具,本质上就是:

  • 你有一堆笔记
  • 你提一个问题
  • 系统先找到相关笔记片段
  • 再交给模型回答

说白了,就是让 AI 帮你查自己的第二大脑。

场景二:和 PDF 对话

现在市面上大量“上传 PDF 然后提问”的工具,底层逻辑也大同小异。

它们不是让模型每次都老老实实重新通读整份 PDF,而通常会先把文档切片、建索引,再根据你的问题检索相关段落,最后回答。

你表面上看是在“和一整份 PDF 对话”,实际上更像是在“和 PDF 里被检索出来的关键片段对话”。

场景三:企业内部知识助手

公司里的制度文档、FAQ、产品手册、销售资料、历史会议纪要,体量通常很大,而且更新频繁。

这种场景几乎天然适合 RAG。

因为你真正需要的不是“让模型背下来”,而是“当员工提问时,系统能从最新文档中找准答案”。

那到底该怎么选:长上下文,还是 RAG?

如果只用一句话回答:

长上下文更像是把资料一口气摊开,RAG 更像是先找重点再回答。

两者不是完全对立,而是适合不同场景。

更适合长上下文的情况

  • 你真的需要模型整体读完一整份长材料
  • 材料数量不多,但每份很长
  • 你更关心全局理解、摘要、整体风格、整体结构
  • 你不想先搭一套检索系统

更适合 RAG 的情况

  • 你有持续增长的资料库
  • 你会反复问很多细节问题
  • 你需要引用原文、保留出处
  • 你希望知识能随文档更新
  • 你在意成本和响应速度

现实里,很多成熟产品不是二选一,而是混合使用:

  • 先靠检索缩小范围
  • 再把检索结果交给长上下文模型整合回答

这其实才是现在很多高质量 AI 产品的常见思路。

普通用户怎么把 RAG 用得更好?

知道原理是一回事,真正用好又是另一回事。

如果你平时会用“问笔记”“问文档”“问知识库”类工具,我建议重点注意下面两点。

1. 文档尽量原子化

这点特别重要。

很多人会把所有资料一股脑塞进一个超级大文档里,觉得这样更完整。结果恰恰相反,检索效果通常会变差。

因为系统在检索时,更喜欢处理“主题明确、边界清楚”的信息块。

所以与其把一堆东西糊成一团,不如拆成多个小文档:

  • 一份文档讲一个主题
  • 一条笔记只解决一个问题
  • 一个页面聚焦一个知识点

这样检索系统更容易知道:你这次问的问题,究竟该命中哪一块内容。

你可以把它理解成:

不是让 AI 去一个乱糟糟的大仓库里翻箱倒柜,而是把仓库先按类别分好货架。

2. 提问尽量关键词化

很多用户问知识库时,喜欢问得特别大、特别虚。

比如:

“告诉我这份报告讲了什么。”

这种问题不是不能答,但往往不够精准。

如果你改成:

  • “报告里关于 Q3 营收变化的部分怎么说?”
  • “这份手册里关于退款规则的具体条件是什么?”
  • “会议纪要里谁负责下周上线这件事?”

效果通常会明显更好。

因为检索系统特别依赖“你到底要找什么”这个信号。你给的关键词越清楚,它越容易先帮你缩小范围。

一句话总结就是:

RAG 不是你把资料扔进去就结束了,它同样依赖好的文档组织和好的提问方式。

最后总结:别再要求 AI “全记住”,而要学会让它“会查、会找、会引用”

讲到这里,其实整件事已经很清楚了。

AI 在长文档、长对话、长资料库场景里,真正的问题不只是“记不住”,而是:

  • 上下文窗口总是有限的
  • 窗口变大不等于利用效率同步变强
  • 长内容里,关键信息尤其容易在中间被埋没

长上下文技术很重要,它像是在不断给 AI 扩大工作台。

但 RAG 更像是在教 AI 一种更现实的能力:别死记硬背,先找资料,再回答。

这也是为什么今天越来越多好用的 AI 产品,本质上都在做同一件事:

把模型的生成能力,和检索系统的找资料能力,组合起来。

如果你理解了这一点,你就不会再把知识库类 AI 工具只当成“会聊天的机器人”。

你会开始更聪明地管理自己的资料:

  • 怎么拆文档
  • 怎么建笔记
  • 怎么组织知识库
  • 怎么提问题

到最后你会发现,真正厉害的不是 AI 全都记住了。

而是你终于知道,什么时候该让它记,什么时候该让它查。