日期:2026-08-06
我们给一家制造企业做内部知识库问答,底层是我们采用的私有化 AI 底座加 RAG 检索。上线初期员工反馈一个扎心的问题:系统回答得"太自信了",明明是知识库里没有的内容,它也能编得有鼻子有眼,员工分不清哪句是真的哪句是编的,有人照着错误步骤操作差点出事故。这暴露了当时架构的盲区——我们只管"答得出来",没管"答得可信不可信"。我们当时决定,必须把置信度和拒答当成一等公民来设计,可信才给答案,不可信就老实说不知道。
我们在回答生成之外加了一路"置信度评分":综合检索命中率、片段与问题的语义相关度、生成内容与检索片段的事实一致度,算出一个 0 到 1 的置信分。低于中阈值的问题,不直接给结论,而是转人工或给"建议联系 XX 部门确认";低于低阈值的,直接拒答并说明"当前知识库无法支撑该问题"。同时我们定义了清晰的拒答边界——涉及个人隐私、未公开财务、安全操作红线的问题一律拒答,并配一套温和的话术把用户引导到正确渠道,而不是冷冰冰说"我不能回答"。
第一个挑战是置信度"虚高"。模型生成的文本流畅,但和检索片段对不上时置信分仍不低。我们的解法是把"事实一致度"做成独立校验:用另一路轻量模型把回答拆成若干事实断言,逐个回查检索片段是否支撑,不支持的断言扣分,置信分因此更贴近真实可信度。第二个挑战是拒答边界的漂移。边界写死容易误伤正常问题,我们改成"规则 + 样例"双驱动,给标注同学一批正反例持续微调边界分类器。第三个挑战是转人工的体验,不能让用户觉得被踢皮球,我们给转人工场景带上了"已检索到的相关片段摘要",让人工接手时一眼知道上下文,衔接更顺。
案例片段(已脱敏): 一次低置信拦截——用户问"某型号设备的安全扭矩上限是多少"。检索仅命中通用手册片段,未命中该型号专用参数,事实一致度校验发现回答中"扭矩 120N·m"在片段中无支撑,置信分 0.41(低于中阈值 0.6)。系统未直接给结论,返回"该参数建议联系设备安全部门确认",并附上已检索到的通用手册摘要。事后核实,正确值应为 95N·m,若直接给 120 确有安全隐患。 置信度校准前后对比:灰度期误答率(员工反馈答非所问/事实错误)约 7.2%,引入事实一致度校验后降到约 2.3%;转人工率约 11%,其中被人工确认"拒答正确"的占 94%。
上线一个季度,知识库问答的误答率(员工标记事实错误或不相关)从约 7.2% 降到约 2.3%,降幅明显。转人工率稳定在约 11%,且转人工场景里被人工判定"拒答得当"的比例约 94%,说明边界分得不冤。用户满意度调研里,"回答可信度"一项从 3.4 分(五分制)升到 4.1 分。需要注意的是,拒答率提升会带来一点"答不上来"的体感下降,我们通过话术优化把负面感受压到了最低。数字为脱敏示意值。
第一,RAG 不是接上就能用,可信度校验必须单独做,不能信生成的流畅度。第二,事实一致度回查比单纯看检索分数靠谱得多,是降误答的关键一招。第三,拒答不是失败,是负责任,但边界要可迭代、话术要温和。第四,转人工要带上下文,否则只是把问题甩给别人。这套"置信度评分 + 事实一致校验 + 可迭代拒答边界"的做法,已成为我们所有知识库问答项目的标配。
置信度的计算我们拆成三路信号再加权:检索命中率(是否真检到相关片段)、语义相关度(片段和问题是否真对口)、事实一致度(生成回答里的断言能否在片段中找到支撑)。其中事实一致度是后来补的关键一招——用一路轻量模型把回答拆成若干事实断言,逐个回查检索片段,不支持的断言直接扣分,置信分因此更贴近真实可信度。拒答边界分类器用"规则加样例"双驱动,给标注同学一批正反例持续微调,避免边界写死误伤正常问题。转人工场景我们带上已检索片段摘要,让人工接手时一眼有上下文。
RAG 不是接上就能用,可信度校验必须单独做,不能信生成的流畅度,模型越流畅越容易让人放松警惕。事实一致度回查比单纯看检索分数靠谱得多,是降误答的关键。拒答不是失败而是负责任,但边界要可迭代、话术要温和,冷冰冰的"我不能回答"只会把用户推走。转人工一定要带上下文,否则只是把问题甩给别人,体验并不好。
我们把置信分做成了用户可见的弱提示,比如回答末尾附一句"本回答置信度较高,可参考"或"建议联系对应部门确认",既不吓退用户、又给了判断依据。上线后统计,低置信转人工的场景里约九成四被人工判定为"拒答得当",说明边界分得不算冤。误答率下降带来的直接好处是员工敢用、用得多,周活提问量反而比之前"什么都答"时涨了约三成,因为信任建立了。