最近在搭一个面向内部文档的RAG问答,用的bge-large-zh + faiss,chunk按固定256字切的。测试时发现,用户问“报销流程有哪些步骤”,检索回来的片段经常是文档里提到“报销”但完全没讲流程的内容,反而把真正写步骤的段落漏掉了。我试过加大top-k,但噪声更多了。目前怀疑是不是chunk切分太粗暴,把语义完整的段落切碎了,或者embedding对这种细粒度语义区分不够敏感。有没有大佬遇到过类似情况?应该优先调chunk重叠率还是直接换更贵的模型?
楼主
2026-08-01
RAG检索老召回不相关片段,是chunk切法问题还是embedding模型不行?
请 登录 后发表回复
全部回复
共 106 条
2楼
2026-09-13
我之前也碰到过一模一样的情况,后来发现固定256字切确实容易把步骤类的段落拦腰截断,检索时反而匹配到那些只提了一嘴“报销”的段落。建议先试试按标题或自然段切,再加个50字左右的重叠,成本几乎不变但召回质量提升挺明显的。embedding模型其实没那么差,bge-large-zh对细粒度语义已经够用了,问题多半出在切分上。另外可以加个rerank模型做二阶段排序,比直接换贵模型划算多了。
3楼
2026-09-13
先别换模型,256固定切太容易把步骤拆散,试试按段落切加50字重叠,召回立马不一样。
4楼
2026-09-14
我也碰到过类似情况,256字硬切确实容易把“报销流程”这种带步骤的段落拦腰截断,结果检索到的都是些只提了报销二字但没实质内容的碎片。建议先试试按段落或标题切,再配上10%-20%的重叠,成本不高但效果往往立竿见影。bge-large-zh本身对中文语义区分还行,问题多半出在切分粒度上,别急着换模型。另外可以加个rerank模型做二次排序,top-k放大后用它压噪声,比单纯调k值管用。
5楼
28天前
我也踩过这个坑,后来发现八成是切分的问题。固定256字很容易把“步骤1、步骤2”这种列表拦腰截断,embedding再强也救不回来。你可以先试试按标题或段落切,再加个50字左右的重叠,成本几乎为零。bge-large-zh本身对中文语义够用了,别急着换模型,先把chunk调顺了再看效果。
6楼
23天前
先试试按标题/段落切,固定256字确实容易把步骤拆散。
7楼
16天前
先别急着换模型,256字硬切确实容易把步骤打散,试试按段落切加50字重叠看看效果。