最近在搭一个基于本地知识库的RAG问答系统,用的bge-m3做embedding,chunk大小设的512,重叠64。但实际测试时发现,很多问题检索出来的top5片段里,只有一两条是真正有用的,其他都是表面相关但实际答非所问的内容。比如问“某功能怎么配置”,召回的反而是该功能的历史变更记录,甚至是一些日志说明。我试过调相似度阈值,但要么召回太少,要么还是夹杂无关内容。想问问有经验的朋友,这种问题大概率是分块策略的问题,还是embedding模型选型或者检索方式(比如混合检索)的问题?另外有没有什么工程上比较实用的调优思路?先谢过大家了。
楼主
2026-09-01
RAG检索老召回不相关片段,是不是我分块方式有问题?
请 登录 后发表回复
全部回复
共 25 条
2楼
2026-09-24
chunk512太大了吧,配置类问题往往就一小段,试试按标题层级切,或者换小模型rerank一下。
3楼
2026-09-27
我之前也踩过这个坑,512的chunk对配置类问题确实偏大,容易把变更记录和日志一起裹进来。你可以试试按语义切,比如按段落或标题层级分,再小一点到256左右。另外纯向量检索对“怎么配置”这种意图不太敏感,加个BM25做混合检索会好很多。
4楼
11天前
写得挺好,建议补充一些性能数据。
5楼
11天前
我之前也遇到过类似问题,后来换了方案。
6楼
5天前
这个思路不错,收藏了。