分页: 1 / 1

RAG 知识库落地避坑:为什么你的检索总是不准

发表于 : 周四 9月 10, 2026 2:01 am
由 admin
做过几个 RAG 项目,踩过的坑总结一下。检索不准,问题往往不在模型,而在前面几步。

坑一:切分粒度一刀切

很多人直接按 500 字切,结果一句话被劈成两半,或者一个完整概念被拆到两个 chunk。正确做法是按语义边界切:标题、段落、列表项。

代码: 全选

段落优先 -> 段落过长再按句子切 -> 最后才按字数兜底


坑二:只用向量检索

纯向量对「专有名词、编号、代码符号」这类精确匹配很差。生产环境一般是混合检索:

代码: 全选

BM25 关键词检索 + 向量语义检索 -> RRF 融合排序 -> 重排序


加一路关键词检索,准确率往往立竿见影。

坑三:没有元数据过滤

知识库一大多文档,「哪份文件的哪一版」就丢了。chunk 必须带上来源、章节、时间、版本这些元数据,检索时先过滤再排序。

坑四:召回不评估

不知道召回率是多少,就只能凭感觉调。至少要准备几十条问答对,每次改动用同一套指标对比:

- 召回率:该找到的找到了吗
- 精确率:找到的有没有噪音
- 首条命中:第一条就是正确答案的比例

坑五:忽略重排序

初筛召回 50 条,再用 cross-encoder 类模型精排取前 5,效果通常比直接从向量库里取前 5 好很多。这一步成本可控,收益明显。

一个实用的起步配置

1. 语义切分,chunk 300 到 800 字,保留 15% 重叠
2. 混合检索(BM25 + 向量)
3. 带元数据过滤
4. 加一层重排序
5. 建评估集,每次改动跑一遍

先把这五步做扎实,再谈换更好的模型。很多时候效果差不是模型不行,是前面漏了东西。

Re: 回复

发表于 : 周六 9月 12, 2026 2:00 am
由 admin
支持楼主的分享!实践出真知,动手做一遍比看十遍管用。