过拟合与泛化

直觉

过拟合像背答案:训练题几乎全对,换一种问法就失败。泛化则是学到能迁移到新样本的规律。常见信号是训练分数持续上升,而验证分数停滞或下降。

为什么会过拟合

  • 样本少、特征多,模型有机会记住偶然细节。
  • 重复或近重复样本使训练表现看起来很好。
  • 模型容量相对任务过大。
  • 反复针对同一验证集调整,团队也会“过拟合验证集”。
  • 标签含噪声,模型开始拟合错误或不一致的答案。

常用控制手段

  • 更可靠的数据:增加覆盖、去重、修正规则冲突,通常比换模型更根本。
  • 正则化:对过大的权重或复杂结构施加代价。
  • 降低容量:减少树深、特征、参数或训练轮数。
  • 早停:验证表现不再改善时停止。
  • 严格评估:按用户/文档/时间分组,保留真正未见测试集。

偏差-方差是一个思考框架:模型太简单时系统性错误较大(高偏差);模型对训练数据的小变化过度敏感时不稳定(高方差)。现实中还要考虑数据漂移和不可约标签歧义。

Agent/RAG 场景里的特殊形式

  • 同一文档的不同 chunk 同时进入训练与测试。
  • 评测问题由模型根据答案生成,问题中带出答案措辞。
  • 调提示词时长期盯着一组固定样题,最终只对样题有效。
  • 路由模型把客户名称当成意图捷径,换客户后性能崩溃。

错误排查顺序

  1. 先检查重复、泄漏和划分单位。
  2. 比较训练与验证分数,并按子群拆分。
  3. 查看错误样本是否标签不一致。
  4. 再尝试正则、特征或模型复杂度变化。
  5. 用独立测试集和时间外数据确认。

上线后仍要重新确认泛化

训练/验证/测试边界只回答某个历史快照上的问题。上线后,输入特征分布、类别比例、标签定义、人工流程或可用字段都可能变化;这些变化会让旧分数失去代表性。可以按时间窗口、来源、业务场景和错误代价监测输入、预测、延迟到达的真实结果与人工升级率,但告警只是排查起点,不自动说明“模型变差”或“应立即重训”。先排查数据质量、规则/标签变化、产品流程与人群变化,再决定补数据、调整流程、重新评测或训练新版本。

练习

为“固定 100 道 Agent 评测题反复调提示词”写一套防过拟合方案,至少包含开发集、封存测试集、版本记录和新增失败样本策略。

再完成两项对照:

  1. 画出训练/验证分数随模型复杂度变化的示意图,标出欠拟合、合适区间和过拟合。
  2. 分别说明“增加高质量独立样本”“复制已有样本”“增加正则”会改变什么,不能把三者当成等价操作。

掌握检查

  • 我能从训练/验证差距识别过拟合候选,但不会只凭一条曲线下结论。
  • 我会先排查重复、泄漏、分组单位和标签噪声,再换模型。
  • 我知道正则化、早停和降低容量各自改变什么。
  • 我会保护封存测试集,避免团队层面对固定验证集过拟合。

下一步:指标基线与误差分析。

参考资料

核验日期:2026-07-22。