← 返回资讯
林远舟
技术编辑
已审核

说RAG已死的人,大概率没在生产环境被退款和支付搞崩溃过

上周五下午,一个做知识库的朋友甩了张截图给我。

说RAG已死的人,大概率没在生产环境被退款和支付搞崩溃过

说RAG已死的人,大概率没在生产环境被退款和支付搞崩溃过


上周五下午,一个做知识库的朋友甩了张截图给我。

「RAG 已死,长上下文一统天下」——某技术论坛的帖子标题。他配了三个捂脸表情。

我当时正跟一个混合检索的权重参数较劲,随手回了句:「说 RAG 死了的人,大概率没在生产环境真正跑过。」

回完就后悔了。这话太绝对。

但我也没撤回。因为某种程度上,我确实这么想。

这事儿我琢磨了快两年。2023 年初开始碰 RAG,那会儿的玩法——怎么说呢——简陋得可爱。把 PDF 切成 500 字小块,text-embedding-ada-002 转向量,扔进 Chroma,用户提问就召回 Top-3,拼进 prompt。完事儿。

Demo 跑得欢。

一上生产,翻车。

翻车现场是这样的:用户问「怎么退款」,系统给他检索出三篇「支付流程」的文档。语义上确实相关,都跟钱有关。但用户要的是退款,不是支付。用户骂了句「什么破机器人」,转人工了。

这就是 RAG 1.0 的典型问题。纯向量检索找的是「相似」,不是「相关」。你品品,在向量空间里,「退款」和「支付」的余弦相似度可能高达 0.85 以上,但业务上这俩是反义词。

绝了。

后来我踩了不少坑,也开始理解为什么有人觉得 RAG 不行了。

一个原因是长上下文模型确实猛。Claude 3 出来的时候支持 200K token,Gemini 1.5 Pro 直接干到 100 万,现在各家都在卷这个。如果你的知识库就几百页文档,确实没必要折腾检索——全塞进去完事儿。省事。

但这里有个坑。我实测过,当上下文超过 100K token 之后,模型的「中间迷失」现象非常明显。你把一份 200 页的报告扔进去,问它第 137 页的一个数据,它大概率会漏掉或者编一个。这不是模型不够聪明,是注意力机制在长序列下的天然衰减。DeepMind 那篇论文说得挺直白——模型不是真的「记住」了 1000 万字,它只是把它们塞进去了,检索信息时会变得混乱。

另一个原因是成本。你把整本《红楼梦》塞进 prompt,每次提问都要为那 70 多万字付费。我算过一笔账:用 GPT-4o,单次查询塞满 100K context 的成本大概是纯检索方案的 8 到 12 倍。并发一上来,账单直接爆炸。

所以长上下文不是银弹。它吃掉了一部分简单场景,但真正复杂的企业场景,RAG 反而在进化。

去年我开始尝试一些新做法。名字就不起了,听着唬人,其实核心就几招。

用父子窗口切块。传统切块的矛盾在于:块切太大,检索不精准;块切太小,上下文丢失。父子窗口的解法很聪明——用 300 字的小块做检索,但返回给 LLM 的是包含这个小块的 1000 字大块。检索精准了,上下文也完整了。我在《红楼梦》知识库上测过,宝玉挨打那段的问答准确率从 62% 提到了 89%。

然后是混合检索。向量检索加 BM25 关键词检索,两条路同时跑,结果合并后再用 Reranker 重排序。这招解决了「产品编号搜不到」的问题——纯向量对精确关键词不敏感,但 BM25 天生就是干这个的。Anthropic 在 2024 年推出的 Contextual Retrieval 也是这个思路,他们给的数据是混合检索把失败率降低了 49%,叠上重排序之后降了 67%。

还有问题改写。用户说话很随意的。「那个报销咋搞」——这种口语化的 query,向量搜索根本匹配不上。所以在检索之前加一步,让 LLM 把用户的问题改写成更规范、更完整的检索 query。这招成本很低,效果很明显。

再就是加了个自反思机制。让 LLM 在生成答案之前,先检查检索到的文档是否真的相关、是否足够回答问题。不够就再检索一轮,或者换个角度检索。Self-RAG 那篇论文把这个思路系统化了,但我在实际项目里做的更轻量——就加了一个判断步骤,检索质量直接提升了 15 个百分点。

说实话,这套方案跑了一年多,效果确实不错。但我也得承认,它比 RAG 1.0 复杂太多了。多了三个模型调用环节,延迟从 800ms 涨到了 2.3 秒,运维成本也上去了。

所以我现在跟团队说:简单场景别折腾,直接塞 prompt 或者用基础 RAG 就够了。只有当你明确遇到了检索质量问题,再考虑上这些进阶方案。

GraphRAG、Agentic RAG 这些更复杂的架构,我试过,确实在某些场景很香——比如需要跨文档推理的法律案件分析。但大多数业务场景用不上,硬上就是过度设计。

简单系统更稳定,环节少,出错的地方就少。

这句话是我花了大半年才真正理解的。

回到开头那个问题:RAG 会不会消亡?

我的判断是:不会。但它会从「应用」变成「基础设施」。就像数据库,没人天天讨论数据库会不会消亡,但哪个系统离得开它?RAG 或者说更广义的「上下文工程」,正在成为所有 AI 应用的标配组件。

2023 年那种「切块加向量加 Top-K」的入门版 RAG,确实已经过时了。但 RAG 这个思路本身,正在被吸收进更大的体系里——混合检索、智能重排、查询改写、记忆系统、工具调用,这些东西合在一起,构成了一个完整的上下文引擎。

大厂们也没闲着。OpenAI 的 API 里内置了 file search,做的就是混合检索。Anthropic 搞了 Contextual Retrieval。Google DeepMind 最近发了 RLM 论文,让模型像程序员一样用代码检索长文本——这本质上也是一种更智能的检索策略。

所以你看,大家不是在告别 RAG,而是在把它从一个 Demo 做成一套工业级系统。

最后说个挺有意思的事。上周那个问我「RAG 是不是死了」的朋友,昨天又发消息来了。他说他们团队评估了一圈,决定还是用 RAG,但是升级到了混合检索加重排序的方案。

我问他为啥。

他说:「长上下文太贵了,而且用户问『那个产品咋样』的时候,模型根本不知道『那个』是哪个。」

绝了。

这就是真实世界的需求。不是论文里的 benchmark,不是技术社区的争论,而是一个用户说了句模糊的话,系统得能接住。

RAG 还活着,活得挺好。只是它不再是一个 buzzword 了。

它变成了水管、电线、地基——看不见,但缺不了。

你觉得呢?

726
14537 阅读
3 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月27日 13:18

林远舟

技术编辑

全栈工程师出身,做过 5 年技术社区运营。对 AI 编程工具、开发者生态有深入研究,喜欢用实测数据说话。

读者评论 3

前端工程师 1周前
代码示例很清晰,直接用到项目里了。
回复 点赞 (6)
技术小白 昨天
作为非技术人员也看懂了,感谢作者的通俗讲解。
回复 点赞 (3)
Dev小王 4天前
终于有人把这个说清楚了,收藏了。
回复 点赞 (8)