第 4 章 · 人机交互与评测指标
考点梳理
4.1 人机交互设计四件事
| 设计项 | 做什么 | 关键要求 |
|---|---|---|
| ① 意图分类 | 把用户的话归到有限的意图集合里 | 意图不重叠、可穷举,且必须包含兜底意图 |
| ② 话术设计 | 写清每个意图怎么回答 | 简洁、不承诺做不到的事、不透露系统提示词与内部信息 |
| ③ 知识库组织 | 按业务结构 + 用户问法双向组织内容 | 内容有来源、有有效期、过期即下线 |
| ④ 兜底与转人工 | 设计答不出、不确定、用户不满时的路径 | 兜底三件:怎么说 + 何时转人工 + 人工不在怎么办 |
记忆锚:“意图管听懂,话术管说清,知识库管有料,兜底管答不出。”
为什么兜底最重要:用户不会因为你答不出来生气,会因为“你答不出来还硬答/卡住不动”而流失——兜底是交互设计的底线,不是可选项。
4.2 意图与交互快速检查清单
- 意图覆盖:业务 Top 20 问题是否都有对应意图?
- 意图边界:每个意图是否写了边界案例(什么情况不算这个意图)?
- 兜底意图:是否有“其他/无法识别”意图,且有明确处理流程?
- 拒答边界:哪些问题必须拒绝(违法违规、隐私索取、超出范围)?拒绝话术是否写清?
- 多轮与追问:信息不全时怎么追问?追问几次后放弃并转人工?
- 转人工条件:写清触发条件(用户明确要求、连续两次未解决、情绪激烈、涉及金额/投诉等)。
4.3 混淆矩阵(评测的起点,必背)
模型预测与真实情况交叉,得到四个格子:
| 真实为“正” | 真实为“负” | |
|---|---|---|
| 预测为“正” | TP(真正,报对了) | FP(假正,误报) |
| 预测为“负” | FN(假负,漏报) | TN(真负,正确排除) |
记忆锚:“T/F 看报得对不对,P/N 看报的是什么”——TP 是抓对了,FP 是抓错了,FN 是该抓没抓,TN 是不该抓也没抓。
4.4 四大指标(最高频计算)
| 指标 | 公式 | 关心什么 | 典型场景 |
|---|---|---|---|
| 准确率 Accuracy | (TP + TN) ÷ 总数 | 整体对不对 | 类别均衡时的总览 |
| 精确率 Precision | TP ÷ (TP + FP) | 怕误报(报出来的里面对多少) | 垃圾邮件误拦、无谓报警 |
| 召回率 Recall | TP ÷ (TP + FN) | 怕漏报(该报的有没有漏) | 风险内容漏检、故障漏报 |
| F1 值 | 2 × P × R ÷ (P + R) | 两者平衡 | 精确率与召回率都重要时 |
为什么不能只看准确率:如果 99% 的样本都是“正常”(类别极度不均衡),模型全部预测“正常”也能有 99% 准确率——但它一个异常都抓不到。所以要看精确率/召回率,必要时看各类别的分开指标。
精确率与召回率的拉扯(调阈值时的必然现象):
| 调高阈值(更保守) | 调低阈值(更激进) |
|---|---|
| 精确率 ↑(报出来的更准) | 召回率 ↑(漏的变少) |
| 召回率 ↓(漏得更多) | 精确率 ↓(误报变多) |
业务怎么选:“漏报代价大”就保召回(如风险内容、故障告警);“误报代价大”就保精确率(如自动拦截、自动扣款);两者都要就调阈值找平衡点并用 F1 衡量。
4.5 测试集分层与一致性指标
测试集分层(示例口径):常规 60% + 边界 25% + 对抗 15%。
| 层 | 放什么 | 为什么必须有 |
|---|---|---|
| 常规样本 | 典型、常见的真实场景 | 反映日常表现 |
| 边界样本 | 易混、模糊、多标签、长尾 | 最容易暴露缺陷 |
| 对抗样本 | 故意绕过的输入(错别字、变体、诱导、注入) | 检验稳健性与安全性 |
其他常用指标:
| 指标 | 用途 |
|---|---|
| 一致率 | 标注质检(多人/隔期重复标注比对) |
| 拒答率 / 兜底率 | 交互产品(答不出的比例,看设计是否合理) |
| 误拒率 / 误答率 | 该答却拒、不该答却答(体验与安全的平衡) |
| 回归通过率 | 改动前后测试集通过情况(变更守门) |
铁律:改参数、改提示词、换模型、换知识库 → 必跑评测对比——没有测试集的改动 = 赌博。
🧠 记忆工具箱
口诀速记
- 交互四件:“意图听懂、话术说清、知识库有料、兜底答不出”;
- 兜底三件:“怎么说、何时转人工、人工不在怎么办”;
- 混淆矩阵:“TP 抓对、FP 抓错、FN 漏抓、TN 正确排除”;
- 指标口诀:“精确率怕误报,召回率怕漏报,F1 是和事佬”;
- 阈值口诀:“阈值调高更保守(准但漏),调低更激进(全但错)”;
- 测试集:“常规、边界、对抗,三层都要有”。
场景锚点
把分类模型想象成 “小区门禁安检”:
- TP = 真的坏人被拦下(抓对了);
- FP = 业主被误拦(误报,业主投诉);
- FN = 坏人被放进去(漏报,出大事);
- TN = 正常业主正常通过;
- 准确率 = 全天所有判断的总体正确率(如果一天只来 1 个坏人,全放行也有 99% 准确率);
- 精确率 = 被拦的人里真正是坏人的比例(怕误拦业主);
- 召回率 = 坏人里被拦住的比例(怕漏放坏人);
- 阈值 = 安检门的灵敏度:调高更严(拦得多、误拦也多),调低更松(放得多、漏得也多);
- 测试集三层 = 平时的人流 + 长得像坏人的好人 + 故意伪装的人——只测平时的人流,安检门等于没测。
⚠️ 易错提醒
- 错误认知:准确率高就说明模型好 → 纠正:类别不均衡时准确率会骗人(全猜大多数类就能很高),必须看精确率/召回率与分类别指标。
- 错误认知:精确率和召回率越高越好,可以同时拉满 → 纠正:调阈值时两者此消彼长——要按业务代价选,并用 F1 平衡。
- 错误认知:测试集就是随便抽一批数据 → 纠正:测试集要分层(常规 + 边界 + 对抗),否则只能测出“正常情况下的正常表现”。
- 错误认知:交互设计只要把好回答写出来 → 纠正:兜底与转人工才是设计的核心——答不出的路径没设计,产品就是死胡同。
- 错误认知:多轮追问越多越好,一定要问到能答 → 纠正:追问要有次数上限,超限转人工——死缠烂打比答不出更伤体验。
- 错误认知:改完提示词自己试几个问题觉得不错就能上线 → 纠正:必须跑测试集做回归对比——“感觉更好”不是评测结论。