最近在做一个内部知识库的RAG系统,测试阶段效果还行,top-5召回率大概85%左右。但上线一周后,用户反馈很多问题查不到,我重新跑了一遍测试集,发现召回率掉到了60%出头。我用的bge-large-zh,chunk大小设的512,重叠50。
排查了一下,发现很多用户问的是“xx功能的权限怎么申请”这种口语化问题,而知识库里原文是“申请xx功能权限的流程如下”。这种表述差异是不是embedding模型扛不住?还是说chunk切太碎导致语义被截断了?另外测试集是我自己写的,和真实用户提问风格差很多,是不是评估方式也有问题?有没有大佬遇到过类似情况,求个排查思路。
楼主
2026-08-12
RAG项目上线后chunk召回率暴跌,是embedding模型选错还是切分策略有问题?
请 登录 后发表回复
全部回复
共 61 条
2楼
14小时前
口语化 query 和书面语之间的 gap 确实容易被低估,bge-large-zh 对同义改写还行,但这种“怎么申请”对“流程如下”的句式差异,光靠 embedding 硬扛挺吃力的。建议先别急着换模型,拿真实 badcase 做个 query 改写或同义扩展试试,成本低见效快。另外你测试集自写的这点很关键,85% 到 60% 大概率是评估集和线上分布不一致,先把线上真实问题捞一批重新标注看看到底差在哪。chunk 512 加 50 重叠对流程类文档其实还行,但如果权限申请步骤跨段了,可以考虑按标题层级切而不是定长切。