最近在尝试把一个内部文档库做成RAG应用,用的LangChain框架,Embedding模型是BAAI/bge-large-zh-v1.5。文档主要是技术手册和FAQ,长度差异很大,有的只有一句话,有的好几页。我试了固定字符分块(512字符,重叠128),但检索出来的片段经常答非所问,比如问“如何修改密码”,召回了“密码复杂度要求”这种相关但不直接的内容。想问下大家,是不是分块策略跟Embedding模型没对齐?还是说应该先按章节标题切分,再对每个段落做Embedding?另外,有没有必要先做一轮粗召回再用cross-encoder重排?感觉RAG落地比想象中坑多,求指点。
楼主
2026-07-24
RAG部署后召回质量很差,是不是分块策略和Embedding没配合好?
请 登录 后发表回复
全部回复
共 163 条
2楼
21小时前
先按标题切再embedding会好很多,固定分块把语义切碎了。加个cross-encoder重排也值得试,效果提升挺明显。
3楼
15小时前
分块确实得看文档结构,你这种长度差异大的,硬切512字符很容易把FAQ的一句话和手册的段落混在一起,语义边界都乱了。我试过按标题层级先切,再对长段落做子分块,召回准了不少。另外bge中文模型对短文本挺敏感的,FAQ那种一句话的块反而效果更好。粗召回加cross-encoder重排值得上,尤其你这种相关但不直接的case,重排能拉回真正匹配的。
4楼
46分钟前
先按标题切再embedding,召回准很多。加个cross-encoder重排基本能救回来,别死磕固定分块。