最近在做一个企业知识库的RAG系统,用的是LangChain + 向量库的方案。切片大小设的512,top_k=5,检索出来的chunk人工看了确实和问题相关,但丢给大模型之后,回答要么漏掉关键信息,要么自己瞎编。试过调temperature、换prompt模板,效果都不稳定。想问下大家,这种情况一般是检索的问题还是生成的问题?有没有什么排查思路或者踩过类似坑的?
最近在做一个企业知识库的RAG系统,用的是LangChain + 向量库的方案。切片大小设的512,top_k=5,检索出来的chunk人工看了确实和问题相关,但丢给大模型之后,回答要么漏掉关键信息,要么自己瞎编。试过调temperature、换prompt模板,效果都不稳定。想问下大家,这种情况一般是检索的问题还是生成的问题?有没有什么排查思路或者踩过类似坑的?
我也踩过这个坑,后来发现八成是context塞得太满导致的。top_k=5看着不多,但512的chunk拼起来上下文可能有一两千token,模型中间那段信息容易被忽略。建议试试把chunk按相关性排序后只留前2-3条,或者换个重排模型过一遍。另外你prompt里有没有明确让模型“只基于给定内容回答、找不到就说不知道”?这个不加的话它很容易自己脑补。