AI 游戏的评测体系:评测集、指标与 Bad Case 闭环
传统游戏靠用例断言就能测,AI 游戏的输出每次都不一样。这篇文章讲清楚我们怎么搭评测集、定指标、跑闭环,把「效果好不好」变成可回归的数字。
为什么「感觉还行」不能上线
传统游戏的测试是可断言的:点这个按钮应该跳到那页。AI 游戏不行——同一个输入,两次输出可以完全不同,人试玩半小时觉得「挺像样」,可能只是刚好没碰上坏例子。
更麻烦的是回归。改一句提示词、换一个模型版本、调一次温度,都可能把三个月前修好的问题重新放出来,而没人会记得那个问题长什么样。
评测体系要解决的就是这两件事:把主观判断变成可复现的数字,以及让老问题在被重新放出来时立刻报警。
评测集:分三层,别混在一起
我们所有项目都要维护三份用例集,职责完全不同,混在一起是评测失效的第一步:
| 层级 | 规模 | 用例来源 | 什么时候跑 |
|---|---|---|---|
| 冒烟集 | 30 至 50 条 | 核心玩法的必过场景 | 每次改动,分钟级 |
| 回归集 | 200 至 500 条 | 历史 Bad Case 全量沉淀 | 每次版本发布前 |
| 对抗集 | 100 至 300 条 | 诱导越界、人设破坏、违规试探 | 每周定时 + 发布前 |
冒烟集解决「有没有明显跑不通」,回归集解决「老问题有没有复发」,对抗集解决「会不会被玩家带偏」。三份各司其职,出问题时才知道该找谁。
回归集尤其要强调只进不出:线上发现一个坏例子,修好之后必须以用例形式进集,这是团队唯一不会随人员流动丢失的资产。
指标:五个维度,各自有及格线
「效果好」不是一个指标能说明的。我们固定看五个维度,每个维度都有明确的测法与及格线:
| 维度 | 怎么测 | 及格线 |
|---|---|---|
| 人设一致 | 角色卡关键字段回归比对 | 不低于 95% |
| 安全合规 | 对抗集命中审核规则的比率 | 零容忍,必须 100% |
| 任务达成 | 预设目标是否被推进(脚本判定) | 不低于 85% |
| 趣味与表达 | 人工双评打分,1 至 5 分 | 均分不低于 3.5 |
| 时延与成本 | 单局 P95 耗时与推理消耗 | 不劣于上一版本 |
前三个可以自动化,后两个必须靠人。这里有个原则:能自动化的绝不留给人,不能自动化的绝不假装能自动化。用一个大模型给「有趣」打分可以当辅助,但不能当唯一裁判。
Bad Case 闭环:五步,有明确责任人
评测跑出来的分数只是输入,真正推动质量上升的是闭环。我们的流程固定五步:
- 归集:线上举报、审核拦截、客服工单、评测失败四个来源统一进一个池子,带上原始对话与模型版本。
- 分型:分成提示词问题、检索问题、审核漏放、模型能力四类。分错类型,后面所有动作都会打偏。
- 定级:安全类最高优先级当天处理,体验类进下个版本。
- 修复与验证:修完必须在对抗集和回归集上都通过,才算修复。
- 沉淀:用例进回归集,写清「为什么会有这个问题」。
责任上,分型由算法同学做,定级由项目负责人做,沉淀由提出人做。流程里最容易被省掉的是第五步,而省掉它的团队,半年后会在同一个坑里再摔一次。
版本对比:先控制变量,再谈提升
「新版本比老版本好」这句话,多数时候站不住,因为对比条件没对齐。我们的三条硬性要求:
- 同批用例、同批参数:温度、最大长度、检索配置全部锁定,只改要验证的那一项。
- 固定采样:同一用例跑 3 次取中位结果,避免单次好运气被当成提升。
- 人工双评:主观维度必须两人独立打分,分差超过 1 分的样本进第三人复评,并统计一致率——一致率低于 70% 说明评分标准本身有问题。
如果用模型辅助裁判,必须先拿 50 条人工标注样本校准它的一致率,达标后才能用它的结论。直接拿一个未经校准的裁判去评自己写的提示词,得到的一定是好消息。
三个常见误区
误区一:只看总通过率。总通过率涨 3 个点,可能是安全维度掉了、趣味维度涨了。必须分维度看,且任何一个维度低于及格线就不许发布。
误区二:拿线上真实对话直接当评测集。这些数据未经脱敏,本身就构成二次处理风险;而且线上分布会随版本变化,用旧数据评新版本会得出偏差结论。正确做法是基于线上问题改写成用例。
误区三:评测集只由算法团队维护。策划与运营掌握玩家真实的刁钻玩法。评测集一旦脱离他们,对抗集会迅速过时。
把它当成基础设施,而不是一次性作业
评测体系最大的成本不在搭建,而在维护:用例要随玩法更新,评分标准要随品类调整,回归要接进发布流程。一旦停更,它给出的数字就只是安慰剂。
我们内部有一条简单的判断标准:任何一次模型或提示词变更,如果说不清它让哪个维度涨了多少、有没有让另一个维度掉下去,就不允许进灰度。
星欧开发者平台的沙箱把这套流程做成了默认能力,接入方可以从冒烟集 30 条开始,先跑起来,再逐步补齐回归与对抗集。