最近在做一个企业知识库的RAG系统,用的是LangChain + 向量库的方案。切片大小设的512,top_k=5,检索出来的chunk人工看了确实和问题相关,但丢给大模型之后,回答要么漏掉关键信息,要么自己瞎编。试过调temperature、换prompt模板,效果都不稳定。想问下大家,这种情况一般是检索的问题还是生成的问题?有没有什么排查思路或者踩过类似坑的?
楼主
2026-09-24
RAG检索出来的内容明明很相关,为什么大模型还是答非所问?
请 登录 后发表回复
全部回复
共 4 条
2楼
2026-09-26
我也踩过这个坑,后来发现八成是context塞得太满导致的。top_k=5看着不多,但512的chunk拼起来上下文可能有一两千token,模型中间那段信息容易被忽略。建议试试把chunk按相关性排序后只留前2-3条,或者换个重排模型过一遍。另外你prompt里有没有明确让模型“只基于给定内容回答、找不到就说不知道”?这个不加的话它很容易自己脑补。
3楼
4天前
这个思路不错,收藏了。
4楼
4天前
有没有更详细的教程推荐?
5楼
2天前
我之前也遇到过一模一样的情况,后来发现是chunk切得太碎了,关键上下文被拦腰截断,检索出来看着相关但信息不完整,模型自然答不全。你可以先把top_k调大试试,比如给到8-10,看回答有没有改善,这样能快速判断是不是召回不够。另外建议把检索到的原文和最终prompt都打印出来,很多时候是prompt里chunk顺序或者拼接方式让模型抓错了重点。还有可能就是知识库本身有重复或冲突内容,top5里混进了相似但细节不一样的片段,模型就懵了。