微调大模型的经验总结
1. 数据集与样本质量
- 样本数量:- 一般1万左右的高质量样本即可达到良好效果。- 对于简单任务,100-300条数据足够;中等难度任务需1000条以上;高难度任务需3000条甚至更多,可能达到10万条。
- 样本质量:- 样本质量优先于数量,高质量样本更有效。需要重点关注样本的多样性和答案质量。
- 继续预训练:- 当领域任务数据与预训练数据集差异较大时(如内部数据),需进行继续预训练,尤其是数据量较大时。
2. 超参数设置
- 学习率:- 推荐范围:pre-train学习率的0.1倍左右。如pre-train为9e-5,则SFT设为9e-6。- 调整策略:若loss不收敛或震荡大则调低,若下降慢则调高。
- warmup_ratio:- 推荐范围:0.005-0.015。- 调整策略:学习率大时可增大warmup_ratio。
- Epoch数:- 推荐范围:2-10个epoch。- 若样本量少,可增加epoch数避免欠拟合;若样本量大,一般2个epoch即可。
3. 其他技巧
- 全参数SFT+LoRA结合:- 前10%-30% step使用全参数SFT,后续step使用LoRA,既稳定又节省资源。
- 自动化测试与反馈:- 建立基线,使用自动化工具如G-Eval进行测试,及时发现问题并改进。
自己的经验
数据集划分为6:3:1,使用LSH过滤掉重复数据,要确保数据的多样性和高质量。
全量比lora要好,lora初始学习率为1e-4,观察训练loss,不下降就增大学习率,验证集loss飞起就减少学习率。
warmup_ratio 可以0.1或者0.01,不影响最终收敛。
本文转载自: https://blog.csdn.net/qq_43814415/article/details/140849843
版权归原作者 灵海之森 所有, 如有侵权,请联系我们删除。
版权归原作者 灵海之森 所有, 如有侵权,请联系我们删除。