无限上下文来了,RAG却没死:时效性、可追溯性与成本的三重考验

无限上下文解决的是“装得下”的问题,RAG真正的价值在于知识的时效性、可追溯性和成本控制。检索是最脆弱的一环,但长上下文也有Lost in the Middle问题——模型对中间内容的关注会衰减。未来可能不是二选一,而是分层检索加长上下文精读的协作。

讨论“RAG会不会死”之前,得先问清楚一件事:RAG到底在解决什么问题。

很多人以为RAG的核心价值是扩展上下文——模型只能看4k token,文档有几百万token,所以用RAG检索相关片段塞进去。这个理解没错,但它描述的是RAG最浅、最容易被替代的那一层价值。

长上下文确实在进步。从4k到200万token,技术突破令人兴奋。但“支持多长”和“能有效利用多长”是两件完全不同的事。Lost in the Middle论文的结论让人不太舒服:模型对上下文头部和尾部的信息利用效率,显著高于中间部分。上下文越长,中间那些内容被有效关注到的概率越低。

不是模型看不到,是模型没在认真看。

Transformer的注意力机制理论上可以关注序列里的任意位置,但随着序列长度增加,计算复杂度是O(n²)的。工程上有各种近似手段处理,但近似就意味着信息损失。你把100万token塞进上下文,模型在每一步生成时,对这100万token的“关注”是不均匀的,是有衰减的,是会遗漏的。

有团队做过对比实验:文档数量少的时候,长上下文方式表现不错;文档一多,检索增强的方式在准确率上有明显优势。

一个人把图书馆里所有书都塞进脑子里,和他知道去图书馆怎么查书,不是一回事。

RAG真正在解决三个性质完全不同的问题。

第一是知识的时效性。模型训练完,参数就冻结了。它知道的,是训练截止日期之前的世界。你问它昨天发生了什么,它不知道。知识库今天更新了一条新政策,不需要重新训练模型,只需要更新向量数据库,下次检索就能拿到最新的内容。这是一个架构层面的优势,不是“更长的上下文”能覆盖的。

第二是知识的可追溯性。企业把AI接入内部知识库,法务部门的第一个问题是:这个回答基于哪份文件的哪个段落?如果回答错了,谁负责?RAG天然提供了这个能力。检索到了哪些文档,哪些段落,完全可追溯。

长上下文模型把100万token塞进去,然后生成一个回答——你很难知道这个回答是基于哪部分内容生成的。对于医疗、法律、金融这些需要严格合规和审计的行业,可追溯性不是锦上添花,是准入门槛。

第三是成本。100万token的上下文,每次调用的成本是多少?如果你有一个企业知识库,里面有几万份文档,每次用户提问都把整个知识库塞进上下文——这个成本会让绝大多数商业应用直接死掉。RAG检索出来的相关片段,通常是几百到几千token。同样的任务,成本差一到两个数量级。

有人会说,推理成本以后会降。但“将来可能便宜”不等于“现在可以忽略”,更关键的是,即便成本降到零,前面两个问题——时效性和可追溯性——成本降低也解决不了。

RAG当然有致命缺陷。检索是最脆弱的一环——如果检索没找到正确的文档,后面的生成做得再好也救不了。错误的前提只会生成更流畅的错误答案,这比直接说不知道更危险。

传统的基于embedding的语义检索,在多跳推理任务上表现很差。你问“A公司现任CEO毕业于哪所大学”,这需要两步:先找到A公司的CEO是谁,再找到这个人的教育背景。如果这两个信息在不同的文档里,单次检索很可能只拿到其中一个。长上下文模型在这类问题上有天然优势——它可以在一个连续的推理过程里处理多步跳转,不依赖外部检索的准确性。

还有一类知识,根本没办法用文档来表达,也没办法通过检索来获取。语言的语感、代码风格的直觉、复杂推理的能力、跨领域的类比……这些东西存在于大量训练样本的统计规律里,是模型在预训练过程中从海量数据里隐式习得的。你没办法写一份文档叫“如何有语感地写中文”,然后把它检索进来。

但更有意思的不是“RAG和长上下文谁赢”,而是这两个东西组合起来能做什么。

用RAG做粗筛——从几万份文档里把相关度最高的几十份找出来,然后用长上下文模型对这几十份文档做精细的理解和推理。这是两个技术的协作,不是竞争。RAG负责缩小搜索空间,长上下文负责深度理解。

还有主动RAG:让模型在推理过程中主动发出检索请求。模型推理到某一步,发现自己需要某个具体的信息,主动调用检索工具,拿到结果,继续推理。可以多轮检索,每轮检索的query由模型根据当前推理状态动态生成。这更接近人处理复杂问题的方式:遇到不确定的地方,去查,查完继续想,发现还有不确定的地方,再查。

有观点认为,RAG本质上是在检索粒度(LLM的输入)做召回,而所谓的无限上下文LLM也会有信息损失,本质上也是一种RAG方法,只是在QKV矩阵的粒度(LLM的中间向量)去做了召回。

也有网友提到,RAG应该被视作一种LLM可以使用的外部工具。让人查询文档中的相关内容,人也会根据结构化的标题以及ctrl+f功能进行快速的检索和定位,而不是从头到尾通读整篇文档。

大海捞针实验揭示了一个事实:随着上下文长度的增加,查全率在不断降低。靠近上下文尾巴的内容更不容易被遗漏,越靠前的内容越容易被遗漏。这种Recency Bias可能是由于下一个token预测这种训练范式导致的。

这引出了一个更底层的问题:我们想让AI系统像人类大脑一样运作,还是像一个配备了完善检索系统的工作站?

一种哲学是:把知识内化。让模型在训练过程中吸收尽可能多的知识,把知识压缩进参数,推理时从参数里直接调用。长上下文是这个方向的延伸。

另一种哲学是:知识存在外部,按需检索。模型不需要记住所有事情,它需要知道去哪里找,怎么找,找到了怎么用。RAG是这个方向的实现。

人类其实两种都在用。真正聪明的人不是记忆力最强的人,而是知道什么时候该直接调用记忆,什么时候该去查资料的人。

那些急着说“RAG要死了”或者“长上下文不够用”的人,可能还没想清楚这个问题。

有时候一个问题问错了,你怎么解都解不到正确答案。不是因为解法不够好,是因为方向偏了。
 
 
Back to Top