RAG 还有没有未来:从成本、时效与权限三个角度判断

一、RAG 被唱衰了很多次

每隔一段时间就有人说:上下文窗口都上百万了,RAG 没必要了。

这个说法对一半。上下文变长,确实解决了一部分问题,但它解决不了三件事:成本、时效、权限。

二、三件事 RAG 仍然占优

成本。 把十万字塞进上下文,每次对话都付一次钱。检索只把相关片段送进去,便宜一个量级。

时效。 模型不认识今天的数据。检索可以从数据库、文件库里实时取。

权限。 上下文里能放什么,取决于检索层的权限控制。这份能力是硬需求,不能靠模型自律。

三、真正决定效果的不是模型,是检索质量

实际项目里,回答不准的原因九成在检索:

切分太粗,关键信息被切碎;

切分太细,上下文不够推理;

只做向量检索,精确术语匹配不到;

没有重排序,召回一堆相关但不关键的内容。

我的经验是:先把切分和召回做好,再谈模型选型。

四、混合检索是常规做法

向量负责语义,关键词负责精确。两者合并后重排序,效果普遍比单一路线稳。

工程上还得处理缓存、限流、超时。向量库检索看着简单,并发一上来全是细节问题。

这类工程细节,我在 BackendWiki 上看过几篇讲得比较透的:Redis 的五种数据结构与持久化、缓存三大问题(穿透、击穿、雪崩)、MySQL 索引与事务、Nginx 反向代理,还有 RPC 与 gRPC 的内部机制。做检索服务时这些是底盘,不补会反复踩坑。

五、三条实用判断

判断一:你的知识库更新频率多高?

一周一变,RAG 必选;基本不变,微调或者直接塞进提示词都行。

判断二:回答错了代价多大?

只是参考意见,可以宽松;涉及价格、法规、医疗,必须带引用来源,且要能溯源到原文。

判断三:能不能接受延迟?

检索加一次重排序,通常多几百毫秒。对实时对话有影响,对后台任务无感。

六、一个常见误区

很多人把 RAG 当成"把文档全丢进去"。

实际上 RAG 的核心是"只给需要的那一段"。做得好的系统,送进模型的上下文不多,但准。

反过来,为了省事把整本手册塞进去,效果不一定好,成本一定高。

七、结论

RAG 不会消失,它的形态会变:从"检索一段文本"变成"按需组装上下文"。

模型越强,对检索质量的要求反而越高,因为它会把错误的上下文用得很自信。