当 Prompt 工程、RAG 无法满足垂直行业业务需求,领域微调成为重要手段。但很多企业能够拿到的高质量私有标注样本数量有限,属于典型小样本微调场景。小样本微调最棘手的问题就是过拟合:在训练数据集上损失快速下降,评测指标很漂亮;部署推理,面对真实业务输入输出僵化,泛化能力差。
不少开发者把全部精力放在调学习率、LoRA 秩、epoch 轮数等训练参数,反复跑实验,却忽略数据集质量。小样本条件下,数据集质量对最终效果的影响远大于训练超参。本文围绕小样本领域微调,从数据集构建到训练判别完整梳理落地思路。
1 小样本微调过拟合典型现象
- 训练集损失持续走低,验证集损失先下降后升高;
- 模型背诵训练集样本,遇到和训练集不一样的真实输入输出模板化答案;
- 模型容易输出训练数据里面的固定话术,泛化新 Query 能力弱;
- 测试集指标看起来优秀,上线真实业务评测效果断崖下跌。
很多人会单纯降低 epoch 轮数规避过拟合,但仅仅调整训练轮次治标不治本,如果数据集本身多样性不足,依然很难拿到好的泛化效果。
2 高质量小样本数据集构建要点
2.1 样本多样性优先于样本数量
小样本场景,样本多样性比样本总量更加重要。数据集需要覆盖不同提问句式、不同角度的业务问题、边界 case、易错 case。如果大量样本句式高度雷同,即便几百条数据,训练后依然极易过拟合。 数据集里面必须包含负样本:业务问题无法回答的场景,告诉模型什么时候输出 "无法解答",否则微调后模型会强行编造答案。
2.2 严格区分训练集、验证集,禁止数据泄露
很多项目划分数据集简单随机切分,业务场景高度相似的 query 分散在训练集和验证集,造成数据泄露。验证集指标虚高,无法反映真实泛化能力。 小样本条件下建议按照业务语义维度划分,而不是完全随机切分:语义相近的同类问题尽量全部放在训练集或者全部放在验证集,避免相似样本两边同时存在。验证集必须完全模拟未来线上真实输入分布,不能和训练样本高度重合。
2.3 指令格式统一,避免格式噪声
SFT 监督微调对样本格式非常敏感。全部样本输入输出格式、Prompt 模板必须和未来推理上线时使用模板保持完全一致。训练和推理模板不一致,会直接导致效果大幅下滑。很多人训练使用一套模板,推理上线换另一套模板,最终微调收益几乎完全消失。
2.4 小样本的数据增强策略
标注成本高,可适度做安全的数据增强:对用户 Query 做句式改写、同义复述,保持输出答案不变;不要改写答案内容。需要控制增强比例,增强样本占比不宜过高,避免引入大量噪声样本。不能依靠增强完全替代真实人工标注数据。
3 训练策略抑制过拟合
小样本场景优先选择 LoRA 微调,冻结主干大部分权重,只训练少量参数,相比全参数微调天然降低过拟合风险。 关键超参选择思路:
- LoRA 秩不要盲目设置很高,小样本过高秩更容易拟合训练集噪声;
- 学习率不宜过大,大学习率小样本下极易快速过拟合;
- epoch 轮数不要设置过大,设置早停策略,监控验证集损失,当验证损失开始抬升就停止训练,保存最优 checkpoint,而不是训练完所有轮次;
- 开启权重衰减,抑制参数向训练样本过度拟合。
不要迷信网上公开的通用参数模板,不同底座模型最优参数存在差异,小样本必须以自己验证集表现作为判断依据。
4 过拟合的判别手段
不能只看 loss 损失指标。除损失之外,需要多角度判别:
- 验证集损失变化曲线;
- 人工评测:准备一批完全没有出现在训练、验证集的业务测试样本,做人工打分;
- 检查是否出现背诵训练集现象:输入改写版本训练集中的 query,观察输出是否机械背诵训练集答案。
loss 只是参考,真实业务样本人工评测才是小样本微调最重要判断标准。很多时候 loss 指标看着尚可,但已经出现严重过拟合。
5 上线后评估与边界认知
微调之后不能直接全量上线。优先灰度测试,对比基线模型(Prompt 工程方案),评估微调之后真实业务指标是否正向提升。 同时认清微调能力边界:小样本微调擅长学习输出格式、业务话术、固定知识范式,并不擅长学习大量全新复杂知识。海量知识更新的场景,优先选择 RAG 而不是微调。微调无法解决底座模型本身固有的强幻觉缺陷。
小样本领域微调,数据集质量是决定性因素,训练超参只是次要调节手段。很多团队陷入反复调参的循环,却忽略样本多样性、数据集划分、训练推理模板对齐这些基础工作。过拟合不只是训练参数问题,很多根源来自数据集缺陷。小样本场景下,合理构建数据集,搭配 LoRA 与早停策略,使用独立测试集评估泛化能力,才能得到上线可用的领域适配模型。