最近在做一个基于RAG的问答Agent,向量库用的是Milvus,embedding是bge-large-zh,检索top5基本都能召回相关段落。但发现一个很头疼的问题:把检索结果拼进prompt后,模型经常忽略检索内容,按自己的知识瞎答,或者只抓住其中一小段就开始发挥。试过调temperature、加“请严格根据以下内容回答”的指令,效果都不稳定。想问下大家,这种情况一般是检索的问题还是prompt编排的问题?有没有什么比较系统的排查思路?感觉自己一直在瞎调,没什么方向。
楼主
18天前
RAG检索出来的内容明明相关,但Agent回答时总是答偏,是哪里出了问题?
请 登录 后发表回复
全部回复
共 1 条
2楼
16天前
我也踩过这个坑,后来发现八成是prompt结构的问题。检索内容别直接一大段塞进去,用明确的标记包起来,比如“以下资料仅供引用:[1]...[2]...”,再要求模型逐条引用编号作答,效果会稳很多。另外top5里如果混了弱相关段落,模型反而容易被带跑,可以先加个rerank或者相似度阈值过滤一轮。还有个容易忽略的点,就是问题本身如果太笼统,模型就爱自己发挥,把query改写成具体子问题再检索会好不少。