返回

超越百万亿次,混合并行是飞桨的大规模新杀招

人工智能

在追求突破性效果的路上,AI 从业者已经踏过了多个重要的里程碑,从 AlexNet 和 VGG 的百万参数规模,到谷歌 TPU 时代的千万参数级别,再到今天,NVIDIA GPU 带来的亿级参数模型已经成为不少开发者手里的标配。

未来,模型参数规模有望突破千亿级。在这个千亿级时代,训练一台模型动辄消耗数百、上千乃至上万张卡资源,训练耗时也长达数月,所以“大规模训练”的解决方案势在必行。

今年,在大规模训练方向上,飞桨提出了 4D 混合并行策略,以训练千亿级稠密参数模型。那么,如何训练千亿级 AI 模型?飞桨的 4D 混合并行策略是一种什么样的策略?

4D 混合并行策略:让千亿级模型训练成为可能

所谓 4D 混合并行,即模型并行 + 张量并行 + 流水线并行 + 混合精度并行四种并行策略的结合。

基于这个策略,开发者使用主流深度学习框架就可以方便地训练千亿级稠密参数模型,而不需要做任何分布式改动,开发者可以专心做业务逻辑即可。

近日,飞桨团队使用 4D 混合并行训练了 1.2 万亿参数规模的 PyTorch BERT 模型,这已经是接近业界极限的规模,使用 1024 卡 A100 GPU,仅需 40 分钟就能训练完成。

由此可见,飞桨的 4D 混合并行策略能够为开发者的 AI 模型大规模训练带来很大的便利。那么,飞桨 4D 混合并行策略具体是如何实现的?

4D 混合并行策略的实现原理

飞桨 4D 混合并行策略的具体实现原理包括:

  1. 模型并行:

模型并行将模型的不同层分配给不同的卡进行训练。飞桨支持数据并行 + 模型并行混合训练,即在一部分卡上进行数据并行训练,在另外一部分卡上进行模型并行训练。这种混合方式能够大幅提升模型训练的速度。

  1. 张量并行:

张量并行将模型的每一层拆分成多个切片,并将这些切片分配给不同的卡进行训练。这样,就可以减少每个卡需要处理的数据量,从而提高训练速度。

  1. 流水线并行:

流水线并行将模型的训练过程拆分成多个阶段,每个阶段由不同的卡负责。这样,就可以让不同的卡并行工作,从而提高训练速度。

  1. 混合精度并行:

混合精度并行使用不同的精度来训练模型的不同部分。这样,就可以在保证模型精度的同时,降低训练成本。

飞桨 4D 混合并行策略正是通过这四种并行策略的结合,实现了千亿级 AI 模型的大规模训练。

4D 混合并行的应用场景

4D 混合并行策略的应用场景非常广泛,包括:

  • 自然语言处理:

4D 混合并行策略可以用于训练大规模的语言模型,如 BERT 和 GPT-3。这些模型可以用于文本生成、机器翻译、问答系统等任务。

  • 图像处理:

4D 混合并行策略可以用于训练大规模的图像模型,如 ResNet 和 Inception。这些模型可以用于图像分类、目标检测、人脸识别等任务。

  • 语音处理:

4D 混合并行策略可以用于训练大规模的语音模型,如 Wav2Vec2 和 Conformer。这些模型可以用于语音识别、语音合成、语音控制等任务。

  • 多模态学习:

4D 混合并行策略可以用于训练大规模的多模态模型,如 ViT 和 CLIP。这些模型可以用于图像和文本的联合学习、图像和语音的联合学习等任务。

总之,4D 混合并行策略是一种非常有前景的大规模训练解决方案。它可以帮助开发者快速训练出千亿级 AI 模型,并将其应用于各种实际场景中。