此前的 GPT-3 和 ChatGPT 都是 Dense Model. 也就是模型中的所有参数都是有效的,其特点包括:
- 优秀的效果
- 昂贵的训练和计算开销
GPT-4 可能是 Sparse Model, 但是其在相同规模计算量情况下,会达到更好的效果,在仅激活相当于 dense model 至 规模的参数量下,仍然能达到 dense model 相近的效果。
sparse model 实际上用的是 MoE 架构。
# Sparse Mixture of Expert
# History of MoE
# Shazeer et al. 2017
第一个把 MoE 做到能 work 的。用 top-k routing 进行专家选择。如果这个 routing 选择不好,则可能增大参数不会取得明显的效果(routing 没有利用上所有的参数)。
# Switch Transformer
首先提出将不同的 expert allocate 到不同的机器上。每一次尽量均匀激活不同机器上的 expert 从而提高显卡利用率。
给定 个 expert 和一个含有 个 token 的 batch, loss 的设计:
这一 loss 可以平衡专家的负载。
# Sparse Model Scaling
Scaling Pretraining: 利用小模型的 pretraining loss 预测大模型的 pretraining loss. 是 GPT-4 技术报告的一个亮点。
这样可以在小模型上做大量的实验,从而实现快速的改进和迭代。
- upstream scaling
- downstream scaling
# Gradient Checkpointing
以时间换空间,高效利用显存的办法。
# 混合精度计算 (Mixed Precision Training)
主要原因是现在的计算卡对于半精度算子具有特殊的优化。
但是 IEEE 754 的 FP16 和 Google 的 BF16 格式有区别。Google BF16 更加实用,因为数值范围更大可以达到更好的效果。