AI 测试平台先做哪三件事

不少“AI 测试平台”从用例生成页面开始:输入需求,模型输出几十条 Gherkin,再配一块看起来完整的仪表盘。演示容易,真正接入发布流程时却会遇到三个问题:结果无法复现、好坏没有统一标准、线上坏样例回不来。

如果资源有限,我更建议先做三项底座:trace 与回放、评测资产、发布门禁与反馈回流。用例生成、缺陷归因、智能编排都可以在它们之上逐步增加。

一、先把一次 AI 执行记录完整

传统接口失败通常能从请求、日志和数据库找到证据。AI 应用还需要记录:

  • 应用版本、模型与参数;
  • 系统提示词及模板版本;
  • 用户输入和经过的预处理;
  • 检索查询、召回文档 ID、分数与版本;
  • 工具调用名称、参数、结果和耗时;
  • 每个步骤的输出、重试和错误;
  • token、成本、总延迟和最终用户反馈。

这些信息共同构成一条 trace。没有 trace,团队看到的只是一段最终文本,无法判断问题来自提示词、检索、模型还是工具。

记录不等于无条件保存

日志可能包含个人信息、业务数据和模型输入。平台必须支持:

  • 字段级脱敏和采样;
  • 数据保留期限;
  • 访问权限与审计;
  • 敏感环境关闭正文、只保留哈希或元数据;
  • 从生产样例进入评测集前的人工确认。

可观测性不能以泄露数据为代价。

回放要区分“精确复现”和“重新评估”

模型服务、外部知识和工具结果都可能变化,完全复现并不总是可能。平台可以提供两种模式:

  • 固定依赖回放:使用缓存的检索与工具结果,观察模型或提示词变化;
  • 实时依赖重跑:重新调用当前检索和工具,验证端到端表现。

两者回答的问题不同,报告中应明确区分。

二、把评测集和 grader 当成代码资产

评测平台最小数据模型可以很简单:

EvalCase
  id
  input
  context
  expected_behavior
  forbidden_behavior
  tags
  source
  version

EvalRun
  app_version
  model_config
  dataset_version
  grader_version
  per_case_results
  summary

评测集要能进 Git 或数据版本系统,支持 review、差异比较和回滚。模型、提示词、检索配置和 grader 也要有版本;否则分数变化时无法解释是哪一层造成的。

grader 要按确定性从高到低组合

优先级可以是:

  1. schema、类型、范围、必填字段等程序断言;
  2. exact match、集合比较、可执行结果;
  3. 检索召回、工具选择和参数正确率;
  4. 规则或统计指标;
  5. 经人工校准的模型裁判;
  6. 人工专家复核。

不是每条样例都要走最昂贵的 grader。严重越权、错误写操作、引用不存在等问题应直接失败,不应被平均语义分冲淡。

不把资产绑死在单个评测 SaaS

平台可以接入开源或厂商工具,但至少保留可导出的:

  • JSONL / Parquet 样例;
  • grader 配置和代码;
  • 单样例明细;
  • trace 关联 ID;
  • 汇总计算口径。

工具会迭代甚至下线,数据和判定标准应能迁移。

三、让评测进入发布门禁,并接回生产

评测平台如果只靠人工点“运行”,很快会变成展示系统。它应当接入代码、提示词、知识库和模型配置的变更流程。

一个克制的流程是:

变更
  ↓
确定性测试
  ↓
小型关键评测集(PR 门禁)
  ↓
完整离线评测(合并后或定时)
  ↓
灰度 / 影子流量
  ↓
线上采样与人工复核
  ↓
新失败进入回归集

门禁不要只看总体平均分。至少分开看:

  • 关键场景是否有任何退化;
  • 安全和权限样例是否全部通过;
  • 与基线相比改善、持平和退化的样例分别有哪些;
  • 延迟和成本是否超预算;
  • 评测结果是否具有足够样本量和一致性。

对于模型裁判分数的小幅变化,不宜机械阻断发布。可以设置“硬失败 + 统计变化 + 人工 review”三层策略。

这三项底座之上再做什么

用例生成

模型先生成候选场景和理由,由人选择后进入正式用例。平台记录被接受、修改和拒绝的原因,用来改进后续生成。目标是补充思路,不是把“生成数量”当产出。

缺陷归因

把失败 trace、变更、历史缺陷和运行日志整理成证据包,让模型输出候选原因和缺失证据。最终归因仍由研发或测试确认,并把确认结果回写。

测试选择

先用覆盖率、依赖图和变更规则建立可解释基线,再评估统计模型是否确实减少执行时间且不增加漏测。夜间全量回归、抽样探索和线上监控仍是安全网。

合成数据

合成数据适合补充边界和保护隐私,但不能自动代表真实分布。关键约束应由规则保证,生成数据要做重复、泄露、分布和业务不变量检查。

一个最小可行版本

第一阶段不必做复杂平台,可以只交付:

  • 一份 50—100 条、按风险分层的评测集;
  • 一个命令行 runner;
  • 程序断言 + 一个人工校准的模型 grader;
  • 一份逐样例差异报告;
  • CI 中的关键集门禁;
  • 生产坏样例进入评测集的流程。

只有这条链路稳定后,再做 UI、调度集群、模型路由和多团队租户。平台抽象应来自真实接入,而不是先画出一张包罗万象的架构图。

衡量平台是否有用

建议看结果而不是调用次数:

  • 关键失败在发布前被发现的比例;
  • 线上坏样例进入回归集的时延;
  • 评测结果与专家判断的一致性;
  • 发现退化到定位责任层的时间;
  • 每次评测的成本、耗时和不稳定率;
  • 团队有多少变更真正经过门禁。

一套平台是否“智能”不重要。重要的是每次模型、提示词、知识和工具变化后,团队能否快速回答:哪里变好了,哪里退化了,证据是什么,能不能安全上线。

参考资料

// command palette

搜索文章

输入关键词搜索,使用 ↑ ↓ 选择,Enter 打开。

King Without a Crown xueyuan
0:00 2:55
智能缓存 · 跨页续播