AI加速引擎PAI-TorchAcc:整体介绍与性能概述

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: PAI-TorchAcc(Torch Accelerator)是阿里云人工智能平台PAI开发的Pytorch上的大模型训练加速框架。PAI-TorchAcc提供了一套基于Pytorch的简洁、易用的接口,无需进行模型转换就可以无缝地接入HuggingFace上的模型,并用多种分布式策略进行训练加速。本文详细介绍PAI-TorchAcc的产品能力与性能。

作者:沈雯婷、黄奕桐、艾宝乐、王昂、李永


1. 简介

PAI-TorchAcc(Torch Accelerator)是阿里云人工智能平台PAI开发的Pytorch上的大模型训练加速框架。

PAI-TorchAcc提供了一套基于Pytorch的简洁、易用的接口,无需进行模型转换就可以无缝地接入HuggingFace上的模型,并用多种分布式策略进行训练加速。

PAI-TorchAcc借助社区PyTorch/XLA,通过 LazyTensor 技术将Pytorch代码转换为静态执行图,基于计算图,结合阿里云上的计算资源情况,进行了大量的GPU硬件上模型训练的针对性分布式优化、计算优化。

得益于简单的模型接入方式、基于计算图的优化,PAI-TorchAcc能够灵活地支持各种大模型的多种规模,兼容不同的硬件。PAI-TorchAcc支持常见大模型1B-175B的训练,训练吞吐相对PyTorch原生、Megatron-LM均有提升,如LLaMA系列模型,相比PyTorch原生提升了140%,相比Megatron-LM提升了5%,在A100上MFU达到70%,8卡到128卡线性加速比达到15.6X。


2. 背景和需求

2.1 背景

  • 大模型训练

近年来,大语言模型、视频生成类模型迅速发展,它们基于庞大的文本、图片、视频等数据集进行训练,执行多种自然语言处理、图像生成、视频生成等任务,具备强大的理解和生成能力。随着计算资源和技术的不断进步,大模型的参数量已增长到数亿甚至数万亿级别,例如LLaMA、GPT-3、通义千问、Sora等,这些模型在许多基准测试上表现出了前所未有的性能。

然而,训练大模型需要极高的成本。比如使用Megatron-LM预训练一个OPT-175B模型需要上千张A100训练2个月[1],硬件利用率MFU约47%,期间因为硬件故障经历了几十次checkpoint的加载和续训练。使用PyTorch FSDP进行LLaMA-2-70B的微调也需要16张A100运行约13.5小时[2]。NVIDIA A100、H100等硬件资源价格高昂且不易获取,市面上也逐渐出现了其他性价比更高的硬件资源。

加速不同的大模型的预训练、续训练、微调,充分利用不同的硬件资源,提升资源利用率,是降低大模型训练成本的一个有效途径。

  • Megatron-LM

NVIDIA Megatron-LM[3]是一个基于 PyTorch 的分布式训练框架,用来训练基于Transformer的大模型。Megatron-LM综合应用了数据并行、模型并行、流水并行来实现GPT-3等特定模型的训练。然而,不同的大模型、训练数据集接入Megatron-LM十分不灵活,需要将checkpoint和数据格式进行转换。同时,Megatron-LM虽然对一些模型算子做了手动的优化,在面对不同模型的不同计算模式时,难以自动地应用这种手动的优化。

  • DeepSpeed

DeepSpeed[4]是微软开源的一个PyTorch上的大模型分布式训练框架,支持ZeRO和流水并行,并且可以结合Megatron-LM运行3D并行。DeepSpeed已经成为HuggingFace transformers库中一个训练组件。然而DeepSpeed性能表现较差,并且和Megatron-LM同样存在面对不同计算模式时无法灵活优化的限制。

  • PyTorch/XLA

PyTorch/XLA[5]将PyTorch和 OpenXLA相结合,使用LazyTenor技术,将PyTorch代码转换为静态执行图,在静态图上进行计算图优化和后端编译优化。Pytorch/XLA主要是针对TPU 场景进行优化,在GPU上还存在一定问题和优化空间,如不支持Transformers 模型常用的FlashAttention加速算子、不支持 torchrun 拉起、计算通信 Overlap 差、显存开销大等问题。

2.2需求

基于以上背景,我们需要一个大模型分布式训练引擎,能够方便接入多变的PyTorch模型,尤其是Transformer类模型,兼容多种硬件。在不同模型变化的计算模式下,在不同硬件变化的硬件架构和计算、访存能力下,能够自动地对计算进行优化,尤其在阿里云的硬件上能够表现较高的性能。同时,大模型导致单卡内存和显存无法完全放下,不同的模型需要结合不同的分布式策略,合理通信,完成多卡训练并提升线性加速比。


3. PAI-TorchAcc核心技术特性

灵活的模型接入

  • 支持LLaMA系列、Qwen、BaiChuan、ChatGLM、OLMo、Bloom等常见的大模型1B-175B的训练;
  • 无缝对接HuggingFace中的模型;
  • 一键接入和加速Pytorch模型。

千亿级模型参数量

  • 已经支持1B到175B大模型训练;

全面的训练模式

  • 支持混合精度训练,包括Float32、Float16、BFloat16等;
  • 支持Pytorch模型的预训练、微调和续训练。

组合的分布式策略

  • 支持Data Parallel、Tensor Parallel、Sequence Parallel、Fully Sharded Data Parallel、Pipeline等分布式策略及其组合。

自动计算优化和显存优化

  • 使用手动的Gradient Checkpoint和自动的Rematerialization降低峰值显存;
  • 自动进行显存规划和管理,降低峰值显存和减少显存碎片化;
  • 自动对Kernel进行编译优化,提高计算效率;
  • 自动接入SOTA的高性能Kernel。

兼容多种硬件

  • 兼容NVIDIA A100/800, H100/800, V100等;
  • 兼容阿里云上灵骏集群的硬件资源。

与现有框架对比



4. PAI-TorchAcc架构

4.1 总体架构

PAI-TorchAcc的架构自顶向下分为以下几层:

  • 模型层:支持计算机视觉、自然语言处理、语音合成等深度学习模型训练的加速;
  • 算法库:支持HuggingFace Transfomers、PAI-EasyNLP、TIMM等算法库构建的模型;
  • 前端:支持以PyTorch为前端语言的模型训练;
  • Lowering:使用LazyTensor、Symbolic Trace等技术将前端代码转换为静态执行图;
  • IR:使用多层中间表达,包含High-Level的设备无关的IR和Low-Level的设备相关的IR,基于两层IR上分别做计算图优化和后端编译优化。
  • 编译优化引擎:TorchAcc的编译优化引擎包括计算图优化引擎TorchAcc Compiler和多种后端编译优化引擎BladeDISC和OpenXLA。基于两层IR,进行分布式优化、显存优化、通信优化、计算优化以及算子调度和显存管理等优化,生成优化的设备码。
  • 硬件:最终产生硬件相关的设备码在不同算力、带宽和显存的硬件设备上执行。

4.2 接口

PAI-TorchAcc抽取了一套简洁的接口,灵活接入并加速任意的Pytorch模型,而不需要改动原有的模型代码。

通过 PAI-TorchAcc 加速模型训练一般需要三步:

  1. 定义 torchacc.Config,并指定加速选项。
  2. 调用 torchacc.accelerate,并传入model和config,完成加速训练的准备。
  3. 通过 torchacc.AsyncLoader对 torch dataset_loader 进行封装,加速数据加载。
 model = ...
  dataloader = ...

+ # 一行代码加速模型,也可传入Config配置更丰富的加速功能,如分布式策略、编译优化选项等
+ model = torchacc.accelerate(model)

+ # 异步加速数据加载
+ dataloader = torchacc.AsyncLoader(dataloader, model.device)

  model.train()
  for source, labels in dataloader:
      ...

4.3 编译优化

PAI-TorchAcc通过LazyTensor、Symbolic Trace等技术将前端Pytorch代码转换为静态执行图,并在静态图上进行自动优化,在分布式的硬件设备上高效运行。

计算图优化


在Tensor Graph上进行优化,这层优化基于High-Level IR——StableHLO进行。

  • 分布式: 通过分图和通信算子插入,完成流水并行、SPMD等。
  • 显存优化:通过算子级别的显存Live range和复用分析、静态调度策略、自动重算、显存管理优化等来减少显存的峰值和碎片化。
  • 计算优化:通过CSE等简化计算,通过算子大粒度融合来优化访存密集型算子,减少kernel launch,减少访存,提升计算效率;通过自动的计算图匹配重写的方式接入Flash Attention等高性能Kernel。
  • 通信优化:通过通信算子的合并、拆分、异步化以及算子的调度来提升通信效率,提高计算和通信的overlap。

后端编译优化

在Buffer Graph上进行优化,这层优化基于Low-Level的IR,包括LHLO、LLVM IR和多种MLIR的dialect。

  • 多后端:支持OpenXLA和阿里自研的BladeDISC两种编译后端;
  • Lowering和Codegen:将上层的StableHLO Lowering成LHLO和多种MLIR的dialect,并在各级Lowering过程中进行优化,最终表达为LLVM IR,通过LLVM生成针对硬件的优化代码;
  • Custom Call:High-Level IR自动Pattern rewrite的优化kernel,通过custom call调用。

5. 实践案例和性能

PAI-TorchAcc在A100上能够达到70%的MFU,并且在多卡下几乎线性扩展(8卡到128卡加速比15.6X),在灵活支持各种模型的基础上,性能能够高于Megatron-LM。我们在常见的开源大模型上做了性能测试,使用相同的硬件资源,PAI-TorchAcc的训练吞吐相对PyTorch原生、Megatron均有提升,如LLaMA系列模型相对PyTorch原生提升了140%,相对Megatron提升了5%。

我们将在后续的系列文章中提供一个具体的实践案例:PAI-TorchAcc在OLMo模型训练上的接入示例和加速效果,并且给出加速的来源分析。

6. 总结和未来展望

PAI-TorchAcc可以灵活接入Pytorch模型,并通过并行化策略、显存优化、计算优化和调度优化等方法来加速大模型以及视觉类、语音类模型的训练。PAI-TorchAcc已经在常见大模型上如LLaMA、LLaMA-2、BaiChuan、ChatGLM、QWen、OLMo、Bloom取得了不错的效果。未来我们将从以下方向继续深入优化,以支持更多的场景,取得更好的加速效果。

  1. Graph Capture优化和子图编译:在生成计算图的过程中遇到无法识别的算子将导致编译失败,我们将进一步优化Graph Capture,并支持子图的编译优化。
  2. 自动分布式:PAI-TorchAcc提供了多种分布式策略,然而在不同的模型和硬件上,使用哪种组合的分布式策略、如何进行分图能够取得最优的性能,仍然需要根据经验手动配置。PAI-TorchAcc将借助静态计算图和模型、硬件特性,做自动的分布式。
  3. AutoGC:借助静态计算图和模型、硬件特性,自动进行checkpoint选点。
  4. 动态Shape性能优化:动态Shape导致重编译引起的性能下降,当前我们通过分桶的方式减少了重编译的次数,仍然存在大量的padding,如何做更高性能的动态Shape支持,是一个深入优化的方向。
  5. 自研编译优化引擎BladeDISC的优化。

引用

[1] https://arxiv.org/pdf/2205.01068.pdf

[2] https://huggingface.co/blog/ram-efficient-pytorch-fsdp

[3] https://github.com/NVIDIA/Megatron-LM

[4] https://github.com/microsoft/DeepSpeed

[5] https://github.com/pytorch/xla


相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
16天前
|
人工智能 运维 安全
AI 安全架构概述
AI 安全架构涵盖数据采集、模型训练、推理部署等阶段,确保安全性、隐私与合规。其核心组件包括数据层、模型层、推理层、应用层和运维层,针对数据安全威胁(如数据投毒)、模型窃取、对抗攻击及系统漏洞等风险,提出数据加密、对抗训练、联邦学习等防御策略,并强调开发前、开发中和部署后的最佳实践,以降低 AI 解决方案的安全风险。
95 13
|
14天前
|
人工智能 安全 数据可视化
一键部署谷歌最新开源多模态AI模型 Gemma 3:单GPU性能碾压Llama!支持35+种语言
Gemma 3 是谷歌最新推出的开源多模态AI模型,支持超过35种语言,具备文本、图像及短视频处理能力,提供四种模型尺寸,优化单GPU性能,适用于多种AI应用场景。
264 8
一键部署谷歌最新开源多模态AI模型 Gemma 3:单GPU性能碾压Llama!支持35+种语言
|
2天前
|
人工智能 城市大脑 新制造
AI赋能:高质量发展新引擎与生成式人工智能(GAI)认证的兴起
人工智能(AI)正成为推动高质量发展的核心动力,从智能制造到智慧城市,应用场景日益丰富。内蒙古等地抢抓AI发展机遇,通过智慧矿山、城市大脑等项目实现产业升级。生成式人工智能(GAI)认证的引入,填补了AI技能培养的空白,为企业和求职者提供了科学规范的标准。未来,需进一步融合AI赋能与GAI认证,加强人才培养与政策支持,推动经济社会持续健康发展。
|
26天前
|
人工智能 智能设计 自然语言处理
2024云栖大会回顾|PAI ArtLab x 通往AGI之路系列活动,PAI ArtLab助力行业AI创新
2024云栖大会回顾|PAI ArtLab x 通往AGI之路系列活动,PAI ArtLab助力行业AI创新
|
1月前
|
机器学习/深度学习 人工智能 编解码
阿里开源AI视频生成大模型 Wan2.1:14B性能超越Sora、Luma等模型,一键生成复杂运动视频
Wan2.1是阿里云开源的一款AI视频生成大模型,支持文生视频和图生视频任务,具备强大的视觉生成能力,性能超越Sora、Luma等国内外模型。
784 2
阿里开源AI视频生成大模型 Wan2.1:14B性能超越Sora、Luma等模型,一键生成复杂运动视频
|
1月前
|
人工智能 编解码 算法
ENEL:3D建模革命!上海AI Lab黑科技砍掉编码器,7B模型性能吊打13B巨头
ENEL是由上海AI Lab推出的无编码器3D大型多模态模型,能够在多个3D任务中实现高效语义编码和几何结构理解,如3D对象分类、字幕生成和视觉问答。
73 9
ENEL:3D建模革命!上海AI Lab黑科技砍掉编码器,7B模型性能吊打13B巨头
|
1月前
|
人工智能 自然语言处理 运维
AI性能极致体验:通过阿里云平台高效调用满血版DeepSeek-R1模型
DeepSeek是近期热门的开源大语言模型(LLM),以其强大的训练和推理能力备受关注。然而,随着用户需求的增长,其官网在高并发和大数据处理场景下常面临服务不稳定的问题。本文将深度测评通过阿里云平台调用满血版DeepSeek模型(671B),以充分发挥其性能和稳定性。阿里云提供高效、低延迟、大规模并发支持及稳定的云服务保障,并为用户提供100万免费token,简化操作流程,确保企业在AI应用上的高效性和成本效益。尽管如此,DeepSeek API目前不支持联网搜索和图片、文档分析功能,需结合其他工具实现。
996 17
|
1月前
|
机器学习/深度学习 数据采集 人工智能
容器化机器学习流水线:构建可复用的AI工作流
本文介绍了如何构建容器化的机器学习流水线,以提高AI模型开发和部署的效率与可重复性。首先,我们探讨了机器学习流水线的概念及其优势,包括自动化任务、确保一致性、简化协作和实现CI/CD。接着,详细说明了使用Kubeflow Pipelines在Kubernetes上构建流水线的步骤,涵盖安装、定义流水线、构建组件镜像及上传运行。容器化流水线不仅提升了环境一致性和可移植性,还通过资源隔离和扩展性支持更大规模的数据处理。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
Java+机器学习基础:打造AI学习基础
随着人工智能(AI)技术的飞速发展,越来越多的开发者开始探索如何将AI技术应用到实际业务场景中。Java作为一种强大的编程语言,不仅在企业级应用开发中占据重要地位,在AI领域也展现出了巨大的潜力。本文将通过模拟一个AI应用,从背景历史、业务场景、优缺点、底层原理等方面,介绍如何使用Java结合机器学习技术来打造一个AI学习的基础Demo。
116 18
|
7天前
|
人工智能 JSON 物联网
基于 PAI-ArtLab 使用 ComfyUI 搭建对话式 AI 女友
本实验介绍了一款名为“AI虚拟女友——胡桃”的应用,通过ComfyUI后端与WebUI展示效果,结合LLM节点和知识图谱工具包(KG),实现角色人设稳定及长期记忆功能。用户可通过输入信息与AI互动,并自定义人设知识图谱和角色LoRA。操作步骤包括登录PAI ArtLab平台、加载工作流文件、配置角色参数并与AI对话。此外,还提供了Graph RAG技术详解及常见问题解答,帮助用户更好地理解和使用该系统。

热门文章

最新文章

相关产品

  • 人工智能平台 PAI