首页 > 其他分享 >大规异构集群 混合并行分布式训练系统,解决算力不均衡问题 HETHUB

大规异构集群 混合并行分布式训练系统,解决算力不均衡问题 HETHUB

时间:2024-09-30 15:22:09浏览次数:10  
标签:异构 HETHUB 模型 并行 大规 加速器 GPU 算力 分布式

视频教程在这:

3.2大规模异构集群,混合并行分布式系统,解释算力不均衡问题HETHUB_哔哩哔哩_bilibili

一、大规模异构集群出现的原因:

同一种GPU数量有限难以构建大规模集群:训练大规模模型依赖于大量的计算资源。例如,训练GPT-4模型(1.8万亿个参数)需要25000个A100 GPU。用一种GPU加速器构建大规模集群是一个挑战。使用多种类型的GPU加速器构建大规模集群是解决同构GPU加速器不足问题的有效方法。

然而,现有的大规模模型分布式训练系统只支持同构GPU加速器,不支持异构GPU加速器

因此出现了大规模模型的混合并行分布式训练系统HETHUB,该系统支持异构集群,包括AMD、Nvidia GPU和其他类型的GPU加速器。它引入了一个分布式统一通信器来实现异构GPU加速器之间的通信,一个分布式性能预测器和一个自动并行规划器来使用异构GPU加速器高效地开发和训练模型。与具有同构GPU加速器的分布式训练系统相比,我们的系统可以支持异构GPU加速器的六种组合。我们在具有768个GPU加速器(128个AMD和640个GPU加速器a)的异构集群上训练Llama-140B模型。实验结果表明,我们的系统在异构集群中的最佳性能达到了理论上限性能的97.49%。

二、异构大规模集群的挑战

1) 通信挑战。不同类型的GPU加速器不能直接相互通信,因为不同类型的CPU加速器有不同的通信库,如Nvidia GPU使用NCCl,GPU加速器C使用HCCL。

2) 算力不均衡的分布式训练挑战。为异构集群中的大规模模型设计和实现最优的分布式训练策略非常困难。不同类型GPU加速器的计算和存储差异以及大规模模型的计算通信强耦合特性导致分布式策略的数量随着异构GPU加速器、层或模型运算符的数量呈指数级增长。

3) 准确性挑战。不同类型GPU加速器上算子的精度差异将使模型的精度难以达到齐次聚类的精度。

因此大规模模型的混合并行分布式训练系统HETHUB,做了如下工作。

1、异构通信:我们构建了一个分布式统一通信器来支持不同GPU加速器之间的通信。该通信器包括两个通信库,一个是基于CPU的以太网或IPoIB通信器;另一个是具有IB或RoCE的基于GPU的通信器,它定义了一个统一的通信接口以适应多种类型的GPU加速器。

2、分布式性能预测器,以帮助评估异构集群上模型的分布式训练策略。我们在一个小集群上进行自动分析,并构建性能评估模型。然后,该性能评估模型可用于进行性能预测,以指导大规模集群上分布式训练策略的决策。

3、自动并行规划器,它可以为给定的模型和异构集群拓扑自动搜索最优的分布式并行策略。它可以提高开发和模型计算效率。

异构通信请参考前面的博客和视频

GPU与国产芯片异构通信方案,异构万卡集群 初步调研-CSDN博客

3.1异构万卡集群,GPU与国产计算卡芯片异构通信_哔哩哔哩_bilibili

今天我们重点讲一下,算力不均衡的分布式训练挑战

三、算力不均衡非均匀拆分策略

针对异构算力,不均衡算力,模型拆分的基本思路

3.1 基于流水线并行的非均匀拆分策略

在大语言模型的训练中,采用基于流水线并行的异构训练方案,通过非均匀拆分transformer层,可有效应对算力不均衡的难题。可以根据各芯片的实际算力,让算力较高的芯片处理更多的层,算力较低的芯片处理更少的层,从模型结构角度,每层的计算量是一致的,所以按算力比作为层拆分比例可以达到最好的效果。例如,假设芯片A的算力是芯片B的4倍,则可以让芯片A计算4层transformer模块,让芯片B计算1层transformer模块,以此达到资源的最优配置,理论上可实现最高的吞吐性能。

3.2 基于数据并行的异构训练

基于数据并行的异构训练,同样可通过调整不同芯片上的数据批处理规模,来应对算力差异。例如,在芯片A算力为芯片B的4倍情形下,可以让芯片A每轮迭代计算4个batch,而芯片B仅计算1个batch,以此平衡各芯片的工作负载,达到理论上的最优吞吐率。

3.3 异构节点的流水线并行 

考虑到异构gpu加速器之间的通信性能低于同构gpu加速器之间的通信性能,我们在

1、同构节点上采用数据并行

2、节点内张量并行

3、跨异构节点的流水线并行

四、异构算力模型自动拆分过程

根据模型拆分的基本思路,构建检索空间,检索出模型最终拆分方式。

4.1 构建搜索空间

构建了一个三级搜索树来表示模型分布式训练策略的搜索空间。其中根节点表示整个模型,其他节点表示拆分后的子模型。此外,叶节点表示在单个GPU加速器中执行的最终模型。

第一层:使用非均匀流水线并行拆分策略,根据变压器层的总数对模型进行拆分。拆分的目的是确保不同类型GPU加速器的计算负载平衡。

第二层:将子模型拆分为使用统一数据并行策略的同构节点。

第三层:使用统一张量并行策略将模型拆。

经过三层分割后,完整的模型可以映射到异构集群进行训练。

4.2 搜索分布式训练策略。

为了充分利用异构GPU加速器资源,我们给出了两条以负载平衡和最小端到端训练时间为目标的规则,以指导在构建的搜索树中进行分布式并行策略搜索。

1) 负载平衡。根据异构GPU加速器的计算资源和模型层的计算要求,我们不规则地划分模型层,以尽可能地平衡不同GPU加速器之间的计算任务。也就是说,具有高计算资源的GPU加速器执行更多层。

2) 最短的端到端训练时间。我们根据不同类型GPU加速器上阶段的执行时间和阶段之间的通信时间,将流水线并行中的阶段安排到不同类型的GPU加速器上,以优化端到端的训练时间。

参考资料:

GPU与国产芯片异构通信方案,异构万卡集群 初步调研-CSDN博客

HETHUB: A distributed training system with heterogeneous cluster for large-scale modelsA Heterogeneous distributed hybrid training system for large-scale models (arxiv.org)

标签:异构,HETHUB,模型,并行,大规,加速器,GPU,算力,分布式
From: https://blog.csdn.net/lianghuaju/article/details/142636318

相关文章

  • 无问芯穹亮相中国算力大会,以大模型基础设施驱动AI高质量发展
    9月27日至29日,2024中国算力大会在河南郑州举行,这是我国算力产业领域的全国性顶级盛会,由河南省人民政府统筹指导,工业和信息化部、中国信通院联合主办。大会以“聚智向新算领未来”为主题,搭建“政产学研用”对接平台,集中展示了我国AI算力产业的创新成果,得到国家相关部委及地方......
  • 一次基于AST的大规模代码迁移实践
    一次基于AST的大规模代码迁移实践 作者:来自vivo互联网大前端团队-WeiXing在研发项目过程中,我们经常会遇到技术架构迭代更新的需求,通过技术的迭代更新,让项目从新的技术特性中受益,但由于很多新的技术迭代版本并不能完全向下兼容,包含了很多非兼容性的改变(BreakingChange......
  • 利用大规模无监督学习提升药物分子表示
    人工智能咨询培训老师叶梓转载标明出处在人工智能驱动的药物设计和发现领域,获取具有信息量的分子表示是一个至关重要的前提。近年来,研究者们将分子抽象为图,并利用图神经网络(GNNs)进行分子表示学习,展现出了巨大的潜力。然而,实际应用中GNNs面临着两个主要问题:一是用于监督训练的......
  • 一次基于AST的大规模代码迁移实践
    作者:来自vivo互联网大前端团队-WeiXing在研发项目过程中,我们经常会遇到技术架构迭代更新的需求,通过技术的迭代更新,让项目从新的技术特性中受益,但由于很多新的技术迭代版本并不能完全向下兼容,包含了很多非兼容性的改变(BreakingChanges),因此我们需要设计一款工具,帮助我们完成大规......
  • 一次基于AST的大规模代码迁移实践
    作者:来自vivo互联网大前端团队-WeiXing在研发项目过程中,我们经常会遇到技术架构迭代更新的需求,通过技术的迭代更新,让项目从新的技术特性中受益,但由于很多新的技术迭代版本并不能完全向下兼容,包含了很多非兼容性的改变(BreakingChanges),因此我们需要设计一款工具,帮助我们完成......
  • RusTitW:大规模语言视觉文本识别数据集(猫脸码客 第190期)
    RusTitW:RussianLanguageVisualTextRecognition一、引言在信息爆炸的现代社会,文本作为信息传递的重要载体,扮演着不可或缺的角色。随着计算机视觉与模式识别技术的飞速发展,自动化文本识别(OCR,OpticalCharacterRecognition)技术日益成熟,极大地提升了信息处理的效率与准确性。......
  • Nginx 在处理大规模分布式系统时有哪些性能优化技巧?
    在处理大规模分布式系统时,Nginx可以通过多种方式进行性能优化。以下是一些有效的性能优化技巧:优化Worker进程与连接数:根据服务器的CPU核数设置worker_processes参数,通常设置为自动检测或等于CPU核心数。调整worker_connections参数,以确定每个worker进程能处理的最大连......
  • 如何在生成式AI里使用 Ray Data 进行大规模 RAG 应用的 Embedding Inference
    检索增强生成(RAG,即RetrievalAugmentedGeneration)是企业级生成式AI(GenAI)应用的热门案例之一。多数RAG教程演示了如何利用OpenAIAPI结合Embedding模型和大语言模型(LLM)来进行推理(Inference)。然而,在开发过程中,如果能使用开源工具,就可以免去访问自己数据的费用,同时也能加......
  • baichuan_lmdeploy大规模对话问答语言模型
    Baichuan论文无模型结构Baichuan系列模型是由百川智能开发的开源大规模预训练模型,包含7B和13B等规模。其中,Baichuan-7B在大约1.2万亿tokens上训练的70亿参数模型,支持中英双语,上下文窗口长度为4096。模型具体参数:模型名称隐含层维度层数头数词表大小总参数量训练数据(toke......
  • 米尔STM32MP2核心板首发新品上市!高性能+多接口+边缘算力
    米尔发布基于STM32MP257设计的嵌入式处理器模块MYC-LD25X核心板及开发板。核心板基于STM32MP2系列是意法半导体推出最新一代工业级64位微处理器,采用LGA252PIN设计,存储配置1GB/2GBLPDDR4、8GBeMMC,具有丰富的通讯接口,适用于高端工业HMI、边缘计算网关、新能源充电桩、储能EMS系......