为了高效训练,清华大学首先采用ZeRO优化器,在数据并行组内分摊优化器状态,将单卡显存消耗降低至原来的25%。
与此同时,清华大学通过使用算子融合和在流水线平衡策略,在计算效率和内存方面进行了优化。
在平台兼容性方面,清华大学在神威架构上实现了一个和DeepSpeed API兼容的计算库,最终可以在三个集群上对齐训练曲线。
在实验方面,清华大学在A100、海光、神威三个集群上分别实验,发现不同集群在硬件上存在较大的差异性。
如上图所示,GPT-3 175B的整体利用率较高,三个平台上完成训练的时间均在60天左右,较为合理。由此证明,该框架在不同集群上具有通用型。
除此之外,在A100集群上,科研人员和BMTrain方法进行对比发现,如果按相同机器数量估算,清华大学的方法将性能提升了25%。
在扩展性方面,清华大学在海光集群进行了相关实验。随着模型规模的增长,方法呈现超线性扩展性。
除了工程难点,千亿模型在训练上的最大挑战就是训练稳定性。其质上是精度和效率的平衡问题。
为了充分发挥加速器的性能,清华大学采用fp16等半精度格式,提高性能效率。但精度降低会导致模型训练不稳定。
在已经开源的大模型中,OPT-175采用了动态干预并反复调整的方式。BLOOM 176B采用了embedding norm和bf16。实验表明embedding norm对性能有很大影响且bf16只支持有限的平台。这些方案让训练过程非常稳定,只出现了少量的波动。
后来,科研人员发现Attention层容易出现数值不稳定,模型规模扩大的时候,attention层中Q乘K^T会导致的分数很有可能超过FP16的表示范围。
因此清华大学提出一种混合精度策略,将softmax层转为单精度计算缓解溢出,结合之前的算子融合方法,仅以1%的损失极大稳定了训练。