目标与数据契约

本节目标

区分评测、训练、模拟与隐私发布四类用途,并在生成前冻结目标总体、schema、条件覆盖、质量门槛和停止规则。

直觉解释

同一批“看起来真实”的客服对话,可能适合 UI 演示,却不适合训练;可能适合压力测试,却不能估计线上准确率。用途决定哪些属性重要,也决定必须用什么真实证据验收。

核心概念

  • target use:数据将支持的具体决策或工作流。
  • target population:希望近似或覆盖的真实样本总体。
  • data contract:字段、类型、允许值、约束、来源和验收条件。
  • factor / condition:需要控制的任务维度,如意图、语言、权限或工具状态。
  • provenance:每条数据如何产生、用了哪些输入/模型/模板和处理步骤。
  • source declaration:技术上已知的输入类别、来源版本和是否接触真实数据;它是可审计事实记录,不是授权、版权或匿名性的结论。
  • authorization / review evidence reference:指向受控审批、许可或隐私审查工件的引用;“有一个 ID”不等于审查通过,状态、范围、到期与例外必须另行记录。
  • release scope:教学、受控内部、合作方共享或公开发布等可访问范围,以及相应的留存、撤回和再发布限制。
  • acceptance gate:样本或数据集进入下一阶段前必须满足的硬条件。
  • stop rule:达到覆盖和效用后停止生成,避免用数量掩盖低质量。
  • unit of synthesis:一次生成的最小对象,可能是一行表格、一组问答、一条工具轨迹或一个可重置环境任务。

四类用途不能共用一个验收口径

用途首要问题必需的独立证据常见误用
评测/压力测试是否覆盖目标失败模式并可稳定评分?专家 case、确定性 oracle、真实故障回放用人为平衡压力集估计线上发生率
监督训练加入数据后是否改善真实任务?不参与生成的真实留出、消融与分层结果在同一合成集上训练又验收
模拟/系统测试环境状态和副作用是否符合规则?可重置模拟器、状态不变量、独立 trial只评最后一句自然语言
隐私发布声称的隐私性质是否成立?威胁模型、攻击评估;若声称 DP 则需参数、会计和实现审查把“不是原始行”称为匿名

同一份候选池可以经过不同处理支持多个用途,但每个发布物要有独立 split、版本、权重与验收报告。尤其不能把用于提示或生成的真实校准样本又放进最终测试。

分步骤方法

  1. 写唯一主用途:评测边界、监督训练、模拟测试或受控发布;多个用途需分别验收。
  2. 写目标总体及不能代表的人群、任务、语言和时间范围。
  3. 定义最小 schema,包括 sample ID、family ID、synthetic 标记、生成运行/版本、来源声明和生成 lineage。
  4. 列出条件矩阵与每格最低候选数;标注核心、压力和禁止条件。
  5. 定义样本级 gate:可解析、字段完整、无禁用内容、标签可验证。
  6. 定义数据集级 gate:覆盖、重复率、分层质量、真实留出效用和风险审查。
  7. 冻结生成预算和停止规则;剩余缺口记录为缺口,不自动放宽门槛。
  8. 为每个发布范围定义来源/授权/隐私状态、证据引用、责任人和撤回影响图;未知或待决状态不能被“synthetic”标签覆盖。

契约还应写出失败语义:解析失败是拒绝、Unknown 还是重试?标签无法验证是否允许进入人工队列?一个关键隐私 case 是否可以被总体质量抵消?来源/授权状态未知时是否一律 BLOCK?这些决定要在看结果前冻结,否则团队会无意中为当前输出改规则。

示例

用于只读订单 Agent 评测的契约:

{
  "purpose": "offline stress evaluation",
  "population": "Chinese and English read-only order requests",
  "required_fields": [
    "id",
    "family_id",
    "language",
    "scenario",
    "input",
    "expected_action",
    "synthetic",
    "generator_version"
  ],
  "required_conditions": {
    "language": ["zh-CN", "en"],
    "scenario": ["status", "missing-id", "write-request"]
  },
  "hard_gates": ["schema-valid", "no-real-identifiers", "label-verifiable"],
  "release_scope": "offline-teaching-only",
  "source_declaration": "author-designed fictional templates; no external or real records",
  "non_goal": "estimate production traffic accuracy"
}

其中 write-request 被故意放大,是压力条件,不能按其比例推断线上分布。

常见错误与排查

  • 目标写“提高模型”:改为具体任务、指标、真实留出和决策门槛。
  • 只规定文本字段:补充 family、provenance、版本和风险字段。
  • 把来源声明当授权结论:分开保存输入类别、授权/审查证据引用、发布范围和待决事项;权利不明则阻止相应范围的发布。
  • 把合成评测集当总体样本:明确 core 与 stress 权重。
  • 没有停止规则:定义覆盖、边际新增和人工通过率的最低要求。
  • 生成后才决定标签含义:先写 rubric 和可验证答案,再生成。

练习

  1. 分别为“RAG 引用评测”和“意图分类训练”写用途与非目标。
  2. 给工具调用 case 设计最小 JSON schema。
  3. 为条件矩阵写一个停止规则,避免单纯以样本总数为目标。

自测

  1. 同一数据能否直接复用于训练和测试?不应默认复用,否则会污染独立评测。
  2. schema 有效是否等于标签正确?不是,结构检查不能验证语义。
  3. 合成压力集覆盖更多极端条件后,总分能否与生产核心集直接比?不能,抽样目的和权重不同。

小结与下一步

数据合成先定义用途和验收,再谈生成器。下一步用 模板与程序化生成 建立最透明、最可重复的基线。

参考资料