当测试工程师遇上大模型:我在测AI“智商”的那些坑与心得
“有时候,跑完一个大模型的评测,我更像是在帮它做心理测试——看看它究竟聪不聪明,还是只是会背题。”
——一位深夜盯着 MMLU 成绩曲线的测试工程师
一、为什么我们要“测AI的智商”
如果你是测试出身,大概率经历过这样的转型:从测试网页、API、APP,到如今测试大模型。
过去,我们关心的是功能是否正确、接口是否稳定、性能是否达标;
现在,我们要问的是:
- 模型真的懂题吗?
- 它为什么会这样回答?
- 下一次能不能保持一致?
在传统系统测试中,我们追求“可重复的正确性”;
在大模型评测中,我们面对的是概率意义上的正确性。
同一个问题,不同次回答可能不同,它可能“自信地答错”,甚至胡扯。
这也是为什么业界强调 基准测试(Benchmarking):
通过标准化任务集,对不同模型进行量化比较——可以理解为 AI 的期末考试,但没有绝对标准答案,只有分布统计。
测试大模型,和测普通系统完全不同。它不是“对错题”,而是“聪明的概率”,你必须接受模型偶尔会自信犯错的现实。
二、AI测评的前世今生:从单科到全科考试
早期 AI 测试很单纯:图像识别跑 ImageNet,翻译跑 BLEU。
模型就像学生,只考一门课。
但大模型是全能选手,要同时处理阅读理解、推理、编程、对话、规划决策等多任务。
于是评测体系从“单科考试”演化成“综合能力测评”。
| 任务类型 | 代表基准 | 主要考察能力 |
|---|---|---|
| 通识理解 | MMLU | 多领域知识与跨学科理解 |
| 常识推理 | HellaSwag | 日常逻辑与常识判断 |
| 数学推理 | GSM8K | 多步逻辑与算术能力 |
| 编程能力 | HumanEval | 代码生成与语义正确性 |
| 对话指令 | MT-Bench | 多轮对话自然性与指令遵循 |
| 中文语境 | C-Eval / SuperCLUE | 中文理解与文化适应性 |
案例1:MMLU——AI的“高考卷”
MMLU 涵盖 57 个学科,从哲学到医学全覆盖。
它测的不仅是知识,还考迁移能力。
例如,一道法律题可能需要逻辑推理;一道生物题可能考语言理解。
GPT-4 在“人文学科”上的表现往往比逻辑推理好——说明它懂语境,但未必能严谨推理。
我曾看到模型在哲学题上答得比律师还理直气壮,但在概率题上直接把 30% 写成 70%——测评工程师瞬间尴尬。
案例2:HumanEval——让AI写一段能跑的代码
HumanEval 给模型函数描述,让它生成完整实现。评测指标 Pass@k 表示生成 k 次代码中,有多少能通过单元测试。
示例:
def add(a, b):
"""Return the sum of two numbers."""
模型输出:
return a + b
✅ 正确
但有时它写出:
return str(a) + str(b)
❌ 错误——测试直接炸。
Pass@1、Pass@10、Pass@100 的差距,可以直观体现模型对编程任务的稳态与可靠性。
在 HumanEval 上刷榜,有些团队会生成 1000+ 次候选,挑出能跑的,实在是“作弊式测评”。但真实场景中,我们只有一次机会。
案例3:GSM8K——小学数学题也能难倒大模型
例如:
一位老师有 24 个苹果,要分给 6 个学生,每人几颗?
模型输出 4 ✅
但稍复杂的数字或条件,就可能出错。
这暴露了模型的 推理连贯性(Chain-of-Thought) 问题,我们常加提示语 Let's think step by step 来观察改进。
三、我们到底在“测什么”
评测不仅是跑 benchmark 得分,更要建立指标体系,覆盖多维能力。
| 维度 | 示例指标 | 意义 |
|---|---|---|
| 准确性 | Accuracy, F1 | 输出正确程度 |
| 鲁棒性 | Noise-Tolerance, Adversarial Score | 对干扰与异常输入稳定性 |
| 泛化性 | Zero-shot / Few-shot Score | 跨任务推理能力 |
| 多任务 | Multi-Task Success Rate | 多指令处理能力 |
| 效率 | Throughput, Latency | 性能与推理耗时 |
| 对齐性 | Alignment Score | 输出是否遵循目标与规则 |
| 公平性 | Bias Index | 群体或语义偏见检测 |
| 可解释性 | Explainability Ratio | 输出是否可溯源、可理解 |
重点是:分数只是表象,指标体系才是“体检报告”。
⚙️ 系统测评 + 人工测评 + 人工审核
在实际工作中,我把评测分三层:
-
系统测评
- 自动化评测脚本运行 benchmark,计算 Accuracy、F1、Pass@k 等指标
- 保证批量评测的速度和统一性
-
人工测评
- 人工打分、语义匹配判断、复杂推理链的正确性
- 针对中文、文化语境或跨模态任务,系统自动化难以判断
-
人工审核
- 对系统测评和人工测评结果做二次复核
- 记录边界错误、异常样本、生成内容的合理性
- 保证评测报告可信度
我常调侃,系统测评是“机械评分”,人工测评是“老师阅卷”,人工审核是“教务主任复查”。
指标计算示例
基础指标:
[
\text{Accuracy} = \frac{\text{正确样本数}}{\text{总样本数}},\quad
\text{Precision} = \frac{TP}{TP+FP},\quad
\text{Recall} = \frac{TP}{TP+FN},\quad
F1 = 2 \times \frac{Precision \cdot Recall}{Precision + Recall}
]
大模型场景下,语义匹配同样重要,可用 Sentence-BERT 余弦相似度辅助判断。
伪代码:统一评测框架
def evaluate_model(model, task_list):
results = {}
for task in task_list:
data = load_dataset(task)
metrics = []
for sample in data:
output = model.infer(sample["input"])
if requires_human_check(task):
score = human_score(output, sample["label"])
else:
score = compute_metric(output, sample["label"], task)
metrics.append(score)
results[task] = {
"mean": np.mean(metrics),
"std": np.std(metrics)
}
return results
重点是统一输入输出格式、指标可扩展化,同时保留人工审核入口。
四、测 Agent 比测模型更难
Agent 评测是“打仗”,不仅看输出,还要看任务完成度与鲁棒性。
假设金融问答 Agent 问:
“请查苹果公司最新季度净利润,并计算同比增长率。”
合格 Agent 必须:
- 正确解析任务
- 调用外部检索 API
- 抽取净利润字段
- 调用计算器
- 输出结构化结果
任何一步出错,整体失败。
Agent 常用指标:
| 维度 | 指标 | 含义 |
|---|---|---|
| 任务完成率 | Task Success Rate | 是否完成目标 |
| 执行路径鲁棒性 | Step Robustness | 是否稳定,无死循环 |
| 工具调用效率 | Tool Call Latency | 调用耗时与资源利用 |
我曾测过一个 Agent,因为调用 API 时忘记加
timeout,直接死循环了 20 分钟。那一刻,我深刻理解了“AI 测评不是刷分,是盯坑”。
五、那些让人崩溃的“坑”
- 数据污染:模型可能提前见过基准题,测出来的高分其实是背题
- 过度优化:调参刷榜,但真实任务中翻车
- 评测一致性问题:同一 prompt,不同时间、不同种子波动大
- 语言文化偏差:中文任务集表现常低于英文
- 指标不完备:忽略可解释性、安全性
高分 ≠ 可靠,我曾在 TruthfulQA 上拿到 90 分,但实际应用场景仍误判假新闻。
六、未来 AGI 评估新趋势
-
跨模态与通用性
- 评估文字、图像、音频、视频、传感器数据联合推理能力
- 使用“任务簇”或能力向量衡量跨模态迁移与协同
-
长期推理与情境适应性
- 引入时间维度任务链、分步推理、持续性评估
- 测自我纠错与外部纠错能力
-
安全性、对齐与伦理性常态化
- 嵌入价值观一致性、滥用防护、隐私保护、偏见公平性
- 使用独立评估者、可复现评测脚本与数据集
-
可持续性与资源效率
- 报告单位推理或任务能耗、延迟、内存占用
- 对比不同架构、训练策略的资源利用率
-
开放性、可重复性与基线多样性
- 公开数据集、评测脚本、日志
- 使用多元基线集合与统计显著性分析
-
动态、持续更新的评估生态
- 版本化评测集,定期更新任务
- 社区共创评测挑战,提升适配性
-
人机协作与用户体验导向
- 关注可用性、信任度、协作效率
- 评估过程透明度、操作可控性
-
数据安全与隐私保护
- 使用合成或去标识化数据
- 定期检测模型记忆泄露与数据隐私风险
七、实践建议(落地可操作)
- 设计多维评估框架:整合模态、时序、资源、对齐、安全、用户体验
- 建立可复现评测流水线:数据集、脚本、基线、指标、报告模板
- 关注可扩展性与透明性:开源工具与数据,便于同行复现
- 定期审视与更新评测集:防止过拟合、数据漂移
- 设立伦理与合规审查:隐私、数据安全、公平性
简单来说,我们不仅在测分数,更在测模型能否被信任、在真实场景中可靠工作。
八、实战案例:一次真实测评经历
背景:一个金融大模型,要求预测股票价格趋势,并给出理由。
测评发现:
- 模型在新闻摘要上表现极佳,但在历史数据趋势预测上全程“胡扯”
- Chain-of-Thought 提示词改善准确率约 20%
- 自动化指标显示 F1=0.78,但人工审核发现逻辑漏洞高达 40%
- Agent 版本调用外部 API 时,超时未处理导致 3 次任务失败
经验总结:
- 自动化评测不能完全依赖
- 人工复核必须纳入流程
- 提示词设计与多轮 Chain-of-Thought 对结果影响巨大
九、写在最后
有人问我:“做大模型测试有什么意义,厂商都会自吹分数。”
我回答:
“评测不是为了证明谁强,而是让我们知道——模型的‘聪明’,到底能不能被信任。”
每一份 benchmark、每一行日志、每一条异常,都是理解 AI 极限的脚印。
测试工程师不仅在验收智能,更在守护智能的可信度。
更多推荐



所有评论(0)