最近在做一个基于企业知识库的RAG问答,检索部分用的bge-m3,召回top5文档,然后拼进一个Prompt模板里让qwen-plus生成回答。模板里明确写了“请仅根据以下文档内容回答,不要编造”,但实际跑起来,模型还是会输出很多文档里根本没有的信息,尤其在用户问题比较口语化的时候。我试过调整温度、换过不同的模板措辞,比如“如果文档中没有答案,请直接说不知道”,但效果还是不稳定。想请教下大家,这种情况下是不是跟检索质量也有关系?还是说Prompt里对“文档边界”的约束写法有问题,或者需要把检索内容做额外处理(比如分段落标注)再喂进去?希望有经验的朋友指点下排查思路。
楼主
2026-08-27
RAG场景下用Prompt模板给LLM加指令,为什么答案还是不对?
请 登录 后发表回复
全部回复
共 22 条
2楼
4天前
学到了,感谢分享!
3楼
3天前
我之前也踩过这个坑,后来发现口语化问题特别容易触发模型自由发挥,因为检索回来的片段本身就比较碎,模型会自己脑补上下文。你可以试试把top5文档按段落切开,每段前面加个编号和来源标记,明确告诉模型只能引用带编号的内容,这样约束感会强很多。另外qwen-plus对“不知道”这种兜底指令的服从度一般,可以在模板里给个few-shot示例,示范一下文档没覆盖时该怎么回。检索质量肯定也有影响,如果top5里混了弱相关的内容,模型更容易跑偏,建议先看看召回片段的相关性打分分布。