Post-training:面向测试工作流的模型实践
以测试剧本遗漏副作用断言为候选任务,设计错误归因、样本分组、未训练基线和接入条件;训练尚未开展。
如果模型总是把“库存不足时不改变任何资源”缩成“返回错误码”,生成结果可能格式正确,却漏掉最有价值的状态断言。这样的错误值得记录,但还不能直接推出需要训练:规则没有进入上下文、能力清单没有查询接口,也会产生相同表象。
这项计划承接 AI 测试工作流,先选择“从已确认规则生成测试剧本”这一候选任务,建立基线,再判断是否开展任务微调。目前没有完成训练,也没有模型效果数据;下面给出试验应怎样成立。
先让错误能够归因
先回到这条漏断言的剧本,把当时的需求、接口契约、领域模型、能力清单和输出格式固定下来,同时保留原始输出。然后逐项检查:规则里是否写了“资源不变”,模型有没有看到这条规则,工具是否能查询相应资源。只有这些条件明确,才知道遗漏发生在哪一层。
| 观察到的问题 | 优先处理的对象 | 是否能直接归因于模型 |
|---|---|---|
| 引用了输入中不存在的查询 API | 能力检索与调用约束 | 需先确认资料确实完整 |
| 预期错误码来自旧版本文档 | 输入版本与检索 | 不能用训练修复错误资料 |
| 规则和查询能力齐全,仍反复漏掉副作用断言 | 提示词、示例,再评估任务微调 | 可以作为候选行为错误 |
| 正确剧本因环境不可用而失败 | 执行环境 | 不应记成模型推理失败 |
例如,审核时才补入“拒绝后不能创建记录”,就不能把模型此前的遗漏记成没有遵守输入规则。候选样本需要一起保存这样的归因,环境故障也应单独记录。
将一个修复记录整理成样本
一条候选记录可以包含输入资料的快照标识、规则 ID、原始输出、人工修正及修正原因。以下是样本清单的概念格式,不对应某个平台的训练文件格式:
{
"task_id": "inventory-insufficient-stock",
"source_group": "inventory-spec-v1",
"input_snapshot": "inputs/manifest.json",
"rule_ids": ["R2"],
"original_output": "candidate/cases.json",
"reviewed_output": "reviewed/cases.json",
"correction": "补充库存不变及无预占记录的断言",
"reason": "规则明确要求两个资源不改变,能力清单可观察两者"
}
修正后的内容仍需业务审核。测试通过本身不能证明它适合作为训练答案:错误预期也可能与错误实现一致。资料和代码还需满足团队的数据使用约定,样本中不携带真实鉴权、票据或客户数据。
按业务来源切分,再比较三种方案
同一规则改写出的多个句子、同一脚本换参数得到的变体,应放在同一数据分组。若把它们随机分到训练集和测试集,会低估面对新规则时的难度。先按需求来源或业务操作划分训练、开发和保留评估集,再在组内整理样本;评估集不能反复进入 Prompt 调试。
计划比较三组:当前提示词基线、补充规则说明与少量示例的基线、采用相同输入和工具的微调候选。训练前先记录未训练基线,预算、人工介入和允许的重试方式保持一致。模型、训练方法、样本量和参数需要在数据检查后确定,这里不预设一套未经试验的配置。
以测试价值和总成本决定是否接入
除 JSON 合法率外,评估要检查场景是否命中目标分支、断言是否覆盖副作用、已知缺陷能否检出、人工需要改多少,以及运行花费。方法见 Agent 回归。
接入条件应在试验前写清:保留集的关键场景没有退步,人工复核成本有可接受的改善,推理和维护成本在团队预算内。训练、数据审核、部署与回滚也属于成本;如果改资料和 Prompt 已能解决问题,可以停在那一步。
因此,下一步先交付任务集版本、未训练基线、错误分类和人工修复样本。若资料和工具都齐全,模型仍稳定漏掉同类断言,再进入训练配置与结果对照;这些记录也会成为判断训练是否有效的依据。