模型生成与条件覆盖

本节目标

把生成模型作为受约束的候选生产器,使用条件配额、结构化输出、provenance 和独立验证扩展任务及语言变化。

直觉解释

让模型“生成 1000 条多样数据”通常会得到高频模式的重复和流畅但错误的标签。更可靠的方法是先列缺口,再逐格生成,并把模型输出视为未经验证的提案。

核心概念

  • seed examples:少量经人工确认的任务样本,用来说明格式和边界。
  • teacher / generator model:生成候选数据的模型,不等于标签真值来源。
  • conditional generation:显式指定语言、意图、难度、工具状态和风险条件。
  • quota:每个条件格要生产/保留的目标数量。
  • structured output:要求 JSON/schema,降低解析歧义但不保证语义正确。
  • model collapse / homogenization risk:反复用模型生成内容可能缩窄分布或放大已有模式。
  • generator lock-in:生成数据过度符合某一模型的表达和偏好。

生成器、oracle 与 judge 要分离

三个角色可以使用模型,但证据职责不同:generator 提出候选,oracle 定义期望行为,judge 判断候选是否符合 rubric。让同一次调用同时承担三者,会形成循环证明。可确定的字段优先用规则/模拟器;主观字段用经过人工校准的 judge;高风险和争议样本保留专家仲裁。即使换成第二个模型,也只能降低部分同源偏差,不能自动产生真值。

对工具型 Agent,优先生成“任务契约”而不是自由文本答案:输入条件、工具 schema、权限、初始状态、允许动作、禁止副作用与期望最终状态。自然语言表述可以后续改写,但不应让改写器改变任务语义或标签。

分步骤方法

  1. 从覆盖矩阵选择缺口,不让模型自行决定任务分布。
  2. 提供少量正例、反例、schema 和禁止条件;参考答案可由规则或专家提供。
  3. 每次只生成一个清楚条件格,要求返回 source condition 与不确定标记。
  4. 记录模型精确标识/快照、提供方、提示版本、解码设置、seed 和时间。
  5. 解析失败、冲突标签、真实个人信息和禁用内容进入隔离区,不自动修补后无记录地保留。
  6. 用规则、第二种方法和人工抽样验证;不要让同一生成调用同时当唯一 judge。
  7. 按通过率和新增覆盖决定下一轮,不按原始生成量汇报成功。

一次生成还应记录失败与选择过程:请求次数、解析失败、策略拒绝、人工拒绝、重复和最终保留数。只保存成功输出会隐藏选择偏差,也无法比较 generator 版本。模型别名可能随服务变化;能固定快照时记录快照,不能固定时至少记录提供方返回的模型标识、日期、区域与提示内容,并把复现限制写进 Data Card。

示例

一个条件明确的请求骨架:

{
  "task": "提出只读订单Agent评测case",
  "condition": {
    "language": "zh-CN",
    "intent": "status",
    "input_state": "missing-id",
    "difficulty": "edge"
  },
  "required_output_schema": {
    "input": "string",
    "expected_action": "ask-for-order-id",
    "reason": "string",
    "uncertain": "boolean"
  },
  "forbidden": ["真实姓名", "真实订单号", "执行退款"]
}

SELF-INSTRUCT 展示了“生成 instruction/input/output,再过滤无效或相似项”的研究流程。它证明一种可行方法,不意味着任意任务、模型或过滤器都会获得同样效果;本课程不复述其特定性能数字。

常见错误与排查

  • 把 generator 的答案直接当 gold:用规则、专家或独立证据验证。
  • 只改 temperature 追求多样性:先做条件覆盖,再分析语义重复。
  • 未记录模型快照:结果无法重现;保存精确标识和获取日期。
  • 用候选系统生成自己的测试:可能共享盲点或定向优势;引入独立来源和真实留出。
  • 调用失败就静默重试到成功:记录尝试次数和失败分布,防止选择偏差。

练习

  1. 为工具调用任务写一个含 schema、条件和禁用项的生成请求。
  2. 设计“规则检查—独立 judge—人工抽查”三级验证。
  3. 列出 generator 与被测模型同源时的两个风险和一个缓解方法。

自测

  1. JSON 可解析能否证明标签正确?不能。
  2. 每格生成同样数量是否等于真实代表性?不是,它是诊断平衡,需要另有生产权重。
  3. 换 generator 后是否仍是同一数据版本?若内容或分布改变,应发布新版本并记录 lineage。

小结与下一步

模型生成扩大候选空间,条件矩阵和独立验证决定哪些样本可被信任。下一步进入 过滤、去重与组级划分。

参考资料