这是《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 标注流程
采集
-> 脱敏
-> 预标注
-> 人工标注
-> 双人抽检
-> 争议仲裁
-> 入库版本化
标注规范要定义:
- 正确答案标准;
- 可接受表达范围;
- 拒答条件;
- 引用要求;
- 安全边界;
- 多答案处理;
- 无法判断时的标记。
21.5 数据脱敏
常见敏感字段:
- 手机号;
- 邮箱;
- 身份证;
- 银行卡;
- 地址;
- 密钥;
- 内部主机名;
- 订单号;
- 医疗和生物信息。
替换策略:
13812345678 -> PHONE_0001
ORD-10001 -> ORDER_ID_0001
保留格式和类型,去掉真实身份。映射表必须单独加密保存,测试环境默认不可还原。
21.6 训练与评测集划分
如果同时做微调:
train / validation / test
要求:
- 按业务域和难度分层;
- 相似问题不能跨集合泄漏;
- 测试集不参与调参;
- 定期轮换影子测试集;
- 记录数据血缘;
- 去重。
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 数据治理
- 明确数据合法性;
- 获得必要授权;
- 用户可选择退出;
- 保存期限明确;
- 访问权限最小化;
- 导出审批;
- 加密存储;
- 审计访问;
- 定期清理。
不要把生产日志未经脱敏直接粘贴到外部服务。
21.10 质量指标
| 指标 | 说明 |
|---|---|
| coverage | 覆盖矩阵比例 |
| inter-annotator agreement | 标注一致性 |
| duplicate rate | 重复率 |
| leakage rate | 跨集合泄漏 |
| privacy scan pass | 脱敏通过率 |
| bad case closure rate | 坏案例闭环率 |
| drift alert | 分布漂移 |
本章小结
数据集建设是 LLM 应用的质量资产。要用覆盖矩阵组织真实场景,用规范流程标注和脱敏,用版本管理绑定实验结论,并把线上坏案例持续转化为回归用例。
思考题
- 评测集为什么不能只放模型表现好的案例?
- 覆盖矩阵应包含哪些维度?
- 脱敏时为什么常保留格式和类型?
- 训练集和测试集如何避免泄漏?
- 坏案例如何归因和闭环?