RAG 问答答非所问时,优先排查检索结果,而不是立刻换更大的模型。只要召回的文档片段不对,后面的模型再强,也是在错误材料上组织答案,表现就会像“会说但没答到点”。
最简单的判断方法是把用户问题、检索到的前 5 个片段、最终答案放在一起看。如果片段里没有答案依据,问题多半出在切片、向量、关键词或重排环节。
先看召回内容是否命中
检查三个点:片段是否来自正确文档,片段是否包含完整上下文,片段之间是否互相矛盾。很多知识库把文档切得太碎,单个片段只有半句话,模型拿不到定义、条件和例外,就容易补脑。
切片不一定越小越好。制度、合同、产品手册这类材料,通常要保留标题层级和前后段关系;FAQ、参数表、错误码说明则适合更细的切片。切片策略要跟文档类型走。
再查问题有没有被改坏
有些系统会做问题改写,把用户的口语问题改成检索词。如果改写把关键限定词删掉,比如把“试用版能不能导出数据”改成“导出数据”,检索结果就会跑到正式版功能说明里。排查时要记录原始问题和改写后的问题。
关键词检索和向量检索也可以组合使用。专有名词、型号、错误码更依赖关键词;语义相近的问题更适合向量。只用一种检索方式,容易在边界问题上漏召回。
最后才调模型和提示词
当召回片段已经正确,但答案仍然乱编时,再去优化提示词:要求模型只依据给定资料回答;资料不足时说明缺口;引用对应片段;不要把常识补成公司规则。这样能控制幻觉。
RAG 的质量不只看模型回答,还要看检索链路是否可观察。每次答错都保留问题、召回片段、重排分数和最终答案,几轮之后就能看出是切片问题、数据问题,还是提示词约束不够。