真实面经题目 · 原创解析
RAG 生成阶段如何通过 Prompt 边界约束,在没有检索到有效证据时避免模型编造答案?
这题考察 RAG 生成阶段的边界控制能力。好的回答要说明 Prompt 如何把模型限制在检索证据内回答,如何定义无证据、低置信和证据冲突时的行为,以及如何配合检索评分、引用、结构化输出和评估来降低幻觉。重点不是写一句“不要编造”,而是建立可执行的证据约束。
真实面经题目 · 原创解析
这题考察 RAG 生成阶段的边界控制能力。好的回答要说明 Prompt 如何把模型限制在检索证据内回答,如何定义无证据、低置信和证据冲突时的行为,以及如何配合检索评分、引用、结构化输出和评估来降低幻觉。重点不是写一句“不要编造”,而是建立可执行的证据约束。
RAG 生成阶段我会把 Prompt 设计成证据优先的回答协议:先明确模型只能基于检索片段和用户问题回答,不允许补充片段外事实;要求答案中的关键结论能对应到证据编号;当没有有效证据、证据相关性不足或证据互相冲突时,必须返回无法根据现有资料回答,并说明缺少什么信息。为了让约束可执行,还要把检索分数、来源、时间和片段编号传给模型,输出结构里包含 answer、citations、confidence、missingEvidence 或 refusalReason。Prompt 之外还要有证据阈值、引用校验和人工/自动评估,因为一句禁止幻觉的指令不够。
Prompt 首先要定义可用证据范围:只能使用本轮检索到的片段、用户明确提供的信息和系统允许的上下文。模型预训练知识只能用于语言组织,不能作为事实来源。这样才能把 RAG 的答案锚定在可追溯材料上。
无证据不是只看 topK 是否为空,还要看相关性是否低、片段是否只包含噪声、是否缺少关键字段、是否和问题不匹配。Prompt 要要求模型在这些情况下拒绝编造,返回无法回答、需要补充的信息或建议重新检索的查询方向。
要求答案的关键事实附带证据编号或来源,可以降低模型自由发挥。更进一步可以让模型先列 evidence-to-claim 映射,再生成最终答案。系统侧要校验引用编号存在,且引用片段确实包含对应内容。
检索结果可能互相矛盾或版本不同。Prompt 应要求模型识别冲突,优先使用权威、更新、更相关的来源;无法判断时明确说明资料不一致,而不是选择一个看起来合理的说法直接输出。
结构化输出可以把回答、引用、置信度、缺失证据和拒答原因分开。这样后处理可以检查 answer 非空时是否有 citations,confidence 是否和检索分数匹配,缺证据时是否真的没有编造内容。
要用无答案问题、低相关检索、冲突证据和诱导编造问题做评估。指标包括无证据拒答率、有证据回答率、引用准确率、claim 支撑率和幻觉率。发现问题后可能要改检索阈值、rerank、上下文压缩或 Prompt 边界。
要做引用合法性校验,检查 citation id 是否存在,并抽取 claim 与片段做语义一致性判断。引用不存在或不支持时,可以要求重答、删除该结论或返回证据不足。
可以给出清晰的缺失信息和下一步建议,例如需要哪类文档、哪些关键词或更具体的问题。拒答不是只说不知道,而是诚实说明现有证据不足并帮助用户补齐输入。
可以暴露相对置信信号或相关性等级,但不要让模型只按分数机械判断。更稳的是系统先做阈值过滤,再把来源、时间、片段编号和相关性提示给模型。
取决于产品场景。高可信问答、企业知识库和法务/医疗等场景应严格限制片段外事实;低风险科普可以允许常识性组织,但必须区分证据内结论和背景解释。