超参配置调优
- Batch Size配置:在模型训练过程中,Batch Size的设定通常较大,旨在充分利用大规模训练数据,增强模型训练过程的稳定性。例如,设置Batch Size为8196,可使每个批次处理大约1.6M个token输入。GPT-3使用动态调整Batch Size的方式,使其处理的Token数从32K逐渐增大到3.2M。
- 学习率:学习率一般较小,且包含warm up设置,以确保训练平稳。比如在前0.1%~0.5%的训练步骤中,设置一个线性的学习率递增。峰值学习率一般在10-4以下,比如GPT-3的学习率是6 × 10-5。之后,会采用cosine衰减或者线性衰减学习率调度策略,逐渐减小学习率,在收敛前将学习率下降到峰值学习率的10%左右。
- 优化器:优化器一般采用Adam、AdamW以及Adafactor。其中,Adafactor是Adam的一个节约显存的变体。也有使用SGD作为优化器的例子,但并不常见。
- 权重初始化:正确初始化权重可以帮助模型更快低收敛并提高性能。例如,通常使用小的高斯噪声或者使用T-fixup初始化。
- 其他稳定训练技术:
- 梯度裁剪(Gradient Clipping):作为一种常用的稳定训练手段,通常设定裁剪阈值为1.0,防止梯度过大引发训练不稳定。
- Weight Decay(L2正则化):设置合理的权重衰减率,如0.1,有助于防止过拟合,增强模型泛化能力。
- 特殊层的调整:GLM研究发现,embedding层往往存在较大的梯度异常情况,故需根据实际情况适度调整相关参数。
Model |
Batch Size (#tokens) |
Learning Rate |
Warmup |
Decay Method |
Optimizer |
Precision Type |
Weight Decay |
Grad Clip |
Dropout |
---|---|---|---|---|---|---|---|---|---|
GPT3 (175B) |
32K→3.2M |
6 × 10-5 |
yes |
cosine decay to 10% |
Adam |
FP16 |
0.1 |
1 |
- |
PanGu-α (200B) |
- |
2 × 10-5 |
- |
- |
Adam |
- |
0.1 |
- |
- |
OPT (175B) |
2M |
1.2 × 10-4 |
yes |
manual decay |
AdamW |
FP16 |
0.1 |
- |
0.1 |
PaLM (540B) |
1M→4M |
1 × 10-2 |
no |
inverse square root |
Adafactor |
BF16 |
lr^2 |
1 |
0.1 |
BLOOM (176B) |
4M |
6 × 10-5 |
yes |
cosine decay to 10% |
Adam |
BF16 |
0.1 |
1 |
0 |
MT-NLG (530B) |
64K→3.75M |
5 × 10-5 |
yes |
cosine decay to 10% |
Adam |
BF16 |
0.1 |
1 |
- |
Gopher (280B) |
3M→6M |
4 × 10-5 |
yes |
cosine decay to 10% |
Adam |
BF16 |
- |
1 |
- |
Chinchilla (70B) |
1.5M→3M |
1 × 10-4 |
yes |
cosine decay to 10% |
AdamW |
BF16 |
- |
- |
- |
Galactica (120B) |
2M |
7 × 10-6 |
yes |
linear decay to 10% |
AdamW |
- |
0.1 |
1 |
0.1 |
LaMDA (137B) |
256K |
- |
- |
- |
- |
BF16 |
- |
- |
- |
Jurassic-1 (178B) |
32K→3.2M |
6 × 10-5 |
yes |
- |
- |
- |
- |
- |
- |
LLaMA (65B) |
4M |
1.5 × 10-4 |
yes |
cosine decay to 10% |
AdamW |
- |
0.1 |
1 |
- |
LLaMA2 (70B) |
4M |
1.5 × 10-4 |
yes |
cosine decay to 10% |
AdamW |
- |
0.1 |
1 |
- |
Falcon (40B) |
2M |
1.85 × 10-4 |
yes |
cosine decay to 10% |
AdamW |
BF16 |
0.1 |
- |
- |
GLM (130B) |
0.4M→8.25M |
8 × 10-5 |
yes |
cosine decay to 10% |
AdamW |
FP16 |
0.1 |
1 |
0.1 |
T5 (11B) |
64K |
1 × 10-2 |
no |
inverse square root |
Adafactor |
- |
- |
- |
0.1 |
ERNIE 3.0 Titan (260B) |
- |
1 × 10−4 |
- |
- |
Adam |
FP16 |
0.1 |
1 |
- |
PanGu-Σ (1.085T) |
0.5M |
2 × 10-5 |
yes |
- |
Adam |
FP16 |
- |
- |
- |