此前的 GPT-3 和 ChatGPT 都是 Dense Model. 也就是模型中的所有参数都是有效的,其特点包括:

  1. 优秀的效果
  2. 昂贵的训练和计算开销

GPT-4 可能是 Sparse Model, 但是其在相同规模计算量情况下,会达到更好的效果,在仅激活相当于 dense model 20%20\%30%30\% 规模的参数量下,仍然能达到 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 capacity=tokens per batchnumber of experts×capacity factor.\text{expert capacity} = \frac{\text{tokens per batch}}{\text{number of experts}} \times \text{capacity factor}.

给定 NN 个 expert 和一个含有 TT 个 token 的 batch, loss 的设计:

L=αNi=1NfiPi.\mathcal{L} = \alpha N \sum_{i=1}^N f_i P_i.

这一 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 更加实用,因为数值范围更大可以达到更好的效果。