LLMNotes

第 21 章:数据集建设

zjc 于 2026-01-21 发布

这是《LLM 应用开发 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 数据集决定评测上限。它记录的是业务期望,而不是模型当前擅长的内容。建设数据集要兼顾覆盖、难度、隐私、版本和持续迭代。

21.1 数据来源

来源 优点 风险
业务文档 真实知识 需要标注权限
历史工单 接近真实问题 含隐私
用户反馈 反映痛点 有偏差
专家编写 标准清晰 成本高
模型生成 扩容快 可能同质化
线上日志 覆盖真实分布 需脱敏

推荐以真实日志和专家规则为主,模型生成只做补充,并必须人工审核。

21.2 数据集 schema

{
  "case_id": "cs-0001",
  "version": "v3",
  "source": "ticket",
  "language": "zh-CN",
  "role": "agent",
  "user_input": "客户要求查看上月订单",
  "context": {"tenant": "tenant-a", "history": []},
  "expected": {
    "tool": "list_orders",
    "args": {"range": "last_month"},
    "answer_points": ["订单列表按用户权限过滤"],
    "risk": "low"
  },
  "labels": ["order", "privacy", "normal"],
  "annotator": "expert-01",
  "review_status": "approved"
}

21.3 覆盖矩阵

维度 示例
业务域 订单、支付、物流、账号
意图 查询、修改、投诉、闲聊
语言 中文、英文、中英混合
角色 用户、客服、管理员
难度 简单、复合、歧义、多轮
风险 低、中、高
失败模式 幻觉、越权、格式错、循环
边界 空值、超长、特殊符号

每个矩阵格子至少有一定数量用例,重点业务和风险场景提高密度。

21.4 标注流程

采集
  -> 脱敏
     -> 预标注
        -> 人工标注
           -> 双人抽检
              -> 争议仲裁
                 -> 入库版本化

标注规范要定义:

  1. 正确答案标准;
  2. 可接受表达范围;
  3. 拒答条件;
  4. 引用要求;
  5. 安全边界;
  6. 多答案处理;
  7. 无法判断时的标记。

21.5 数据脱敏

常见敏感字段:

  1. 手机号;
  2. 邮箱;
  3. 身份证;
  4. 银行卡;
  5. 地址;
  6. 密钥;
  7. 内部主机名;
  8. 订单号;
  9. 医疗和生物信息。

替换策略:

13812345678 -> PHONE_0001
ORD-10001 -> ORDER_ID_0001

保留格式和类型,去掉真实身份。映射表必须单独加密保存,测试环境默认不可还原。

21.6 训练与评测集划分

如果同时做微调:

train / validation / test

要求:

  1. 按业务域和难度分层;
  2. 相似问题不能跨集合泄漏;
  3. 测试集不参与调参;
  4. 定期轮换影子测试集;
  5. 记录数据血缘;
  6. 去重。

21.7 坏案例管理

{
  "case_id": "bad-0001",
  "trace_id": "t-998",
  "root_cause": "retrieval_miss",
  "layer": "retriever",
  "fix": "add policy chunk",
  "status": "regression_ready"
}

归因类型:

类型 示例
解析错误 表格丢失
检索缺失 相关 chunk 未召回
排序错误 相关结果在后
Prompt 缺陷 未要求引用
模型能力 复杂推理失败
工具错误 参数或权限错
数据错误 文档本身过时

21.8 版本管理

数据集版本要记录:

字段 说明
dataset_id 数据集名
version 版本
source 来源
count 用例数
label_spec 标注规范版本
hash 内容摘要
owner 负责人
created_at 创建时间

指标对比必须绑定:

model version
prompt version
index version
dataset version

21.9 数据治理

  1. 明确数据合法性;
  2. 获得必要授权;
  3. 用户可选择退出;
  4. 保存期限明确;
  5. 访问权限最小化;
  6. 导出审批;
  7. 加密存储;
  8. 审计访问;
  9. 定期清理。

不要把生产日志未经脱敏直接粘贴到外部服务。

21.10 质量指标

指标 说明
coverage 覆盖矩阵比例
inter-annotator agreement 标注一致性
duplicate rate 重复率
leakage rate 跨集合泄漏
privacy scan pass 脱敏通过率
bad case closure rate 坏案例闭环率
drift alert 分布漂移

本章小结

数据集建设是 LLM 应用的质量资产。要用覆盖矩阵组织真实场景,用规范流程标注和脱敏,用版本管理绑定实验结论,并把线上坏案例持续转化为回归用例。

思考题

  1. 评测集为什么不能只放模型表现好的案例?
  2. 覆盖矩阵应包含哪些维度?
  3. 脱敏时为什么常保留格式和类型?
  4. 训练集和测试集如何避免泄漏?
  5. 坏案例如何归因和闭环?