Zubnet AI学习Wiki › 验证集
训练

验证集

别名:开发集、保留集
从训练中保留的数据子集,用于在开发过程中评估模型性能和调整超参数。三分法:训练集训练模型,验证集指导关于模型的决策(学习率、架构、何时停止),测试集提供最终的无偏性能估计。验证集是你在开发过程中的镜子。

为什么重要

没有验证集,你就是在盲飞。训练损失告诉你模型拟合训练数据的程度,但不能告诉你泛化能力如何。验证集回答的是真正重要的问题:“这个模型在未见过的数据上会表现如何?”模型开发过程中的每一个决策——超参数、架构选择、训练时长——都应该在验证集上评估。

深度解析

典型划分:80%训练、10%验证、10%测试。对于大数据集,验证和测试的百分比可以更小(即使百万样本的1%也是10,000个——足够可靠的评估)。对于小数据集,交叉验证更好(参见:交叉验证)。关键规则:永远不要在开发过程中的任何决策中使用测试集。它只用于最终评估。如果你在开发过程中偷看了测试集,你的性能估计就会有偏差。

分层采样

拆分数据时,确保每个划分都有类别、领域和其他重要特征的代表性分布。如果你的数据集90%是英文10%是法文,随机拆分可能将所有法文样本放入训练集,使你无法评估法文性能。分层拆分确保每个划分中的比例代表。对于时间序列数据,使用时间拆分(在过去的数据上训练,在未来的数据上验证)而非随机拆分。

LLM开发中的验证

对于LLM预训练,验证集是训练语料库中保留的一部分,用于在训练过程中计算困惑度。对于微调,它是微调数据集中保留的一部分。对于对齐(RLHF/DPO),验证更复杂:自动化指标(奖励模型分数)加上在保留提示上的人工评估。验证策略应该匹配模型实际使用的方式——如果用户会提出多样的问题,验证集也应该是多样的。

← 所有术语