一个RAG系统上线一周,召回率从85%掉到30%——问题出在没人告诉你的地方
三个月前,帮朋友做了一个RAG问答系统。需求听起来很简单:把几百份内部文档丢进去,让业务部门能直接问问题。
我花了三天搭起来。测试的时候,召回率85%,朋友说"稳了"。
上线。
一周后,召回率掉到了30%。
不是模型的问题。不是embedding的问题。是三个没人会提前告诉你的细节。
第一个坑:你以为chunk size选好了,其实没有
网上大部分教程说"chunk size选256还是512,看文档类型"。这句话没错,但没有告诉你为什么。
我刚开始按512切。测试集里挑的段落都很清晰,召回率好。上线后真实问题是五花八门的——有人问"去年Q3的预算审批流程是什么",这个问题的关键词分布在三个不同的chunk里,512根本覆盖不到。有人问"OA审批超时怎么办",关键词"OA"出现在入门文档里,"审批超时"出现在运维手册里。两个chunk隔了十万八千里。
还有人问"去年的服务器采购是谁批的","去年"和"服务器采购"和"审批人"三个概念分散在不同文档的不同章节里。单靠512的滑动窗口,根本抓不住。
后来我换成动态chunk策略。先按自然段落边界切分,然后用句号、问号、感叹号分句。短句(少于30个字)和前后相邻句子合并成一个chunk,长段落(超过800 tokens)拆成多个chunk。每个chunk控制在200到800 tokens之间。
加了一步:每个chunk保留源文档ID和章节路径。这样检索到chunk的时候,能追溯到原文位置,方便做上下文拼接。
改完以后,召回率从30%回到60%。不是最优,但至少能用了。
第二个坑:embedding模型的维度陷阱
我用的bge-large-zh,1024维。理论上维度越高精度越高,但线上查询有一半是短Query——两三个词那种。“预算审批”“流程负责人”“OA编号”。短Query在高维空间里跟谁都不近,召回来一堆不相关的内容。
试了几次,发现短Query反而适合低维语义空间。我加了一层路由:Query进来先判断长度。少于10个字的短Query走text2vec-base-chinese,384维;长Query走原来的bge-large-zh。同时把短Query做一次query expansion——比如"预算审批"扩展成"预算审批流程谁负责怎么申请"。
简单的一层路由加query expansion,召回率从60%提到75%。
第三个坑:reranker用对了没有
很多人把reranker当万能药——先召回50条,让reranker排个序,取top5。但reranker的输入长度有限制。BGE-reranker-v2-m3最大输入8192 tokens。50个chunk平均每个300 tokens,加起来15000,reranker会截断——后面全丢了。
解决方案:第一阶段召回后,按BM25和向量得分的加权排序取top20,再用reranker过一遍。输入不超限,top20里相关内容密度也更高。
加上这层,召回率稳定在80%左右。虽然没有回到最初的85%,但线上真实数据比测试集更有说服力。
我的建议
这三个坑网上不是没人写过,大多分散在不同文章里。你踩完第一个去找解决方案,第二个已经在等着了。
做RAG不要一上来就想搞一套完美的。完美的定义在上线前和上线后完全不一样。先跑起来,看线上日志,再一个个坑填。如果非要选一个最优先级的事——把日志和监控做好。你只有看到每次查询的召回率和具体失败case,才知道往哪个方向调。
朋友后来问我花了多久。我说写代码不到两天,调这些破事花了两周。
上周另一个朋友也来问RAG的事,我直接把这几个坑的排查顺序发给他。他说:你早点说啊,我上周踩的就是第三个坑,reranker截断了,查了两天才找到原因。
我说:你不踩过一遍,我跟你说你也不信。
这就是工程。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~
