最近在搭一个垂直领域的RAG问答,用的bge-m3做embedding,chunk切了512带overlap,检索出来的top5看召回内容相关性都还行,但喂给qwen2.5-7b之后,答案经常抓不住重点,甚至把检索片段里的无关细节当成了核心。我试过在prompt里强调“只根据给定资料回答”,也试过把top5改成top3,效果都不稳定。想问问各位,这种情况一般是卡在rerank环节,还是说需要在生成前对检索片段做额外的重排或压缩?或者干脆是模型对长上下文的利用能力不行?有没有什么工程上比较实用的tuning思路?
楼主
2026-08-07
RAG召回明明挺准,为啥生成结果还是答非所问?
请 登录 后发表回复
全部回复
共 102 条
2楼
28天前
召回准不代表生成能用,大概率是片段里噪声太多,先试试重排后只喂最相关的两三段,别一股脑塞。
3楼
27天前
我之前也踩过这个坑,召回看着没问题但生成跑偏,大概率是检索片段里噪音太多,模型分不清主次。你可以试试在喂给qwen之前加个rerank(比如bge-reranker),再把top片段做一轮压缩或摘要,只留跟问题强相关的句子。另外qwen2.5-7b对中间位置的上下文确实容易忽略,把最关键的片段放开头或结尾会稳一些。prompt里光说“只根据资料”不够,最好明确要求它先指出依据再作答。