FDE Training · Module 06

06

评估体系 Evals

模块 06 · 评估体系 Evals

本章目标:客户质疑"你这个 AI 到底准不准、稳不稳、值不值"时,你能用数据回答,而不只是说"我们调过了"。Evals = 构建评估集 + 自动/人工评测 + 量化指标 + A/B 验证。这是把 AI 项目从"demo"推向"生产交付"的分水岭。


6.1 为什么 FDE 必须会做评估

没有评估,你会陷入三个死循环:

  1. 客户说"不准",你却不知道是哪不准、差多少,只能瞎调。
  2. 你改了一个 Prompt,不知道整体是变好还是变差(只顾眼前那个样例)。
  3. 上线拍脑袋,出问题无据可查。

有了一套评估:你能说"我们这个合同审单,在 200 条真实样例上准确率 96%,超额我们的 95% 目标;其中 3 条误判全部来自扫描 PDF",客户一听就服气。


6.2 评估集(Dataset)怎么建

6.2.1 三大来源(从靠谱到省事)

来源 优点 注意
真实生产数据 最贴合客户 要脱敏(模块 07),别泄露隐私
业务专家标注 质量高、有"标准答案" 贵、慢,请客户业务专家参与
合成/自动生成 快、量大 可能不符合真实分布,只作补充

6.2.2 一份评估样例长这样

{
  "id": "case-001",
  "query": "这笔合同违约金比例是否符合公司标准?",
  "context": "合同第5条:违约金XX?公司标准文件...",
  "expected": "违约金比例超出标准,存在合规风险,建议人工复核",
  "tags": ["合规", "违约金", "扫描PDF"]
}

好评估集的标准:覆盖常规 + 边界 + 错误输入;每类问题够多(几十条起);答案由懂业务的人把关。


6.3 评测怎么做:自动评测 + 人工评测

6.3.1 自动评测(快,先跑全量)

  • 规则/字符串匹配:回答是否为指定 JSON、是否含关键字段、是否引用来源。
  • LLM-as-Judge(用另一个模型打分):适合主观的"忠实度、相关性、含金量"。
def judge_faithfulness(generated, context):
    # 用更稳的模型判断: 生成内容是否都能从 context 中找到依据
    prompt = (
        "判断回答是否完全基于给定资料(不能编造资料外信息)。只输出 1(忠实)/0(不忠实)。\n"
        f"资料:{context}\n回答:{generated}"
    )
    ...  # 调用评审模型,解析 0/1

6.3.2 人工评测(贵,抽样精评)

  • 谁来看:客户业务专家 + FDE 一起看,尤其重要业务(合同、法务、医疗)。
  • 看什么:准确率之外,看语气、逻辑、可解释性、行业习惯——机器打分看不全。
  • 做法:抽样(如每类 10 条),人打"对/错/存疑",FDE 汇总成指标。

推荐闭环:自动评测全量跑 → 异常/低分样本 → 人工精评 → 汇总成报告给客户。


6.4 评估维度(指标背下来)

FDE 交付要同时覆盖"技术维度"和"业务维度":

类别 指标 人话
准确性 准确率、精确率、召回率、F1 对几个
幻觉 忠实度、幻觉率 有没有编造资料外内容
召回 Recall@K、命中率 RAG 该查到的查到了没
合规 合规率、越权率 有没有碰不该碰的/说不该说的
业务 业务指标(如审单耗时、通过率) 客户最终关心的数字
稳定性 相同输入多次答一致吗 会不会这次过、下次判拒

关键提醒:客户最终看的是业务指标。技术指标(准确率)要通过业务指标说话——"准确率 96% = 每月少 800 次人工复核、省 X 小时"。

补一段:精确率 vs 召回率,以及 F1 为什么用"调和平均"

先说清混淆矩阵的四格(以"审单找风险条款"为例):

  • TP 真阳:真是风险、也判对了。

  • FP 假阳:不是风险、却误报成风险(浪费人工复核)。

  • FN 假阴:真是风险、却漏判了(最危险)。

  • TN 真阴:不是风险、也判对了。

  • 精确率 Precision = TP / (TP + FP):报出来的"风险"里,有多少是真的。假阳多 → 精确率低。

  • 召回率 Recall = TP / (TP + FN):真正的风险里,被揪出来多少。假阴多 → 召回率低。

这俩常打架:想不漏(高召回)就得报得宽、宁错杀(精确率掉);想别误报(高精确)就可能漏掉(召回率掉)。F1 = 2·P·R / (P+R) 用"调和平均"而不是算术平均,原因是它对"短腿"更敏感:只要 P 或 R 里有一个特别低,F1 就被狠狠拉低。比如 P=0.9、R=0.1,算术平均是 0.5 的"假及格",调和平均只有约 0.18——逼你两条腿都得硬。

小示例(按混淆矩阵换算,纯手算思路):

TP, FP, FN, TN = 80, 10, 20, 890   # 1000 个条款审出来的四格
precision = TP / (TP + FP)          # 80 / 90 ≈ 0.89
recall    = TP / (TP + FN)          # 80 / 100 = 0.80
f1        = 2 * precision * recall / (precision + recall)
print(round(precision, 2), round(recall, 2), round(f1, 2))  # 0.89 0.8 0.84

完整的混淆矩阵、类别不平衡陷阱(99 正常 + 1 欺诈时准确率会骗人)和 sklearn 一键算 F1,去 Python 机器学习与深度学习 页补。算法与 AI 讲模型评估与调优的整体思路,也值得串着看。


6.5 用指标体系驱动"调优→回归"流程

建评估集 → 跑基线评估 → 优化(改Prompt/调RAG/换模型)
        → 全量回归 → 对比前后指标 → 通过才上生产
  • 回归:每次改动(哪怕只改一句话)都重跑评估集,防止"改了这里、崩了那里"。这是 FDE 的肌肉记忆。
  • 只调优不动评估集:评估集是"标准答案",不能为了好看偷偷改标准(那是自欺欺人)。

6.6 A/B 实验:用数据选方案

客户换个模型、换个 Prompt 策略时,别拍脑袋,用 A/B:

  1. 分流:把用户请求按比例分到 A(旧方案)/B(新方案)。
  2. 看两组业务指标:准确率、满意度、耗时、成本。
  3. 下结论:B 显著更好才切;数据不足就再跑样本量。
# 简单分流示意
def split(user_id):
    return "B" if (hash(user_id) % 100) < 20 else "A"   # 20% 到 B

A/B 的意义:用"同一份用户流量"对比,能排除时间差异,结论可信。别为了炫技做 A/B,客户真要的是"上线更稳更省"。


6.7 把评估结果"翻译"给客户听(软技能结合)

客户不在意你用了多少 token,在意结果和风险。现场汇报可以这样给:

  • "我们建了 200 条真实合同样例的评估集(已脱敏)。"
  • "当前审单准确率 96%,常见误判集中在扫描 PDF 识别,我们已把这类单独标注。"
  • "不改不失衡:全程忠实度 100%,没有编造资料外结论。人工抽查 20 条 100% 达标。"
  • "上线后我们继续监控业务指标 + 每周回归 + 重训/调优同步跟进。"

6.8 模块练习

  1. 每个收集 20 条"真实/边界/错误输入"三类问题,建一个 JSON 评估集文件。
  2. 实现一个规则自动评测(校验是否输出合法 JSON + 关键字段),跑通你的评估集。
  3. 实现一个 LLM-as-Judge(忠实度),对比 5 条正常 + 5 条故意编造的,验证评审判别力。
  4. 定义一套 6 维度指标表,给自己上一个 RAG 项目打个分(含业务指标换算)。
  5. 设计一次 A/B:新旧两版 Prompt 各 100 请求,写清楚怎么分流、看什么指标、怎么下结论。

6.9 本章面试题

  1. "你怎么证明你的 AI 系统是可靠的?" → 答:三步——建覆盖常规/边界/错误输入的评估集 → 自动+人工双重评测 → 用准确率/忠实度/召回/合规/业务指标量化,并持续回归 + A/B。用数据说话,而非"我们调过"。
  2. "LLM-as-Judge 可靠吗?有什么坑?" → 答:适合主观维度且速度快,但可能偏袒更长/更自信的输出、受评分辞令干扰;要用稳定的评审模型、给清晰判分标准、抽样人工校准,别只依赖它。
  3. "改了个 Prompt,你如何确认整体没变差?" → 答:改前跑基线评估集,改后全量跑同一个评估集,逐维度对比;只调优不动评估集。若出现回退,回滚或继续调。
  4. "技术指标好但客户不满意,可能为什么?" → 答:很可能技术指标的"准"没转成客户在意的业务结果(如审单通过率、出错影响、耗时、可解释性);要回到业务指标去对齐,而不是埋头堆准确率。
  5. "评估集会不会做成测好不做好?怎么防止?" → 答:会,叫"过拟合评估集"。要定期用生产新数据扩充、业务专家复核标准答案、分层抽样、人工抽样查漏,避免只针对老样例调优。

6.10 小结

  • Evals = 评估集 + 自动/人工评测 + 指标 + A/B,是"别只说调过,上数据"的手段。
  • 业务指标 > 技术指标:客户要的是订单提速、省钱、少出错,不是准确率百分比本身。
  • 只调优不动评估集;每次改动全量回归。
  • A/B 用同一份流量对比方案,结论可信。
  • 评估结果要能翻译成客户听得懂的结论和风险。下一章:安全、隐私与合规——金融/政务客户的门槛。

延伸阅读 · 去本站教学页补齐基础

  • 算法与 AI——模型评估与调优的整体思路,理解评估为什么要分层、分维度。
  • Python 机器学习与深度学习——准确率、精确率、召回率、F1、混淆矩阵的完整定义与 sklearn 实现。
本页由 FDE 培养课程文档生成,完整课程见 FDE 培养 · 课程总览。