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。