合成评测问题怎么用
用文档内容合成评测问题可以快速扩充问答集:给每个片段生成若干问题,覆盖事实型、比较型、条件型等不同难度,再人工抽检修正。它的价值是在真实用户问题积累不足时先把评测框架搭起来。风险也很明确:合成问题与原文措辞高度接近,指标会系统性偏乐观,因此必须保留一部分真实用户问法作为对照组。
基本信息
| 生成方式 | 按片段生成问题,要求问题不包含答案本身 |
|---|---|
| 难度分层 | 事实型、比较型、条件型各占一定比例 |
| 去重 | 近似问题要合并,避免重复计入指标 |
| 对照要求 | 保留真实用户问法,与合成集分开统计 |
典型使用场景
- 冷启动评测:真实问题还很少时先把指标框架跑起来
- 语料覆盖检查:哪些片段生成不出好问题,往往说明内容本身不合格
- 切分验证:用同一批合成问题对比不同切分方案的召回
- 团队协作:把合成集作为公共基线,减少各自造句带来的口径差异
- 边界构造:人工指定生成「带错别字」「只给型号」这类难例
合成提示词要点
合成提示词要点
给定片段,生成 N 个用户可能提出的问题:
- 覆盖事实型、比较型、条件型各至少 1 个;
- 问题不得包含答案本身,也不要出现「该片段」这类指代;
- 输出 JSON 数组,附片段 id 便于回溯。
# 生成后必须人工抽检,模型产出的问题质量参差不齐
质量抽检
质量抽检
sample = random.sample(synth_questions, 50) # 随机抽一批人工看
keep = [q for q in sample if human_ok(q)]
print("保留率", len(keep) / len(sample)) # 保留率低说明生成规则要收紧
合成质量抽检项
| 检查项 | 合格标准 | 不合格原因 |
|---|---|---|
| 问题自洽 | 脱离片段也能读懂 | 大量「它」「该值」这类指代 |
| 答案唯一 | 片段内有明确答案 | 问题过于开放,无法判定对错 |
| 难度分布 | 三类问题都有覆盖 | 全是原文复读式提问 |
| 去重情况 | 近似问题已合并 | 换词重复,虚高指标 |
合成问题与文档措辞接近,会系统性偏乐观:保留一部分真实用户问法作为对照组,用两组指标的差距衡量评测集的可信度。
合成集要版本化:提示词或模型变了,生成的问题分布也会变,混用不同批次的问题会让历史指标失去可比性。