Agent & RAG 测试工程笔记 08:拒答准确率从 70% 到 100% 的优化
前言:
在上一版(v0.2-regression-baseline)中,为 RAG Copilot 建立了 20 条回归用例:
-
10 条应答(ANSWER)
-
10 条应拒(REFUSE)
回归结果:
Overall:80%
ANSWER:90%
REFUSE:70%
问题也很明确:
系统在“该拒答的场景”下不够稳定。
一、问题定位:误答都发生在哪?
分析失败用例后发现一个共性:
它们几乎都是方法型问题:
-
如何使用 Transformer?
-
RAG 系统中如何使用 embedding?
-
temperature 参数如何设置?
而 demo.pdf 文档中:
-
提到了“大模型”
-
提到了“RAG”
-
提到了“模型”
但并没有任何步骤、参数说明、代码示例。
关键词检索命中了“模型”“RAG”等泛词,
系统误以为“证据充分”,进入 ANSWER 分支。
本质问题:
命中 ≠ 可答
二、思路:加一道“证据门槛”
不改检索逻辑,
不引入 embedding,
不增加模型。
只做一刀式优化:
Step 1:识别方法型问题
判断 question 是否包含:
如何 / 怎么 / 怎样 / 实现 / 设置 / 使用
(同时排除“什么是 / 如何定义”等定义型问题)
Step 2:检查是否存在方法证据
在 top_chunks 拼接文本中,是否包含:
步骤 / 参数 / 示例 / 代码 / 例如 / 如下 / 方式 / 可以通过
Step 3:Gate 逻辑
若:
is_howto_question == True
AND
has_howto_evidence == False
则:
[DECISION] REFUSE reason=evidence_insufficient
直接拒答,不进入模型生成。
三、优化后回归结果
优化后再次运行回归集:
Overall:100% (20/20)
ANSWER:100%
REFUSE:100%
所有误答被修复。
关键点:
没有追求“更聪明的模型”,
而是增加了“更明确的边界”。
四、为什么先这样做,而不是调参?
如果继续深挖,可以做:
-
embedding 相似度过滤
-
二次模型判断 answerability
-
语义规则增强
但那会把系统复杂度指数级拉高。
本次优化只做:
规则增强 + 回归验证 + 打 tag 固化版本
这是常见的工程闭环:
-
建立回归基线
-
分析失败模式
-
精准补刀
-
回归验证
-
版本冻结
五、版本记录
本次优化已打 tag:
v0.3-refuse-gate
GitHub 地址:
👉 https://github.com/test202005/project2_mvp/releases/tag/v0.3-refuse-gate
六、当前系统状态
-
关键词检索(2-gram scoring)
-
最小决策断言(ANSWER / REFUSE)
-
方法型证据 Gate
-
20 条黄金回归集
-
全绿回归
这是一个稳定的“可控 RAG MVP”。
下一步,会开始考虑:
-
是否引入向量数据库
-
是否增加 answerability 二层判定
-
是否做多文档场景测试
但在进入新阶段之前,
先把边界打稳。
更多推荐


所有评论(0)