Skip to content
YK Blog
Go back

生成式 AI (4):评估 AI 能力的坑

整理自李宏毅 2025「生成式 AI 导论」第 4 讲。你以为跑个 Benchmark 就能比出模型好坏?没那么简单。


1. 为什么要评估

评估流程:准备 N 道题 + 标准答案 → 模型输出 → 打分函数 → 平均分 = Benchmark 分数。


2. 传统评估指标的坑

Exact Match(精确匹配)

标准答案 “3952”,模型输出 “三千九百五十二” → 判错。

只适合选择题,但即使是选择题,模型可能输出 “B:xxx” 而不是单独的 “B”,照样判错。

真正测的可能不是知识,而是”遵从指令”的能力。

BLEU / ROUGE(词汇重叠)

模型输出”诙谐”,标准答案”幽默” → 零分。只看字面完全忽略语义。

BERTScore(语义相似度)

把模型输出和标准答案都丢进 BERT,算 Contextualized Embedding 的相似度。比词汇重叠好,但仍不完美。

古德哈特定律

当一个指标成为优化目标时,它就不再是好指标。

经典案例 鹦鹉模型:一个”换句话说”任务的模型,直接把输入原封不动输出 → 在 BLEU/Meteor 上打败了 SOTA。


3. 幻觉(Hallucination)问题

模型不知道答案时为什么要编?因为标准评估下:

乱猜的期望收益 ≥ 承认不知道 → 模型被训练成”死也不说不知道”。

解法:引入负分。答对 +1,答错 -X,不知道 0。X 足够大时,模型才会诚实。OpenAI SimpleQA 就用了这种机制。


4. 没有标准答案怎么办

人类评估

万能但昂贵。Chatbot Arena:两个匿名模型 PK,人类投票。

人类的偏见:

LLM-as-Judge

用 LLM 代替人类打分。现在 NLP 领域已广泛使用。

提高准确度的技巧:

LLM 评审的偏见:


5. 更多评估陷阱

Prompt 敏感性

同一个 Benchmark,换一种问法,分数可能差 20%。

经典案例:Claude 2.1 被批”长文处理差” → Anthropic 发现只需在 Prompt 里加一句”请找出最相关的句子”,分数暴涨。

实操建议:同一题用多个 Prompt 测试,取平均。

数据泄露

模型训练时可能背过了 Benchmark 的题目。

证据(GSM8K 数学题):

SWE Bench 也有约 10% 的题目泄露。

平均分的局限

系统 A:99% 完美 + 1% 暴走(说胡话)→ 平均 4.95
系统 B:100% 良好(小失真)→ 平均 4.0

选哪个?看场景。捷运广播系统 → 选 B(永不暴走更重要)。


6. 安全性评估

越狱(Jailbreak)

目标:绕过模型的”拒绝回答”机制。

攻击手段:

方法原理
特殊编码用 base64/罕见语言绕过检测
暴力扰动随机换字母大小写/顺序,试几万次总能破
多轮套话先问历史,再问制作方法
说服”我们必须了解伤害才能防止伤害”(逻辑诉求)

Prompt Injection(提示注入)

让模型在执行正常任务时做坏事:

间接注入

攻击指令藏在环境里(网页白色小字、PDF 隐藏文本)。人看不见,Agent 读网页时会读到。


7. 总结:评估清单

维度该注意什么
指标选择别用 Exact Match,语义相似度更合理
幻觉加入负分惩罚
人类评估意识到排版/长度偏见
LLM 评审先小规模人类验证,别让模型评自己
Prompt多种问法取平均
数据泄露换人名/数字看分数是否骤降
安全测试越狱 + 注入攻击

一句话:Benchmark 分数 ≠ 真实能力。理解评估的局限,比追求排行榜第一更重要。


参考



Previous Post
生成式 AI (5):机器学习与深度学习原理
Next Post
生成式 AI (3):解剖大型语言模型