【Hello AI】AI加速器Deepytorch-面向生成式AI和大模型场景

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: Deepytorch作为阿里云自研的AI加速器,面向生成式AI和大模型场景,提供了训练和推理加速能力。

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

本文主要介绍Deepytorch在训练加速上的概念、优势及特性。

一、产品优势

  1. 训练性能显著提升

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

例如,不同模型下的训练性能对比如下:

模型

节点数 x GPU数

配置信息

端到端性能提升率

stable diffusion v2.1(模型训练方法:dreambooth)

1 x 1

  • batch size=5
  • fp16

提升22%

stable diffusion v2.1(模型训练方法:dreambooth)

1 x 1

  • batch size=5
  • fp16
  • 8-bit optimizer

提升21%

LLaMa-7B

2 x 8

  • ZeRO stage 1
  • micro batch size=4

提升15%

LLaMa-13B

2 x 8

  • ZeRO stage 2
  • micro batch size=2

提升29%

LLaMa-30B

2 x 8

  • ZeRO stage 3
  • micro batch size=4
  • activation recomputing

提升98%

LLaMa-65B

2 x 8

  • ZeRO stage 3
  • micro batch size=8
  • activation recomputing
  • params offload

提升30%

  1. 易用性好
  • Deepytorch具有充分兼容开源生态等特点,其兼容PyTorch主流版本,支持主流分布式训练框架。例如DeepSpeed、PyTorch FSDP或Megatron-LM等。
  • 使用Deepytorch时,仅需在Python训练代码中添加如下适配代码即可。
  • 导入Deepytorch库的示例代码:
import deepytorch as dpt
  • 封装训练模型的示例代码:
dpt.compile

二、特性说明

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

  1. 通信侧优化特性
  • 单机优化

单机内的优化主要针对不同硬件拓扑机型的通信优化。以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%以上。

  1. 计算侧优化特性

Deepytorch针对Pytorch 2.x的编译优化组件进行了性能和鲁棒性方面的增强,其特性说明如下:

  • 对TorchDynamo的字节码转换逻辑进行了鲁棒性方面的增强。如果Pytorch 2.x的编译优化组件无法成功处理字节转换,则会导致抓取的计算图被分割(即Graph Break),而使用Deepytorch能够有效避免该现象,并可以对Guard的性能进行优化。
  • 对AOT Autograd进行了优化,显著地提升了Memory Format不一致场景下的训练性能。
  • 对TorchInductor进行了优化,对部分算子(例如SDPA算子)带来额外的性能提升。
  • 针对Stable Diffusion训练场景提供定制化的性能优化方案,能够在多种训练配置下无感地提升训练性能。
  • 针对基于DeepSpeed ZeRO的LLM微调训练场景提供了定制化的性能优化方案,能够在多种ZeRO配置下无感地提升训练性能。


好啦!小弹的分享到此为止。我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8

【扫码填写上方调研问卷】

欢迎每位来到弹性计算的开发者们来反馈问题哦~

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
1天前
|
机器学习/深度学习 人工智能 算法
AI大模型学习理论基础
本文探讨了AI大模型学习的理论基础,包括深度学习(模拟神经元工作原理,通过多层非线性变换提取特征)、神经网络结构(如前馈、循环和卷积网络)、训练方法(监督、无监督、强化学习)、优化算法(如SGD及其变种)、正则化(L1、L2和dropout防止过拟合)以及迁移学习(利用预训练模型加速新任务学习)。这些理论基础推动了AI大模型在复杂任务中的应用和人工智能的发展。
|
4天前
|
人工智能 搜索推荐 决策智能
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
37 0
|
4天前
|
数据采集 存储 人工智能
【AI大模型应用开发】【LangChain系列】实战案例4:再战RAG问答,提取在线网页数据,并返回生成答案的来源
【AI大模型应用开发】【LangChain系列】实战案例4:再战RAG问答,提取在线网页数据,并返回生成答案的来源
30 0
|
4天前
|
数据采集 存储 人工智能
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
15 0
|
4天前
|
人工智能 Python
【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
9 0
|
4天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
20 0
|
4天前
|
人工智能 监控 数据可视化
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】0. 一文全览Tracing功能,让你的程序运行过程一目了然
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】0. 一文全览Tracing功能,让你的程序运行过程一目了然
9 0
|
4天前
|
人工智能 API 开发者
【AI大模型应用开发】0.2 智谱AI API接入详细步骤和简单应用
【AI大模型应用开发】0.2 智谱AI API接入详细步骤和简单应用
23 0
|
4天前
|
数据采集 人工智能 数据可视化
【AI大模型应用开发】【LangChain系列】4. 从Chain到LCEL:探索和实战LangChain的巧妙设计
【AI大模型应用开发】【LangChain系列】4. 从Chain到LCEL:探索和实战LangChain的巧妙设计
17 0
|
4天前
|
存储 人工智能 JSON
【AI大模型应用开发】【LangChain系列】3. 一文了解LangChain的记忆模块(理论实战+细节)
本文介绍了LangChain库中用于处理对话会话记忆的组件。Memory功能用于存储和检索先前的交互信息,以便在对话中提供上下文。目前,LangChain的Memory大多处于测试阶段,其中较为成熟的是`ChatMessageHistory`。Memory类型包括:`ConversationBufferMemory`(保存对话历史数组)、`ConversationBufferWindowMemory`(限制为最近的K条对话)和`ConversationTokenBufferMemory`(根据Token数限制上下文长度)。
13 0