泛化、数据划分与泄漏

本节目标

学完本节,你应能解释泛化、过拟合、训练集、验证集、测试集与数据泄漏,用一个简单场景设计独立测试,并识别时间、用户、文档和提示层面的泄漏。

为什么“做过的题会”还不够

模型在见过的数据上表现好,可能只是记住样例或利用了不该出现的线索。工程真正关心的是 泛化(generalization):系统面对来自目标使用情境、但没有参与开发的新输入时,仍能达到可接受表现。

**过拟合(overfitting)**是系统过度适应开发数据,以至于对新输入表现下降。它不只发生在训练参数时:反复针对固定评测题修改提示、规则或 RAG,也会对那组题过拟合。

训练集、验证集和测试集

数据集合主要用途可以据此修改方案吗
训练集学习模型参数或构建检索/规则资产可以
验证集/开发集选择特征、提示、阈值、超参数和候选方案可以,但要记录次数与版本
测试集方案基本冻结后,独立估计最终表现不应反复据此调参

如果看完测试错误后立即修改方案,再用同一测试集宣布提升,它已经逐渐变成开发集。此时应保留新的独立测试,或明确报告测试集已被用于开发。

随机切分并不总是正确

切分单位必须与真实独立性一致:

  • 同一用户的多封邮件可能语言高度相似,应按用户分组;
  • 同一文档的相邻 chunk 不能一部分进训练、一部分进测试;
  • 预测未来事件时应按时间切分,不能让未来记录泄漏到过去;
  • 同一模板生成的合成样例要按模板或生成种子分组;
  • 多轮对话应按完整会话切分,不能把前后轮拆开。

随机按“行”切分很方便,却可能让近乎重复的内容跨集合出现,得到过于乐观的结果。

什么是数据泄漏

**数据泄漏(data leakage)**是开发或评测过程使用了在真实预测时不可用、或本应保持独立的信息,使结果虚高。常见类型包括:

类型示例检查方法
目标泄漏特征直接含最终标签或事后字段逐字段问“预测时能否获得”
时间泄漏用处理完成后的状态预测是否会完成按事件时间画数据流
重复泄漏同文档、同用户或改写副本跨集合哈希、近重复与分组检查
预处理泄漏用全量数据计算归一化或词表只在训练部分拟合预处理
评测污染测试题进入训练数据、few-shot 示例或检索库记录数据谱系并做重合检查
人工泄漏标注者看到不应提供的答案或未来信息审查标注界面与指南

LLM 应用特别容易忽视“系统级泄漏”:测试答案可能不在模型训练集,却被放进提示示例、知识库、缓存或调试轨迹。被评对象包括模型、提示、检索、工具和后处理,必须整体隔离。

分布变化与切片

测试集代表的是某个时间、渠道与人群。上线后输入分布可能变化,例如出现新产品、新语言、新攻击方式或新政策。即使总体平均分不变,某个关键群体也可能显著退化。

因此除总体结果外,还要按与风险相关的维度切片:

  • 常见与长尾任务;
  • 不同语言、地区、设备或输入格式;
  • 有答案、无答案、冲突和恶意输入;
  • 高影响动作与只读动作;
  • 新用户与历史用户;
  • 依赖正常、超时和降级状态。

切片不是越多越好。每个切片应对应一个真实失败假设,并保证样本量和隐私处理合理。

一个最小切分示例

任务:从会议记录提取行动项。现有 1,000 份会议记录,每个项目会重复使用自己的模板。

不可靠做法:随机按段落切分。这样同一会议或同一模板的近重复内容可能同时进入训练与测试。

更合理的设计:

  1. 先按项目和完整会议分组;
  2. 用较早会议做训练/开发,较新会议做时间测试;
  3. 单独保留从未出现过的项目模板作为迁移切片;
  4. 对文本做精确与近重复检查;
  5. 将测试会议从提示示例、RAG 文档和人工调试记录中隔离;
  6. 对无行动项、冲突日期、缺负责人和注入文本分别报告结果。

这里没有给固定比例。小数据、高风险或时间序列任务需要根据可用样本与后果设计,而不是机械使用 80/10/10。

常见误区

误区为什么不成立改进
“测试集从没训练模型,所以绝对独立”人可能反复看题调提示或规则隔离测试访问并记录评测次数
“随机切分最公平”相关样本会跨集合按用户、时间、文档或实体分组
“平均分高就能泛化”长尾和高风险切片可能失败报告切片与最坏合理情形
“线上反馈都是真实标签”点赞、接受和修改都有选择偏差经过审核后再形成标签
“新版本只需跑几个冒烟题”可能改变格式、延迟和边界行为运行冻结回归集与关键风险切片

练习

为“客服邮件升级分类”设计三种切分:随机行切分、按用户切分、按时间切分。说明每种会估计什么、可能泄漏什么,并选择最符合上线情境的一种。再列出 5 个关键切片和一个不应进入日志的敏感字段。

自测

  1. 过拟合为什么也会发生在提示和规则上?
  2. 同一文档相邻 chunk 跨训练/测试为什么危险?
  3. 目标泄漏和时间泄漏有什么区别?
  4. 测试集看过很多次后应怎样报告?
  5. 分布变化为什么需要线上监控,而不能只靠离线测试?

相关概念与下一步

参考资料

获取日期:2026-07-22。