文档

什么是Deepytorch Training(训练加速)

更新时间:

Deepytorch Training是阿里云自研的AI训练加速器,为传统AI和生成式AI场景提供训练加速功能。本文主要介绍Deepytorch Training在训练加速上的概念、优势及特性等。

Deepytorch Training介绍

Deepytorch Training面向传统AI和生成式AI场景,提供了训练加速能力。通过整合分布式通信和计算图编译的性能优化,在保障精度的前提下实现端到端训练性能的显著提升,为您带来更低的成本和更敏捷的迭代。同时Deepytorch Training具有无感适配和充分兼容开源生态等特点,使AI研发人员可以轻松将该加速器集成到业务代码中,享受训练加速效果。

产品优势

  • 训练性能显著提升

    Deepytorch Training通过整合分布式通信和计算图编译的性能特点,可以实现端到端训练性能的显著提升,使得模型训练迭代速度更快,不仅减少了资源的使用成本,还缩短了迭代的时间成本,为您带来低成本体验。

    示例:以生成式AI和传统AI两种场景为例,展示模型端到端训练性能提升效果。其中,该示例选择的实例规格以ecs.ebmgn7vx.32xlarge为例。

    说明

    相比原生PyTorch,使用Deepytorch Training工具训练模型,能显著提升端到端的训练性能。

    场景

    模型名称

    节点数 x GPU数

    配置信息

    训练性能提升率

    生成式AI

    Llama2-13B

    2 x 8

    • ZeRO stage 2

    • micro batch size=4

    • finetune alpaca_gpt4_en

    提升48%

    Qwen2-14B

    2 x 8

    • ZeRO stage 2

    • micro batch size=4

    • finetune alpaca_gpt4_en

    提升21%

    LLaMa-65B

    2 x 8

    • ZeRO stage 3

    • micro batch size=8

    • activation recomputing

    • params offload

    提升30%

    stable diffusion v2.1

    1 x 1

    • dreambooth

    • batch size=5

    • fp16

    提升22%

    传统AI

    ResNet50

    2 x 8

    • micro batch size=512

    • mixed precision=amp

    提升89%

    BERT

    2 x 8

    • micro batch size=32

    • mixed precision=amp

    提升42%

  • 易用性好

    • Deepytorch Training具有充分兼容开源生态等特点,兼容PyTorch主流版本,支持主流分布式训练框架。例如DeepSpeed、PyTorch FSDP或Megatron-LM等。

    • 使用Deepytorch Training时,仅需在Python训练代码开头添加一行适配代码即可。

      import deepytorch

特性说明

Deepytorch Training在AI训练的通信和计算方面具有显著的加速效果,具体说明如下:

通信侧优化特性

  • 单机优化

    单机内的优化主要针对不同硬件拓扑机型的通信优化。以PCIe互连的机型和NVLink互连的机型为例,具体说明如下:

    • PCIe互连拓扑优化:该机型的多GPU卡之间共享PCIe带宽,通信容易受限于物理带宽。针对PCIe互连拓扑的通信优化,可以采用基于流水线的PS(Parameters Server:参数服务器)模式梯度规约算法CPU-Reduce来降低通信耗时,该算法按照GPU到CPU再到GPU的顺序构建流水线,将梯度规约的计算分散到多个设备上运行,来减少通信瓶颈。

      例如,在通信数据量超过4 MB的场景下,PCIe互连拓扑优化方案相比NCCL原生在性能上提升了20%以上。

    • NVLink互连拓扑优化:NCCL默认使用的Binary-Tree算法在V100机型上并不能充分发挥多通道性能。针对NVLink互连拓扑的通信优化,可以通过扩展单机内部不同的N-Trees拓扑结构组合,实现拓扑调优并充分发挥多通道性能。

      例如,在通信数据量超过128 MB的场景下,NVLink互连拓扑优化方案相比NCCL原生在性能上提升了20%以上。

  • 多机优化

    多机优化体现在通信算子编译优化、TCP多流优化、多机CPU-Reduce优化三个方面,具体说明如下:

    • 通信算子编译优化:针对阿里云上不同机型,以及网卡与GPU的不同拓扑连接等特点,相比较基于全局拓扑结构实现的Allreduce、Allgather或Reduce-scatter等算法,Hybrid+算法支持单机和多机的分层通信,充分利用单机内部高速带宽的同时降低了多机之间的通信量,通信算子编译优化方案相比NCCL原生在性能上提升了50%以上。

    • 通信多流优化:通常情况下,因网络带宽没有被充分利用,会导致上层集合通信算法的跨机性能无法达到最优。而采用基于TCP/IP的多流功能,提升分布式训练的并发通信能力,可以实现多机训练性能提升5%~20%。

    • 多机CPU-Reduce:该优化继承了单机内CPU-Reduce高效的异步流水线,并将跨机Socket通信也设计为流水线形态,实现多机通信全过程流水化,有效减少通信延迟,提高整体训练性能。

      例如,在通信量较大的Transformer-based模型的多机训练场景下,多机CPU-Reduce优化方案可将端到端性能进一步提升20%以上。

计算侧优化特性

Deepytorch Training在计算侧对多种AI场景均有显著优化效果,其特性说明如下:

  • 针对LLM微调训练非定长序列场景,能够有效减少模型计算量,在多种ZeRO配置下无感地提升训练性能。

  • 针对Stable Diffusion训练场景,提供定制化的性能优化方案,能够在多种训练配置下无感地提升训练性能。

  • 针对PyTorch的编译模块,进行了性能和鲁棒性方面的增强,可以自动选择最优策略,对传统AI模型训练加速有显著提升。

安装和使用

使用Deepytorch Training工具对模型进行训练优化,能够显著提升训练性能。其具体使用方式,请参见安装和使用Deepytorch Training

相关文档

  • 安装Deepytorch会默认安装DeepNCCL。DeepNCCL是一种用于多GPU互联的AI通信加速库,能够实现更高效的多GPU互联通信,无感地加速分布式训练或多卡推理等任务。更多信息,请参见什么是AI通信加速库DeepNCCL

  • 除了Deepytorch Training训练加速器以外,DeepGPU还提供了推理加速器Deepytorch Inference。使用Deepytorch Inference工具可以对PyTorch模型提供高性能的推理加速,通过即时编译技术对模型进行推理优化,从而实现高效、快速的推理加速效果。更多信息,请参见什么是Deepytorch Inference(推理加速)安装和使用Deepytorch Inference

  • 本页导读 (1)