一、简介
与预训练阶段类似,设置与数据组织形式类似
二、优化设置
1、优化器配置-与预训练一致部分
- 优化器配置
- Adam
- Adafactor
- 稳定训练技巧
- 权重衰减
- 梯度衰减
- 训练技术
- 3D并行
- ZeRO
- 混合精度训练
2、与预训练不一致部分
2.1、目标函数
- 预训练阶段:语言建模损失函数
- 指令微调阶段:序列到序列的损失函数(仅计算输出部分损失)
2.2、批次大小和学习率
- 较小批次
- 较小学习率
2.3、多轮对话数据的高效训练
采用特殊的掩码机制来实现
三、数据组织策略
1、平衡数据分布
- 目的:混合使用现有的多个指令数据集,实现模型能力全方位提升
- 常见方法
- 样本比例混合策略:数据集合并,相同概率采样指令实例
- 提高高质量数据集的采样比例:注意配置最大容量,限制每个数据集中的最大实例数,避免被某个数据集主导
2、多阶段指令数据微调
- 方法思想:从易到难
- 具体方式:以YuLan-Chat-3为例
- 先使用NLP指令集进行微调
- 再使用日常对话指令集进行微调,注意增加一些NLP数据
3、结合预训练数据与指令微调数据
- 方法介绍:
- 在指令微调期间加入小批量预训练数据,相当于指令微调的正则化
- 将小规模指令微调数据引入到预训练阶段
- 退火阶段:即在预训练完成之后,在指令微调之前,使用高质量的预训练数据和高质量的指令微调数据