通常来讲,训练更大规模的网络模型可以在多种任务上取得更好的效果,如自然语言处理类任务的准确率。然而,训练更大规模的网络模型会消耗更多的显存资源,甚至是超过单个设备的显存容量,从而导致模型无法训练。模型并行通过将网络中的张量(Tensor)切分到不同的设备,从而降低单个设备的显存消耗,使得超大规模模型训练成为可能。本文主要介绍飞桨模型并行的基本原理和使用方法。
一、原理介绍¶
张量模型并行需要解决两个问题:参数如何切分到不同设备(切分方式);以及切分后,如何保证数学一致性(数学等价)。本文以 NLP 中的 Transformer 结构为例,介绍张量模型并行的切分方式和随机性控制。
1.1 切分方法¶
自 2017 年提出以来, Tra