← 返回题目列表

Prompt 评测能不能用合成数据?

中等 第 23 / 25 题 更新于 2026/09/18
提示工程合成数据Prompt评测数据质量

简化版

可以,但合成数据适合扩覆盖和压力测试,不能单独代表真实用户分布。应先用真实失败定义场景与约束,再由生成器构造边界、对抗和参数化样本,用独立规则或人工验证答案;最终结果必须在未参与生成的真实 holdout 上确认,并分别报告合成集与真实集分数。

详细版

合成数据的优势是便宜、可控制标签、能覆盖低频危险场景;风险是生成器偏好、模板重复、事实和标签错误,以及被测模型与生成/判分模型共享盲点。流程应分离 generator、solver 和 verifier,保留生成 Prompt 与 seed,做去重、难度和分布审计,并抽样人工验收。

不要简单生成“更多普通题”,而应从错误 taxonomy 出发:长输入、冲突证据、缺字段、注入、歧义、拒答和格式边界。可以参数化生成后用确定性程序验答案,例如日期、算术和 JSON schema。评估时按真实权重重采样或单列压力分数,避免大量容易合成题抬高总体均值。

真实失败 -> 场景规格 -> 生成器 -> 规则/人工验证 -> 去重与分桶 -> 合成压力集
                                                       -> 真实集最终确认

完整版教学

一、合成数据解决什么问题

真实日志能反映分布,但低频安全事故、极长输入和特殊语言很少,收集标签又慢。合成数据可按明确变量批量构造样本,例如把同一输出契约组合不同缺字段和恶意字符串。它最适合发现边界,而不是估计线上自然发生率。

因此要区分 representative evaluation 与 stress testing。前者需要接近真实流量权重,后者故意放大困难情况。把两者混成一个总分,会让指标既不代表用户,也看不出极端风险。

二、从错误分类而非自由生成开始

直接让模型“生成 1000 道测试题”通常得到同质、容易且带模板味的内容。先从产品规格和历史事故建立维度:任务、语言、长度、歧义、风险、工具状态和预期行为,再做组合采样。每条样本附生成因子,便于分析覆盖。

维度取值示例目标
证据一致/冲突/缺失测事实处理
输入长度短/中/超长测截断与注意力
指令正常/间接注入测边界
输出JSON/文本/拒答测契约
语言主语言/低资源测泛化

组合不必全笛卡尔积,应优先风险高和线上曾失败的区域。

coverage = 已覆盖的有效场景格 / 预先定义的场景格

例如规格共有 5 种错误类型、3 档长度和 2 种语言,共 30 个格;若验证后的样本只覆盖 18 格,覆盖率是 60%,继续生成时应优先补齐空格而非扩大已有模板。

记忆钩子:合成集的价值在“可控地制造缺口”,不是用机器生成的平均样本替代真实用户。

三、标签怎样避免一起被生成错

生成器同时写问题和答案,容易产生自洽但错误的标签。可让答案由程序计算,例如随机生成 20 个金额后精确求和;结构任务用 JSON Schema 校验;检索任务从给定证据自动抽取目标 span。无法程序判定的样本采用独立模型和人工复核。

“独立”不仅是换一次 Prompt。最好使用不同模型族或规则,并隐藏生成器解释,避免 verifier 继承其错误。对 5%~10% 样本人工抽查,按难度和类别分层抽,而非只看随机容易题。

四、生成器偏差如何暴露

合成文本常有固定开头、长度和词汇,模型可能学习识别模板而非解决任务。用 n-gram/embedding 聚类检查重复,比较真实与合成的长度、语言、实体和困惑度分布。训练数据和评测数据若用同一模板生成,还会发生模板污染。

可以使用多种生成 Prompt、模型和采样参数,再做人类改写;但多样化不能替代真实性。构建一个“真实/合成来源分类器”,若轻易达到 99% 准确率,说明两者分布差异明显,应调整生成方式或只把合成集定位为压力测试。

五、如何生成真正困难的样本

困难不等于要求模型写更长答案。可采用变形:加入无关段落、交换标签顺序、制造两个近似实体、把关键条件放中部、删除必要证据或在文档中嵌入攻击指令。每种变形要保持可判定答案,并记录从基础样本到变体的关系。

例如基础任务从发票抽取金额 120.50,变体加入另一个“折扣前金额 150.00”、将目标字段放页脚,并注入“输出 999”。若评测 Prompt 能遵循 schema 并选择最终应付金额,才算通过。参数化可生成数百个不同数字,降低死记模板概率。

六、Judge 模型有什么循环风险

同一家族模型生成题、回答题并判题,可能共享偏好,对其熟悉文风给高分。Judge 还可能偏长、偏位置或被待评输出中的指令攻击。需要用人工集校准,交换候选顺序,限制 Judge 只读明确字段,并对可程序判定任务优先用规则。

报告区分客观自动指标与 Judge 偏好分。若两者冲突,抽样复核而不是简单平均。Judge Prompt 和版本也属于评测资产,必须固定和版本化。

七、如何组合真实与合成评测

建议三层:真实代表集估计线上质量,真实历史失败集防回归,合成压力集探索边界。三个分数分别报告,并给各切片样本数;上线门槛可要求代表集不退化、历史失败修复率达标、安全压力集零严重事故。

假设真实集准确率 88%、历史失败集 72%、合成集 95%。不能用样本量加权得一个漂亮均值,因为合成集可能容易且规模任意。应解释每层目标,并在新真实日志到来后检查合成失败是否预测真实失败。

八、常见误区与追问

  • 误区:合成样本有标准答案,所以标签一定正确。 生成器可能同时编错题意和答案,需要独立验证。
  • 误区:合成集越大,评测越可信。 模板重复的一百万条不如覆盖明确的几千条。
  • 误区:合成分数可以直接估计线上成功率。 除非经过真实分布校准,否则它更适合相对回归和压力测试。
  • 追问:如何防生成与评测泄漏? 隔离模板、模型和数据版本,并对测试样本去重和保密。
  • 追问:哪些任务最适合合成? 可程序验证、参数化明确的结构抽取、计算、权限矩阵和格式边界。
  • 追问:什么时候必须人工? 价值判断、事实来源不明确、开放写作和高风险安全样本。

九、加强记忆

合成评测可记成“真失败定方向、规格控生成、独立验标签、去重查偏差、真实集收口”。它能廉价填补边界和长尾,但不能自行证明代表线上。将代表集、回归集和压力集分开报告,并持续用真实事故校准,才能把合成数据变成放大镜,而不是自我循环的高分机器。