AI加速引擎 PAI-TorchAcc:OLMo训练加速最佳实践

这篇具有很好参考价值的文章主要介绍了AI加速引擎 PAI-TorchAcc:OLMo训练加速最佳实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. PAI-TorchAcc 简介

PAI-TorchAcc(Torch Accelerator)是阿里云机器学习平台开发的Pytorch上的大模型训练加速框架。

PAI-TorchAcc借助社区PyTorch/XLA,通过 GraphCapture 技术将 Pytorch 动态图转换为静态计算图,基于计算图进行分布式优化、计算优化、显存优化等,为包括大语言模型在内的Pytorch上的模型提供高效训练支持。相比于社区Pytorch/XLA,PAI-TorchAcc具有更好的易用性、更高的性能和更丰富的功能。更详细的介绍可以见文章:AI加速引擎PAI-TorchAcc:整体介绍与性能概述。

2. 完全开源的 OLMo 模型

OLMo (Open Language Model) 是由艾伦人工智能研究所等机构发表的完全开源的大语言模型。OLMo 模型提供了完整的训练数据集、代码、checkpoint 等,几乎完全开源了一个大语言模型从零开始训练所需的代码和数据。不仅如此,OLMo 模型在多项核心指标上接近而且部分超过 LLAMA2 模型。

3. 如何使用 PAI-TorchAcc 加速 OLMo 模型训练?

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

  1. 定义 torchacc.Config,并指定加速选项。
  2. 调用 torchacc.accelerate,并传入model和config,完成加速训练的准备。
  3. 通过 torchacc.AsyncLoader对 torch dataset_loader 进行封装,加速数据加载。
# 定义 model 和 dataloader
model = AutoModelForCausalLM.from_pretrained("allenai/OLMo-1B", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-1B", use_fast=False, trust_remote_code=True)
train_loader = get_dataloader(tokenizer)

# 定义 TorchAcc Config
config = torchacc.Config()
config.compute.bf16 = True # 开启 bf16
config.compute.acc_scaled_dot_attn = True # 自动替换 Torch ScaledDot 为torchacc flash attn 版本
config.dist.fsdp.size = torchacc.dist.world_size() # 开启 FSDP,设置 FSDP 数目
config.dist.fsdp.wrap_layer_cls = {"OlmoSequentialBlock"} # 将OLMo模型的decoder layer进行FSDP封装

# 一行代码加速模型
model = torchacc.accelerate(model, config)

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

# training loop
...

阿里云 DSW Gallery 现在有更完整的 OLMo 模型加速示例:https://pai.console.aliyun.com/?regionId=cn-wulanchabu#/dsw-gallery/preview/deepLearning/torchacc/train_olmo

4. PAI-TorchAcc 的性能表现

以单机 8 卡 A100 为例,在 OLMo 1B 上,PAI-TorchAcc 相比 PyTorch FSDP 加速比为 1.64X;在 OLMo 7B 上,PAI-TorchAcc 相比 PyTorch FSDP 加速比为 1.52X。

AI加速引擎 PAI-TorchAcc:OLMo训练加速最佳实践,云栖号技术分享,人工智能,大数据,阿里云,ai

图 1: PAI-TorchAcc 相比 PyTorch FSDP 在 OLMo 模型上的性能提升

5. PAI-TorchAcc 为何这么快?

在 OLMo 模型的性能对比中,PAI-TorchAcc和 PyTorch 都采用相同的分布式策略 FSDP(ZeRO-3)。PAI-TorchAcc 通过计算优化、通信优化、显存优化等,在 OLMo 7B 上相比 PyTorch 达到了 1.52X 的加速比。下面我们以 OLMo 7B 为例分析 PAI-TorchAcc 的性能收益来源。

计算优化&通信优化

为了方便对比,我们将 PAI-TorchAcc和 PyTorch 的 micro batch size都设置为 2 进行对比。

从图 2 中可以看出,通过计算优化,PAI-TorchAcc 将访存密集型算子的时间优化为 PyTorch 对应算子时间的 45.56%,整体的加速比约为 1.25X。通过通信优化,PAI-TorchAcc 能够将计算和通信更好进行 overlap,将没有 overlap 的通信占整体时间的占比从 8.19%降低到 2.43%。

通过计算优化&通信优化,PAI-TorchAcc 相比PyTorch达到了 1.32X 的加速比。

AI加速引擎 PAI-TorchAcc:OLMo训练加速最佳实践,云栖号技术分享,人工智能,大数据,阿里云,ai

图 2: micro batch size=2 时,PAI-TorchAcc 相比 PyTorch FSDP 在 OLMo 7B 上的性能提升

显存优化

在 PAI-TorchAcc 中,由于 PyTorch 模型已经转换为静态计算图,所以可以使用比较多的显存优化方法。例如,通过对算子的执行顺序进行调整,可以得到更小的显存峰值;通过更优的显存分配算法,可以让显存碎片更少,减少显存使用;通过 patten match 等方式将 attention 替换为使用显存更少的 flash attention 等等。

通过显存优化,PAI-TorchAcc 的最大 micro batch size 能够达到 4,而 PyTorch 的最大 micro batch size 只能达到 2,这使得PAI-TorchAcc 能够获得更高的性能加速比,这一部分的性能收益主要来自于计算密集型算子。

如图 3 所示,PAI-TorchAcc micro batch size=4 相比 micro batch size=2 的吞吐加速比为 1.15X,这使得PAI-TorchAcc 相比 PyTorch 最终达到了 1.52X 的加速比。

AI加速引擎 PAI-TorchAcc:OLMo训练加速最佳实践,云栖号技术分享,人工智能,大数据,阿里云,ai

图 3: 在不同 micro batch size 下,PAI-TorchAcc 相比 PyTorch FSDP 在 OLMo 7B 上的性能提升

6. 总结

本文介绍了如何使用 PAI-TorchAcc 加速 OLMo 模型训练,分析了PAI-TorchAcc 的性能收益来源。实际上,PAI-TorchAcc可以通过并行化策略、显存优化、计算优化和调度优化等方法来加速更多的大语言模型训练,目前已接入常见的开源大模型,包括LLaMA、LLaMA-2、BaiChuan、ChatGLM、QWen等。除了大语言模型之外,PAI-TorchAcc也易于接入视觉类、语音类模型,并大幅度提升训练性能。欢迎在阿里云上使用该产品。

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

原文链接

本文为阿里云原创内容,未经允许不得转载。文章来源地址https://www.toymoban.com/news/detail-843527.html

到了这里,关于AI加速引擎 PAI-TorchAcc:OLMo训练加速最佳实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [论文笔记] PAI-Megatron 1、Qwen continuing pretrain(CT)千问预训练

    通义千问开源模型在PAI灵骏的最佳实践 - 知乎 https://github.com/alibaba/Pai-Megatron-Patch/blob/main/examples/megatron.md         目标:使用qwen基座来做CT。         数据情况:预训练数据已经用qwen-tokenizer分过词。所以不需要准备数据。如果需没有数据,也可以从Pai-Megatron上拉数据。  

    2024年01月20日
    浏览(24)
  • Diffusion预训练成本降低6.5倍,微调硬件成本降低7倍!Colossal-AI完整开源方案低成本加速AIGC产业落地

    如何更好、更快和更便宜地实现训练、微调AIGC模型 ,已成为AIGC商业化和应用爆发的最大痛点。 Colossal-AI基于在大模型民主化的专业技术积累, 开源完整Stable Diffusion预训练和个性化微调方案,预训练时间加速和经济成本降低6.5倍,个性化微调硬件成本降低7倍!在个人电脑的

    2024年02月09日
    浏览(38)
  • PTM:大模型加速方法或框架(预训练阶段/推理阶段)的简介、常用框架(Megatron-LM/Colossal-AI/DeepSpeed等,FasterTransformer/FastLLM/vLLM

    PTM:大模型加速方法或框架(预训练阶段/推理阶段)的简介、常用框架(Megatron-LM/Colossal-AI/DeepSpeed等,FasterTransformer/FastLLM/vLLM/TurboTransformers等)、案例应用之详细攻略 导读 :不同训练框架实现参数高效微调算法的效率会存在很大差异:比如使用Huggingface Transformers、DeepSpeed和Alpa训

    2024年02月07日
    浏览(26)
  • 保姆级教程 | PAI x EasyPhoto,节日氛围AI写真生成

    活动地址: https://developer.aliyun.com/topic/aigc_pai/newyear 生成式AI技术批量产出真/像/美的个人写真应用非常受欢迎。近期上线的EasyPhoto 作为一款开源的 SD WebUI 插件,提供更灵活、易用的开发方式,受到大量开发者们的关注和好评,用户可通过上传若干张同一人的照片,即可快速

    2024年01月25日
    浏览(25)
  • 基于 PAI-DSW 使用 SD WebUI 实现AI扩图功能

    在本教程中,您将学习如何在阿里云交互式建模(PAI-DSW)中,使用Stable-Diffusion-WebUI实现AI扩图功能。 随着AIGC技术的落地发展,越来越多的创新玩法闯进了我们视野,AI扩图便是其中之一。只需给AI一张图片,AI就会根据图像的上下文语义信息,预测和补充图像边界,生成一张

    2024年01月20日
    浏览(33)
  • 阿里云机器学习PAI全新推出特征平台 (Feature Store),助力AI建模场景特征数据高效利用

    推荐算法与系统在全球范围内已得到广泛应用,为用户提供了更个性化和智能化的产品推荐体验。在推荐系统领域,AI建模中特征数据的复用、一致性等问题严重影响了建模效率。 阿里云机器学习平台 PAI 推出特征平台(PAI-FeatureStore) 。在所有需要特征的AI建模场景,用户可

    2024年02月11日
    浏览(24)
  • 【阿里云PAI】基于阿里云使用Stable Diffusion XL Turbo模型和DiffSynth UI实现AI作画

    在本教程中,您将学习如何在阿里云交互式建模(PAI-DSW)中,使用Stable Diffusion XL Turbo模型和DiffSynth UI实现AI作画,涂鸦也能生成精美画作。 基于开源Stable Diffusion XL Turbo模型和DiffSynth UI,我们支持文图生成的基础上,也支持交互式的图像到图像生成,实现图像编辑功能,用户

    2024年04月13日
    浏览(20)
  • 亮相亚太 CDN 峰会,火山引擎 CDN 与加速助力数字化业务加速发展

    6月28日- 6月29日,2023 全球分布式云大会和第十二届亚太内容分发大会暨 CDN 峰会在北京成功举办。火山引擎凭借在边缘云领域持续的技术积累、丰富的场景应用、创新的产品与解决方案,荣登“分布式云与算力创新企业榜单”,“中国边缘加速创新企业榜单”与“中国全球加

    2024年02月16日
    浏览(23)
  • 静态网页加速器:优化性能和交付速度的 Node.js 最佳实践

    如何使用 Node.js 发布静态网页 在本文中,我们将介绍如何使用 Node.js 来发布静态网页。我们将创建一个简单的 Node.js 服务器,将 HTML 文件作为响应发送给客户端。这是一个简单而灵活的方法,适用于本地开发和轻量级应用。 1、创建静态网页: 例如静态网页websites.html。创建

    2024年02月14日
    浏览(27)
  • LORA大模型加速微调和训练算法

    ChatGPT带领着大模型像雨后春笋一般层出不穷,大家都对大模型微调跃跃欲试,现在咱们聊聊其中的常见的算法 1 LORA 低秩适应 理论 Lora( Low-Rank Adaotation),低秩自适应模型微调的方法,它冻结预训练模型的权重,并将可训练的秩分解矩阵注入到transformer架构的每一层,从而大大

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包