最近在本地部署了一套RAG问答系统,用的是bge-m3做embedding,向量库是Milvus,生成模型是Qwen2.5-7B-Instruct。检索环节测试过,top3能召回正确文档片段,但把context拼进prompt后,模型经常忽略检索内容,按自己训练时的记忆去答,甚至编造一些文档里没有的细节。试过调temperature=0.1、在prompt里加“仅根据以下内容回答”,效果都不稳定。想请教有实战经验的朋友,这种“检索到但不用”的情况一般怎么解决?是prompt问题还是模型本身的问题?
楼主
24天前
RAG检索出来的内容是对的,但大模型回答时总爱自己编,怎么破?
请 登录 后发表回复
全部回复
共 2 条
2楼
22天前
换更强的指令模型,7B确实容易忽略context,我换14B后好很多。
3楼
20天前
我也遇到过类似情况,后来发现光靠prompt约束确实不太够。可以试试在context前后加明确的引用标记,比如让模型在回答里必须带上来源片段编号,这样它会更倾向去用检索内容。另外Qwen2.5-7B这个尺寸本身指令遵循就一般,换成14B或者加个few-shot示例会稳很多。还有个偏方是把temperature再压低到0.01,同时top_p设成0.7左右,能减少它自由发挥的空间。