目前开源大模型对于预训练模型和参数也渐渐趋于一致:
1 模型设置
- 1 Embedding and output projection:不进行共享
- 2 Abs位置编码 -> RoPE
- 3 Pre-Norm + RMSNorm
- 4 Bias: 只加载qkv上,保证外推性,其他权重的bias不进行设置。
- 5 SwishGLU,中间hidden_size由FFN的4倍变成8/3倍(保证参数一致)。
- 6 MQA & FlashAttention2
2 超参数设置
- 1 优化器:AdamW (β1、β2和ϵ为别为0.9、0.95和1−8) or (β1、β2和ϵ为别为0.9、0.999和1−8);
- 2 学习率衰减:采用余弦学习率计划,学习率会衰减到峰值的10%
- 3 最大学习率:3e-4,可能更大的model size会设置为1.5e-4
- 4 精度:BFloat16进行混合精度训练。
- 5 batch_size: 4M
- 6 上下文:4K
- 7 weight decay为0.1
- 8 dropout 0.1
- 9 gradient clip 1
- 10 warm steps: 2000 ~ 5000
3 模型和超参数设置
Yi:
InternLM2:
Qwen:
Baichuan2:
LLaMA1/2:
OLMO:
Falcon: