能力契约与选择对象
本节目标
把“选一个好模型”改写为可验证的任务、系统边界和候选变更单元。
核心概念
能力契约不是厂商功能清单,而是模型在指定输入分布、调用配置和 runtime 中必须满足的可观察行为。最小契约包含:
| 维度 | 必须写清的问题 | 可验证证据 |
|---|---|---|
| task | 用户真正要完成什么?失败代价是什么? | case、期望 outcome、严重度 |
| input | 语言、长度、模态、脏值与对抗输入是什么? | 冻结样本与切片 |
| output | 自由文本、schema、引用还是 tool proposal? | validator、rubric、环境终态 |
| system | prompt、RAG、工具、预算和重试怎样固定? | harness 版本与配置 hash |
| operations | 延迟、吞吐、成本、区域、保留和 SLA 是什么? | telemetry 与合同证据 |
| change unit | 比较模型权重、模型 ID,还是完整系统版本? | 可回滚 release manifest |
模型、prompt、工具描述、采样参数和检索器会互相作用。若一次同时改变它们,就无法把差异归因给模型。
选择对象必须能重新辨识
请求中的模型别名不一定是固定快照:有的供应商把 latest 指向可替换的当前版本,有的把版本 ID 固定到某个模型快照;即使权重不变,路由、安全层或其他服务基础设施也可能改变可观察行为。因此不要只在报告里写“用了某某模型”。每个 trial 至少记录请求的模型标识、响应中实际返回的模型/版本(接口提供时)、端点/区域、API/adapter 版本、日期和采样配置。模型生命周期、能力声明或运行时控制面变更后,应重新运行契约测试,而不是沿用旧结论。
为什么需要
公开 benchmark 只能覆盖有限场景。HELM 的方法价值在于显式列出场景、指标和缺口,而不是提供一个可直接采购的总榜。你的任务可能包含内部术语、特殊权限和真实副作用,公开均值无法代替这些证据。
同时要先建立非 LLM baseline:规则、搜索、较小模型或固定 workflow。若它已经达到质量与风险要求,增加更强模型未必有净收益。
怎样实现
先写一页 decision brief:
decision: 为工单分流与受限工具建议选择生成模型 # 用一句话限定这次决策服务的业务场景。
unit: pinned-model-id + prompt-v7 + tool-schema-v3 # 把模型、提示和工具契约一起固定,避免只比较模型名。
must: # 列出任何一项不满足就不能入围的硬约束。
- 中文工单结构化输出通过 JSON Schema # 先要求输出形状可由程序验证。
- 只能从 allowlist 提议工具 # 防止模型临时发明或越权选择工具。
- 数据不用于训练且保留不超过约定天数 # 将数据处理承诺写成可核验条件。
measure: # 列出比较候选时要收集的原始指标。
- 严重工单召回率 # 关注高影响工单不能被漏掉。
- schema 通过率与 tool 参数正确率 # 分开检查格式正确与动作参数正确。
- p50/p95 延迟、单 trial 成本 # 同时记录典型、尾部延迟和单次成本。
gate: # 给关键指标设置是否允许继续的最低门槛。
- task_success >= 0.75 # 任务成功率低于此值时不能进入下一轮选择。
- structured_output_valid >= 0.95 # 仅当结构化输出是 required capability 时才启用此门槛。
- tool_success >= 0.90 # 仅当工具调用是 required capability 时才启用此门槛。
baseline: 规则分类器 + 人工处理 # 用较简单且可回退的现有方案作为比较基线。
rollback: 回到上一 release manifest # 明确失败后恢复到哪份已验证发布记录。候选发现可以参考模型卡、官方目录和公开 benchmark;入围则必须通过你自己的契约与硬门槛。capabilities: [structured-output] 只能说明候选值得探测,不能代替实测 schema 通过率。
常见失败
- 用“通用智能更强”代替任务和失败定义。
- 把模型名当选择对象,却在候选间使用不同 prompt、重试或工具。
- 用
latest或预览别名完成评测,却把它当作可长期复现的固定版本。 - 只与其他 LLM 比,不保留规则/人工 baseline。
- 把 demo 成功当能力证明,没有冻结 case 和失败切片。
- 未固定模型 ID、日期和 serving 配置,结果无法复现。
怎样验证
让未参与设计的人仅凭 brief 回答:什么候选会被淘汰、什么指标决定上线、怎样复跑、怎样回滚。若答案依赖口头补充,契约仍不完整。
实践任务
选一个真实 Agent 步骤,写出 10 个典型 case、5 个困难 case、3 个禁止动作和一个非 LLM baseline。为每个 case 指定 outcome 证据,不允许使用“感觉更好”。
参考资料
- HELM
- Liang 等,Holistic Evaluation of Language Models
- Mitchell 等,Model Cards for Model Reporting
- Gemini API 模型版本命名:稳定、预览、
latest与实验模型的变更语义示例。 - Claude 模型 ID 与版本:固定模型 ID 与仍可能变化的服务基础设施边界示例。