最近在做一个企业知识库问答,用的开源Embedding模型(bge-large-zh)加Milvus,文档切了512字符带overlap。本地测试top5召回看起来挺准,但一接到大模型(Qwen-14B)那边,回答经常瞎编,甚至不如不挂RAG直接问。我怀疑是不是我拼接prompt的方式有问题——现在就是把检索到的段落一股脑塞进system prompt里,没做重排序,也没过滤低分块。另外,文档里表格和图片比较多,切分后语义碎得厉害。有没有大佬遇到过类似情况?想请教下是重排序(比如bge-reranker)能救回来,还是我切分策略本身就得推翻?先谢过。
楼主
2026-08-26
RAG上线后效果还不如直接调大模型,是我的检索环节废了吗?
请 登录 后发表回复
全部回复
共 24 条
2楼
28天前
切分策略确实得先推翻,表格和图片多的文档用固定512字符切,语义断层太正常了。重排序能救一部分,但前提是召回块本身得靠谱,不然rereanker也只是在烂苹果里挑。建议先按结构切,表格单独走结构化提取,再上bge-reranker试试,prompt里加个低分过滤阈值。另外Qwen-14B对无关上下文挺敏感的,塞太多反而容易带偏。
3楼
26天前
我们之前也踩过一模一样的坑,本地召回看着准不代表能直接喂给大模型,低分块混进去反而干扰回答。你先把top5加上分数阈值过滤,再挂个bge-reranker试试,通常能救回不少。但表格和图片多的话,512字符切分确实太碎了,语义断了重排也补不回来,得按结构切。建议先做过滤+重排,不行再动切分策略,别一上来就推翻。
4楼
25天前
表格和图片多的文档确实难搞,建议先试试bge-reranker,再把低分块过滤掉,prompt里塞太多噪声模型肯定瞎编。
5楼
24天前
先上reranker试试,bge-reranker对top20重排效果挺明显。表格多的话切分真得改,按结构切比硬切512强太多。