从声明到 Benchmark 契约
本节目标
从一个实际决策反推 Benchmark 的声明、被测对象、非目标、成功标准和版本边界,避免先收题再猜分数代表什么。
直觉解释
温度计只有在量程、校准和使用条件明确时才有意义。Benchmark 也一样:相同的“85 分”可能来自不同用户、不同提示、不同工具权限和不同评分器,无法直接比较。契约就是提前冻结测量条件,并说明证据能支持到哪里。
核心概念
- Benchmark 声明:准备支持的、可证伪的比较结论。
- system under test(SUT):实际被测边界;可能是裸模型,也可能是提示、检索、工具和重试组成的应用。
- scenario:任务、用户、环境和适配方法的组合。
- protocol:如何运行,包括输入、提示、预算、随机性、超时、重复次数和失败处理。
- non-goal:本基准明确不测或不能推断的能力。
- validity:当前设计是否真的支持预定解释,而不只是能算出数字。
先分清三类工程对象
| 对象 | 主要问题 | 数据时间尺度 | 典型输出 |
|---|---|---|---|
| 评测体系 | 某个产品改动是否达到开发、回归或发布目标? | 随产品快速迭代 | PASS/REVIEW/BLOCK与失败诊断 |
| Benchmark设计 | 哪个系统在冻结的长期协议下更好,结果能否跨团队复现? | 稳定版本与明确换版 | 可比结果、报告卡和排行榜 |
| 运行监控 | 线上真实流量现在是否健康、漂移或发生事故? | 连续流式 | SLO、告警、事件与回灌样本 |
同一case可以先用于产品回归,成熟后进入Benchmark;线上失败也可以脱敏后成为新case。但运行监控的自然流量、延迟标签和动态环境不能直接冒充冻结的跨系统比较。
从声明拆到能力与测量对象
“客服能力”太宽。先拆成可观察的能力,例如意图识别、信息检索、工具选择、参数正确、最终状态、安全拒绝和错误恢复,再为每项指定测量对象:输出文本、工具轨迹、数据库状态或资源记录。能力拆解不是为了凑更多分数,而是为了定位证据:若最终状态正确但发生越权读取,任务质量和安全必须分开评分。
分步骤方法
- 写出要做的决策,例如“为中文客服只读查询选择候选 Agent”。
- 指定目标用户、时间范围、语言、工具权限和部署环境。
- 明确比较对象及 SUT 边界:同一模型不同提示,还是不同完整系统。
- 写关键收益、不可接受风险和运行约束。
- 说明证据来源:真实留出、专家案例、合成压力集或在线回放。
- 写至少三个非目标,例如不评估退款写操作、不评估英文或不推断生产满意度。
- 把能力映射到可验证的输出、轨迹或环境状态,并写Unknown/失败处理。
- 为契约分配版本;任何会改变分数解释的修改都要升版本。
一个可操作的声明:
在 2026-Q3 中文订单查询场景、相同只读工具和调用预算下,比较候选与冻结基线的任务成功、越权风险、P95 时延和调用次数;证据来自按意图与输入状态分层的冻结离线集。该结果不代表退款写操作、其他语言或真实线上转化。
示例
下面的 Benchmark card 骨架把“题库”提升为契约:
id: order-agent-readonly # 供结果、报告和版本迁移稳定引用的 Benchmark 身份。
version: 1.0.0 # 改变任务含义、协议或评分时必须递增该版本。
claim: 比较中文只读订单查询的任务成功与风险 # 明确可由本 Benchmark 支持的唯一结论。
system_boundary: prompt + model + tools + retry_policy # 固定被测系统,避免把模型与完整应用混为一谈。
population: 2026-Q3 中文客服查询 # 描述证据覆盖的人群、时间与语言边界。
primary_metric: task_success # 指定排行榜的主质量指标,其他指标不能被它掩盖。
critical_gates:
- no_write_action # 写操作属于不可由平均分抵消的安全硬门。
resource_metrics:
- latency_ms # 记录端到端时延资源代价。
- tool_calls # 记录工具使用规模,发现不必要的执行路径。
non_goals:
- 退款写操作 # 明确不把只读证据外推到有副作用任务。
- 英文任务 # 明确语言覆盖边界。
- 线上满意度推断 # 离线测试不能直接证明线上业务效果。常见错误与排查
- 名字写“通用智能 Benchmark”:列不出目标用户和任务空间;缩小声明。
- 模型与应用混测:一个系统带 RAG,另一个没有,却声称比较模型知识;重新定义 SUT。
- 先看结果再改权重:等同于对测试集调参;冻结指标后再运行候选。
- 单一总分承载一切:把关键风险设为 gate,其他指标独立报告。
- 版本只改数据文件名:协议或 grader 改变也会改变含义,必须进入版本记录。
练习
- 把“比较两个 RAG 谁更好”改写为包含人群、语料时间、引用要求和非目标的声明。
- 分别为“裸模型”和“完整客服 Agent”画出 SUT 边界。
- 为一个 OCR Benchmark 写三个不能从分数推断的结论。
自测
- 为什么同一数据上的两个分数也可能不可比?因为提示、预算、工具、解码或 grader 可能不同。
- non-goal 是否只是免责声明?不是,它防止使用者把有限证据外推到未覆盖情形。
- 修正文案算不算升版本?若不改变输入、输出或评分含义,可只修补丁;若会改变解释,则需要显式版本变化。
小结与下一步
Benchmark 从声明和契约开始,题目与指标都要服务于预定决策。下一步用 任务空间、代表性与分层 把目标场景展开为可审计覆盖。
参考资料
- NIST AI RMF Core:Map与Measure(获取日期:2026-07-14)
- HELM原始论文(获取日期:2026-07-14;方法论来源)
- HELM官方仓库(获取日期:2026-07-14;官方注明自2026-06-01进入maintenance mode)
- BetterBench原始论文(获取日期:2026-07-14)