目前开源大模型对于预训练模型和参数也渐渐趋于一致:

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: