← 返回题目列表

模型发布前 Canary Evaluation 有什么作用?

中等 第 22 / 26 题 更新于 2026/09/17

简化版

Canary Evaluation 是发布链路中的快速预警层:用一小组高信息量样本,在模型、Prompt、工具或安全策略变更后立即检查关键能力是否断裂。它适合发现模型不可用、格式全错、工具调用失败和严重安全回归。

Canary Set 应覆盖每个关键链路和历史事故,但不能替代完整评测,因为样本小,无法精确估计 1% 级别差异。通过 Canary 后还要跑核心回归、完整离线评测和线上小流量灰度。

Canary 的目标是“尽快发现明显坏版本”,不是“用几十道题证明版本已经足够好”。

详细版

发布漏斗可以设计为:

静态检查/单元测试
  -> Canary Eval(分钟级)
  -> Core Regression(小时级)
  -> Full Eval + 人评/红队
  -> 线上 1% 灰度
  -> 逐级放量

例如 Canary 有 80 条,包含 20 条基础问答、15 条 RAG 引用、15 条工具调用、15 条安全边界、15 条历史事故。只要高严重度样本失败 1 条就阻断;普通能力可允许不超过 2 条新增失败。阈值应按风险预设,不能看到结果后临时解释。

特性Canary Eval完整离线评测线上 Canary
数据固定小集合大规模分层集合真实小流量
速度分钟级小时或天级依赖观测窗口
目标快速发现断裂量化效果与风险验证真实系统
局限统计能力弱成本高会影响真实用户

完整版教学

1. 为什么发布前需要快速预警层

大模型系统包含模型、Prompt、检索、工具、模板和过滤器。一个小配置错误可能让所有请求失败,没有必要等完整评测跑几小时才发现。

Canary 把高敏感样本放在最前面,以较低成本阻断明显错误,缩短开发反馈回路。

2. Canary 样本应该如何选择

优先选择能代表关键接口、历史上发生过严重回归、对配置错误敏感且评分确定的样本。不要随机从完整集抽几十条就称为 Canary。

关键业务路径 + 高风险边界 + 历史事故 + 每类一个结构探针

样本之间要低冗余,让每一条覆盖不同故障模式。

3. 为什么不能只选“最难题”

极难题本来就可能不稳定,会造成频繁噪声告警;Canary 更需要稳定、可诊断和能快速指向根因。

可以包含少量能力边界题,但核心应是“此前稳定通过,一旦失败就值得调查”的锚点。

例如复杂开放推理题可能因措辞差异频繁翻转,而一个固定工具 Schema 探针能准确暴露接口断裂。前者更适合完整能力集,后者更适合高频 Canary。

4. 门禁阈值怎样设计

按严重度设置不同规则。安全越权、错误副作用等可零容忍;普通文风轻微下降可用加权分数判断。

严重度示例推荐动作
Critical越权执行、敏感信息泄露任一失败立即阻断
High核心政策答错、工具状态误报极低容忍并人工复核
Medium信息不完整、格式偶发错误与基线比较阈值
Low措辞与排版偏好记录但不一定阻断

阈值和豁免流程应写入发布策略。

5. 如何减少随机波动造成误报

固定模型版本、解码参数和工具 Mock;必要时对随机生成使用多个 Seed。客观项优先确定性评分。

对偶发失败可自动重试一次用于诊断,但门禁要明确以首次还是多数结果为准,不能无限重试到通过。

6. Canary 失败后如何定位

记录每个样本的模型输入、检索结果、工具 Trace、输出、评分器版本和基线 Diff。按失败聚类判断是全局配置、某能力还是单题真值问题。

只有一个红灯而没有可复现 Trace 的 Canary,会拖慢发布而不是加快反馈。

失败报告应直接链接到责任模块和历史通过版本。

7. Canary Set 如何维护

集合要稳定以便比较,但线上重大事故应转化为新探针。新增前做去重,过期政策样本要版本化更新。

控制规模,若持续膨胀到完整评测的体量,就失去快速价值。可定期移除已被更强探针覆盖的冗余样本。

8. 与 Smoke Test 有何区别

Smoke Test 通常验证系统能运行,如接口返回、JSON 可解析;Canary Eval 进一步检查少量语义质量和安全行为。实践中名称可重叠,重要的是明确覆盖和失败动作。

建议把纯确定性接口检查放在更前层,使 Canary 预算集中在模型行为。

9. 与线上灰度有什么区别

发布前 Canary 使用受控离线数据,不影响真实用户;线上 Canary 把少量真实流量导向新版本,能暴露分布和基础设施问题,但有真实风险。

离线未通过绝不能靠线上试运气。线上灰度还需要自动回滚、用户隔离和实时监控。

10. 如何验证 Canary 自己有效

回放历史坏版本,检查 Canary 是否能在完整评测前发现它们。也可做故障注入:删除引用、破坏 Schema、禁用工具权限或替换错误 Prompt。

统计每个探针发现过的独立故障、误报率和运行时长,淘汰长期重复且无信息增益的题。

11. 样本小意味着什么统计限制

80 条全通过不能证明真实错误率低于 1%。若关心总体通过率小幅变化,需要更大样本和置信区间。

Canary 结论应是“未发现预定义严重断裂”,而不是“新版本质量全面提升”。

12. 常见误区与追问

  • 误区:Canary 通过就可以直接全量发布。 它只排除明显坏版本,后续完整评测和灰度仍必要。
  • 误区:从大评测集随机抽 50 条就是 Canary。 应选择高敏感、低冗余、可诊断的探针。
  • 误区:Canary 越难越有价值。 不稳定难题会制造噪声,锚点应此前稳定。
  • 误区:任何失败都无限重试直到通过。 这会掩盖不稳定性,重试规则必须预设。
  • 误区:Canary Set 永远不变。 需要吸收事故并处理过期样本,但保留版本。
  • 追问:多少条合适? 由关键能力和运行预算决定,通常以分钟级完成和每类有探针为约束。
  • 追问:怎样证明它能预警? 回放历史坏版本和做故障注入,测检出率与误报率。

13. 加强记忆

  1. 定位:发布漏斗中的分钟级语义预警层。
  2. 选题:关键路径、历史事故、高风险、低冗余。
  3. 门禁:按严重度设阈值,Critical 任一失败即阻断。
  4. 边界:通过不等于全面优秀,仍需完整评测和线上灰度。
  5. 自验证:回放坏版本、注入故障、跟踪误报与信息增益。