大模型-模型预训练-训练过程优化配置
一、简介
1、目的
提升训练过程稳定性、效率、效果等
2、配置项
- 批次大小
- 学习率
- 优化器
- 稳定优化
二、批次大小配置
1、常规做法-配置固定大小
配置较大的批次大小,例如1M到4M个词元,从而提升训练稳定性和吞吐量
2、最新方案-动态批次调整
- 方案介绍:动态批次调整,逐渐增大,最终达M级别,比如GPT-3从32K增大到3.2M
- 优点:动态调整可以有效稳定大模型训练过程,早起较小批次可以提升反向传播的频率,让模型损失尽快下降,后期较大批次可以让损失下降更加稳定,使模型更好收敛
三、学习率
1、组成
- 预热阶段,占0.1%到0.5%
- 衰减阶段
2、特点
- 大部分大模型做法类似,包含预热阶段和衰减阶段
- 预热阶段占整体训练过程的0.1%到0.5%
- 模型在学习率较大时可以加快收敛速度
- 学习率一般会衰减到最大阈值的10%
3、线性预热策略
从一个非常小的数值线性平稳增加,达到预设最大值
4、常见衰减策略
- 线性衰减
- 余弦衰减
- 平方根倒数衰减
三、优化器
1、常见优化器
- Adam
- AdamW
2、Adam
使用梯度的“动量”作为参数的更新方向,它使用历史更新步骤中的梯度加权平均值,来代替当前时刻的梯度,从而缓解样本随机性带来的损失震荡。Adam使用自适应的学习率方法,通过梯度的加权“三阶矩”对梯度进行修正,从而防止梯度过小导致模型难以优化,Adam在优化中引入了三个超参数,β1=0.9, β2=0.95, ε=10
3、Adafactor(Adam变种)
- 简介:通过引入特殊设计,使得训练过程中更加节省显存
- 代表模型:PaLM和T5
四、稳定优化技术
1、梯度裁剪
把梯度限制在一个较小的区间内,当梯度的模长超过给定的阈值之后,便按照这个阈值进行截断,这个阈值通常是1.0
2、训练恢复
每隔固定步数会设置一个模型存档点,当模型发生了训练异常时,可以恢复
3、权重衰减
使用正则化技术来稳定训练过程,提高模型泛化能力,AdamW采用了权重衰减,每次更新模型参数时引入衰减系数,这个系统通常为0.1
4、Dropout
在训练中随机将一些神经元的输出值置零来避免过拟合,大模型训练过程中由于有大规模数据,且模型中存在归一化结构,该方式目前在大模型训练中使用较少