CN114035936B - 一种基于人工智能的多维并行处理方法、***、设备和可读存储介质 - Google Patents
一种基于人工智能的多维并行处理方法、***、设备和可读存储介质 Download PDFInfo
- Publication number
- CN114035936B CN114035936B CN202111203399.XA CN202111203399A CN114035936B CN 114035936 B CN114035936 B CN 114035936B CN 202111203399 A CN202111203399 A CN 202111203399A CN 114035936 B CN114035936 B CN 114035936B
- Authority
- CN
- China
- Prior art keywords
- data
- parallel
- model
- processors
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 47
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 238000012549 training Methods 0.000 claims abstract description 81
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 68
- 230000008569 process Effects 0.000 claims abstract description 42
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 3
- 239000011159 matrix material Substances 0.000 claims description 103
- 238000004422 calculation algorithm Methods 0.000 claims description 53
- 238000004364 calculation method Methods 0.000 claims description 45
- 238000003058 natural language processing Methods 0.000 claims description 25
- 230000011218 segmentation Effects 0.000 claims description 12
- 238000010801 machine learning Methods 0.000 claims description 8
- 238000013461 design Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000013136 deep learning model Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 230000002829 reductive effect Effects 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 41
- 201000005947 Carney Complex Diseases 0.000 description 21
- 235000019687 Lamb Nutrition 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 238000005192 partition Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000002645 vision therapy Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
Abstract
本申请属于人工智能领域,涉及一种基于人工智能的多维并行处理***和方法。训练过程中,通过数据并行,自动管理待处理数据,将待处理数据分配到硬件处理器上;序列并行,对数据进行切分和分配,将每个待处理数据放到多个处理器;流水并行,将模型分成多段,各段部署在不同的硬件处理器,并按模型顺序串接,以及多维模型并行,对调度到所述处理器的所述待处理数据的训练模型执行网络模型划分,将训练模型调度至多个所述处理器中,优化器对模型的参数进行更新完成训练过程。在推理过程中,也采用上述的资源调度和多维并行技术。通过在AI模型训练和推理过程中引入多维并行处理,降低AI对计算资源的消耗,提升人工智能部署效率并最小化部署成本。
Description
技术领域
本发明属于人工智能深度学习领域,具体的,涉及一种基于人工智能的多维并行处理方法、***、设备和可读存储介质。
背景技术
近几年,AI训练市场出现需求拐点,算力市场上需求急速扩大,需要提高算力使用效率,大规模算法在最近两年开始爆发式突破,而且新算法和新模型还会不断涌现,市场对算力的需求会越来越大,大模型无法用单块GPU训练,因为模型参数量太大,放不到单块GPU的显存当中;即使能够放下,训练时间也无法接受,硬件算力的增长趋势远远跟不上模型对算力的需求,必须使用更多硬件(芯片)弥补算力增长短板。
企业场景下,大规模部署时涉及到大量的因素,包括时延、吞吐量、成本、负载均衡等等,主要困难包括通信瓶颈造成算力效率难以提升:现有训练中GPU算力的最高利用率也只有30%,计算、存储、网络资源需要在不同任务间共享,涉及隔离和调度的问题,不同任务需要不同的多维并行处理解决方案和硬件,有额外的软硬件成本。
发明内容
针对上述介绍的现有技术的缺陷,本发明将打造一个高效率低耗能、适用于AI大模型的多维并行处理方法和***,帮助企业在最大化提升人工智能部署效率的同时,还能将部署成本最小化。
本申请实施例提供了一种基于人工智能的多维并行处理方法、***、设备及介质。
第一方面,本申请实施例提供了一种基于人工智能的多维并行处理方法,用于硬件处理器,所述方法执行于软件平台,使用机器学习库;
其特征在于,所述方法包括步骤:
数据并行,自动管理来自用户请求的待处理数据,将所述待处理数据分配到各个所述硬件处理器上;
序列并行,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个所述处理器中;
多维模型并行,针对调度到所述处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个所述处理器中;
所述待处理数据包括图片处理任务和/或自然语言处理任务;
所述多维模型并行包括2维和/或2.5维和/或3维的网格并行。
在上述第一方面的一种可能的实现中,所述步骤自动管理来自用户请求的待处理数据,将所述待处理数据分配到各个所述硬件处理器上还包括:
所述数据并行中数据被划分,每一个节点或者进程都有一份模型,各个节点取不同的数据的batchsize,然后各自完成前向和后向的计算得到梯度,这些进行训练的进程为worker,除了worker,还有参数服务器,psserver,这些worker会把各自计算得到的梯度送到psserver,由psserver来进行update操作,把update后的模型再传回各个节点;
所述数据并行能扩大等效batchsize,即等效批次大小,通过并行处理器数*单个处理器batchsize计算,加速计算。
在上述第一方面的一种可能的实现中,所述进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个所述处理器中,具体包括:
所述序列并行延长transformer类模型所接收数据的长度,处理NLP中的长文本和CV任务中的高分辨率图片,即大图片和/或视频,其中图片可以切割成小块的图片,所有小图片依次排列也是序列;视频本身就是图片的序列,每张图片也可以再切分;
在获取到计算资源后,所述图片处理任务和/或图片的特征数据进行处理,通过数据并行,被分配到各个处理器上,包括但不限于GPU/CPU,序列并行会进一步对数据进行切分和分配;
如果单个数据长度大于阈值,则单个处理器无法处理,序列并行切分后,一个数据放到多个处理器;
计算时通过通信,等效为在直接处理整个完整数据。
在上述第一方面的一种可能的实现中,所述针对调度到所述处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个所述处理器中,具体包括:
所述2维网格并行采用可量型稠密矩阵乘法SUMMA与算法矩阵,利用二维矩阵分割的高效可扩展模型并行模式;
所述2.5维网格并行设计出一个可量化的新型深度学习模型并行架构,最小化图形处理器之间昂贵的传输损失,并提供一个灵活高效的架构,进一步提高模型并行的速度以及效率;
所述3维网格并行采用3D并行矩阵乘法,将每个矩阵按行和列分成很多小块,将大矩阵相乘拆分成很多个小矩阵的相乘,将矩阵存储平摊到整个处理器上。
第二方面,本申请实施例提供了一种基于人工智能的多维并行处理***,用于硬件处理器,所述***执行于软件平台,使用机器学习库;
数据并行模块,自动管理来自用户请求的待处理数据,将所述待处理数据分配到各个所述硬件处理器上;
序列并行模块,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个所述处理器中;
多维模型并行,针对调度到所述处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个所述处理器中;
所述待处理数据包括图片处理任务和/或自然语言处理任务;
所述多维模型并行包括2维和/或2.5维和/或3维的网格并行。
在上述第二方面的一种可能的实现中,所述数据并行模块,自动管理来自用户请求的待处理数据,将所述待处理数据分配到各个所述硬件处理器上还包括:
所述数据并行中数据被划分,每一个节点或者进程都有一份模型,各个节点取不同的数据的batchsize,然后各自完成前向和后向的计算得到梯度,这些进行训练的进程为worker,除了worker,还有参数服务器,psserver,这些worker会把各自计算得到的梯度送到psserver,由psserver来进行update操作,把update后的模型再传回各个节点;
所述数据并行能扩大等效batchsize,即等效批次大小,通过并行处理器数*单个处理器batchsize计算,加速计算。
在上述第二方面的一种可能的实现中,所述序列并行模块,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个所述处理器中,具体包括:
所述序列并行延长transformer类模型所接收数据的长度,处理NLP中的长文本和CV任务中的高分辨率图片,即大图片和/或视频,其中图片可以切割成小块的图片,所有小图片依次排列也是序列;视频本身就是图片的序列,每张图片也可以再切分;
在获取到计算资源后,所述图片处理任务和/或图片的特征数据进行处理,通过数据并行,被分配到各个处理器上,包括但不限于GPU/CPU,序列并行会进一步对数据进行切分和分配;
如果单个数据长度大于阈值,则单个处理器无法处理,序列并行切分后,一个数据放到多个处理器;
计算时通过通信,等效为在直接处理整个完整数据。
在上述第二方面的一种可能的实现中,所述多维模型并行模块,针对调度到所述处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个所述处理器中,具体包括:
所述2维网格并行采用可量型稠密矩阵乘法SUMMA与算法矩阵,利用二维矩阵分割的高效可扩展模型并行模式;
所述2.5维网格并行设计出一个可量化的新型深度学习模型并行架构,最小化图形处理器之间昂贵的传输损失,并提供一个灵活高效的架构,进一步提高模型并行的速度以及效率;
所述3维网格并行采用3D并行矩阵乘法,将每个矩阵按行和列分成很多小块,将大矩阵相乘拆分成很多个小矩阵的相乘,将矩阵存储平摊到整个处理器上。
第三方面,本申请实施例提供了一种基于人工智能的多维并行处理设备,其特征在于,包括:
存储器,用于存储由***的一个或多个处理器执行的指令,以及
处理器,是***的处理器之一,用于执行所述指令以实施所述的一种基于人工智能的多维并行处理方法。
第四方面,本申请实施例提供了一种使用计算机程序编码的计算机可读存储介质,其特征在于,所述计算机可读介质上存储有指令,所述指令在计算机上执行时使计算机执行所述的一种基于人工智能的多维并行处理方法。
本申请与现有技术相比,其效果在于:
本发明采用的方案通过多维并行,将模型进行划分,提升分布式AI训练和推理效率,以推理为例,实现70%的响应速度提升,将响应时间从原先的30秒降到17-18秒;训练速度/并行度高,用户训练的时间减少,发挥已有算力(GPU)的最大性能,将平均每个处理器上支持的最大模型从10亿参数规模提升到120亿参数规模,减少了大模型推理所需的GPU数量,减少成本、提升模型的可用性和产品性能;易用性强,用户在使用模型时不需要大量的代码学习、手动调优,部署的成本更低。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的工作流程图;
图2为根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的的应用场景图;
图3根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理***的硬件结构框图;
图4根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的SUMMA算法模块示意图;
图5根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的2.5维网格并行方案的结构布局图;
图6根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的SUMMA2.5算法模块示意图;
图7根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的矩阵-向量参数均衡结构图;
图8根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的弱扩展效率比对示意图;
图9根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的强扩展效率比对示意图;
图10根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的LAMB算法的实验效果统计图;
图11根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的La-Lars算法的工作流程图;
图12根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理***的结构模块图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请的说明性实施例包括但不限于一种基于人工智能的多维并行处理方法、装置、设备以及介质和一种基于人工智能的多维并行处理方法、装置、设备以及介质。
可以理解,本申请提供的确定内容相似度方法可以在各种电子设备上实施,包括但不限于,服务器、多个服务器组成的分布式服务器集群、手机、平板电脑、膝上型计算机、台式计算机、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、个人数字助理、虚拟现实或者增强现实设备、其中嵌入或耦接有一个或多个处理器的电视机等电子设备等。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
下面对本申请实施例的发明构思进行简要介绍。
从算力市场的角度,现在市场上出现算力供不应求的情况,本***希望通过加速大规模多维并行处理,降低AI对计算资源的需求市场上对AI基础设施平台的需求非常迫切,而高效多维并行处理是AI基础设施平台不可缺少的功能,因此类似于本***的高效训练方案是未来AI市场的刚需。从AI模型应用场景的角度,大量的应用场景会带来对高效并行训练的巨大需求,许多现有的前沿模型由于算力约束并没有得到足够的落地应用,算力效率提升后将开辟更多市场;现有技术下部署相对困难;例如2019年出现的nerf(深度学习在三维渲染中的应用),因为计算速度的限制并没有得到广泛落地。
此外,多维并行处理和部署门槛和成本较高,以PyTorch内置的方案为例,需要写有关进程组、小组内集体通信、数据集、并行模型相关的代码,并且根据使用的硬件(CPU/GPU)调整后端接口。多维并行处理部署工程师需要同时理解算法(并行策略)、***(训练架构、同步方法)、AI框架和训练方法、通信编程、资源调度软件、大数据平台、底层软件编程等多个方面,人才素质要求极高,相应的企业雇佣成本也高;不同任务需要不同的多维并行处理解决方案和硬件,有额外的软硬件成本。而训练方案一般基于自身的硬件,都是定制化、与硬件直接整合的解决方案,难以面对新的层出不穷的硬件/模型架构,急需一套通用、标准化的并行训练方案;现有技术方案往往选择在算法方面进行突破,但一方面算法突破比较困难,另一方面仅靠算法也很难完全解决多维并行处理效率受限的问题;例如对于医疗、安防等领域,可能有数据保密的需求,或者要求特殊结构的模型;短时间内采用手工调参、部署的方式仍然能够训练,但长期中必须能有一套通用、自动化的并行训练方式,才能适配快速迭代的算法降低应用AI的成本、推广AI应用。
鉴于此,图1根据本申请的第一实施例提供了一种基于人工智能的多维并行处理方法,用于硬件处理器,所述方法执行于软件平台,使用机器学习库;
其特征在于,所述方法包括步骤:
数据并行,自动管理来自用户请求的待处理数据,将所述待处理数据分配到各个所述硬件处理器上;
序列并行,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个所述处理器中;
流水并行,将模型拆分成多段,将每一段部署在不同的硬件处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
多维模型并行,针对调度到所述处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个所述处理器中;
所述待处理数据包括图片处理任务和/或自然语言处理任务;
本申请实施例提供的技术方案适用于文字、图片(包括jpeg等格式的静态图片和gif等格式的动态图片)、视频等多媒内容推荐场景,本申请中主要是以自然语言处理中语料库向量训练进行举例说明的。其中,所述自然语言处理中语料库向量来自于网络语料库,如***。图2根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理方法的场景图。具体的,该场景包括终端101、服务器和网络103。
终端101可以是台式终端或移动终端,移动终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。终端101可以安装有可以进行自然语言处理语料库训练数据集采集的应用程序。本申请实施例涉及的应用可以是软件客户端,也可以是网页、小程序等客户端,若应用为网页、小程序等客户端时,后台服务器则是与软件或是网页、小程序等相对应的后台服务器,不限制客户端的具体类型。其中,用户可以通过在应用上登录自己的用户,进而进行数据集采集。
服务器可以为终端101上安装的应用所对应的后台服务器,例如可以是独立的物理服务器或者是多个服务器组成的服务器集群或分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
服务器可以包括一个或多个处理器1021、存储器1022以及与终端交互的I/O接口1023等。此外,服务器还可以配置数据库1024,数据库1024可以用于存储用户提交的自然语言处理语料库训练数据集。其中,服务器的存储器1022中还可以存储本申请实施例提供的机器学习库、优化器等程序指令,这些程序指令被处理器1021执行时能够用以实现本申请实施例提供的确定多维并行处理方法的的步骤,以对用户输入的待训练数据进行多维并行处理,进而将该训练后的内容推送给目标用户,以在终端101中用于后续的人工智能交互应用。
终端101和服务器之间通过网络103连接,网络103包括一个或多个,并且可以包括各种连接类型,例如有线、无线通信链路、云或者光纤电缆等等,上述的网络具体实例可包括终端101的通信供应商提供的互联网。
首先,处理器1021通过与终端101交互的I/O接口1023,读取终端101所对应的存储于数据库1024中的用户提交的自然语言处理语料库训练数据集,接下来,存储器1022通过执行存储的多维并行处理方法的程序指令,训练完成后并通过与终端交互的I/O接口1023将其推送至终端101,展示给用户。
所述多维模型并行包括2维和/或2.5维和/或3维的网格并行。
图3根据本申请的一些实施例,示出了一种基于人工智能的多维并行处理***的硬件结构框图。具体地,如图3所示,其包括一个或多个处理器与处理器中的至少一个连接的***控制逻辑,与***控制逻辑连接的***内存,与***控制逻辑连接的非易失性存储器(NVM),以及与***控制逻辑连接的网络接口。
在一些实施例中,处理器可以包括一个或多个单核或多核处理器。在一些实施例中,处理器可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在多维并行处理***采用eNB(EvolvedNodeB,增强型基站)或RAN(RadioAccessNetwork,无线接入网)控制器的实施例中,处理器可以被配置为执行各种符合的实施例。
在一些实施例中,处理器包括GPU,CPU,FPGA和TPU。基于待处理的训练任务的数据集情况进行所述处理器的资源调度,将GPU的任务迁移至其他非GPU处理器中,之后,基于各处理器的计算资源对其上的待处理的训练任务进行相应的控制逻辑处理。
在一些实施例中,***控制逻辑可以包括任意合适的接口控制器,以向处理器中的至少一个和/或与***控制逻辑通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,***控制逻辑可以包括一个或多个存储器控制器,以提供连接到***内存的接口。***内存可以用于加载以及存储数据和/或指令。在一些实施例中多维并行处理***的内存可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。在一些实施例中,***内存可以用于加载或者存储实施上述多维并行处理的指令,或者***内存可以用于加载或者存储实施利用上述多维并行处理方法进行多维并行处理的应用程序的指令。
NVM/存储器可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(HardDiskDrive,硬盘驱动器),CD(CompactDisc,光盘)驱动器,DVD(DigitalVersatileDisc,数字通用光盘)驱动器中的至少一个。NVM/存储器还可以用于存储上述多维并行处理别中所用的训练模型。
NVM/存储器可以包括安装多维并行处理***的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口通过网络访问NVM/存储器。
特别地,***内存和NVM/存储器可以分别包括:指令的暂时副本和永久副本。指令可以包括:由处理器中的至少一个执行时导致多维并行处理***实施本申请中的多维并行处理方法的指令。在一些实施例中,指令、硬件、固件和/或其软件组件可另外地/替代地置于***控制逻辑,网络接口和/或处理器中。
网络接口可以包括收发器,用于为多维并行处理***提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口可以集成于多维并行处理***的其他组件。例如,网络接口可以集成于处理器的,***内存,NVM/存储器,和具有指令的固件设备(未示出)中的至少一种,当处理器中的至少一个执行所述指令时,多维并行处理***实现本申请中的多维并行处理方法。
网络接口可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。所述网络接口还用于与云端应用通信连接,实现云端的数据处理。
在一些实施例中,处理器中的至少一个可以与用于***控制逻辑的一个或多个控制器的逻辑封装在一起,以形成***封装(SiP)。在一些实施例中,处理器中的至少一个可以与用于***控制逻辑的一个或多个控制器的逻辑集成在同一管芯上,以形成片上***(SoC)。
多维并行处理***可以进一步包括:输入/输出(I/O)设备。I/O设备可以包括用户界面,使得用户能够与多维并行处理***进行交互;***组件接口的设计使得***组件也能够与多维并行处理***交互。
在上述第一方面的一种可能的实现中,所述步骤数据并行,自动管理来自用户请求的待处理数据,将所述待处理数据分配到各个所述硬件处理器上,还包括:
所述数据并行中数据被划分,每一个节点或者进程都有一份模型,各个节点取不同的数据的batchsize,然后各自完成前向和后向的计算得到梯度,这些进行训练的进程为worker,除了worker,还有参数服务器,psserver,这些worker会把各自计算得到的梯度送到psserver,由psserver来进行update操作,把update后的模型再传回各个节点;
所述数据并行能扩大等效batchsize,即等效批次大小,通过并行处理器数*单个处理器batchsize计算,加速计算;
所述数据并行中不同处理器使用不同的数据,对各数据的参数进行同步更新。
在上述第一方面的一种可能的实现中,所述序列并行,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个所述处理器中,具体包括:
所述序列并行延长transformer类模型所接收数据的长度,处理NLP中的长文本和CV任务中的高分辨率图片,即大图片和/或视频,其中图片可以切割成小块的图片,所有小图片依次排列也是序列;视频本身就是图片的序列,每张图片也可以再切分;
在获取到计算资源后,所述图片处理任务和/或图片的特征数据进行处理,通过数据并行,被分配到各个处理器上,包括但不限于GPU/CPU,序列并行会进一步对数据进行切分和分配;
如果单个数据长度大于阈值,则单个处理器无法处理,序列并行切分后,一个数据放到多个处理器;
计算时通过通信,等效为在直接处理整个完整数据。
在上述第一实施例的一种可能的实现中,所述多维模型并行,针对调度到所述处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个所述处理器中,具体包括:
所述2维网格并行采用可量型稠密矩阵乘法SUMMA与算法矩阵,利用二维矩阵分割的高效可扩展模型并行模式;
所述2.5维网格并行设计出一个可量化的新型深度学习模型并行架构,最小化图形处理器之间昂贵的传输损失,并提供一个灵活高效的架构,进一步提高模型并行的速度以及效率;
所述3维网格并行采用3D并行矩阵乘法,将每个矩阵按行和列分成很多小块,将大矩阵相乘拆分成很多个小矩阵的相乘,将矩阵存储平摊到整个处理器上。
所述2维网格并行采用可量型稠密矩阵乘法SUMMA(ScalableUniversalMatrixMultiplicationAlgorithm),所述2维网格并行采用所述SUMMA算法的三种矩阵,利用二维矩阵分割的高效可扩展模型并行模式;C=AB,C=ABT,C=ATB,基于输入的模型数据,定义如下:
批大小batchsize为变量b,序列长度为变量s,隐藏大小为变量h,头注意力数量为变量n,词汇量大小为变量v,分区数量为变量p,SUMMA维度为变量q,转换层(Transformerlayer)数量为变量N。
算法1:C=AB;
输入:Aij,Bij;
输出:Cij;
针对l∈(0…q-1),执行在任一行中广播Ail,在任一列中广播Blj,
Cij=Cij+AilBlj
返回Cij;
算法2:C=ABT;
输入:Aij,Bij;
输出:Cij;
针对l∈(0…q-1),执行在任一列中广播Blj;
在任一行中缩减至Cil;
返回Cij;
算法3:C=ATB;
输入:Aij,Bij;
输出:Cij;
针对l∈(0…q-1),在任一行中广播Ail;
在任一列中Cij缩减至Clj;
返回Cij;
算法SUMMA算法主体步骤,通过将p个处理器分割为网格,矩阵A和B通过被分割为p部分。在将矩阵A和B的分割部分发送至对应的处理器后,SUMMA算法并行运行各处理器。在运算结尾处,该算法返回结果矩阵C,所述矩阵C分布于各处理器上,类似于A和B矩阵的分割操作。
具体算法包括:
输入:矩阵A[a,b],矩阵B[b,c];
输出:矩阵C[a,c]=A*B;
将A,B划分为p部分用于匹配处理器形状;
依次将Aij,Bij存入pij;
对于i,j∈{0,…,p1/2-1},并行执行Cij,对于任意 执行将pit中的Ait广播至pij,将ptj中的Btj广播至pij,Cij=Cij+Ait*Bvt
合并所有的Cij得到矩阵C。
图4为算法一的实现示意图,本示意图中采用4*4网格,不同颜色代表不同设备身份。首先,每个设备具有矩阵A和B的子块,之后计算外部结果A2B2,每个第二列的设备沿其所属行广播其矩阵A的子块,每个第二行的设备沿其所属列广播其矩阵B的子块,每个设备执行带有子块广播的本地矩阵计算,将所述本地矩阵运算加入最终结果中;
图5为2.5维网格并行方案的结构布局图,采用SUMMA2.5算法,其中针对处理器个数p,将p个处理器构建在[p,p,d]的2.5维布局图中,d为深度。
所述2.5维网格并行为通过分离大小[a,b]的矩阵A和大小[b,c]的矩阵B,之后合并获取大小[a,c]的矩阵C,具体执行如下算法:
其中q表示维度,b表示batchsize批大小,h表示隐藏大小,s表示序列长度;
图6为采用SUMMA2.5算法的矩阵分割合并图,假设处理器的结构布局中,p=2,q=2,d=2,深色区域表明处理器构建层结构为q=2,q=2,矩阵A[a,b]被分割为dq2分区矩阵,结构为[a/qd,b/q],[q,q]分区矩阵会存储于每一层中,矩阵B[b,c]被分割为q2分区矩阵,结构为[b/q,c/q],[q,q]分区矩阵存储于每一层中,结构的dq2分区矩阵结合结构[a,b]的矩阵C中。
输入:矩阵A[a,b],矩阵B[b,c];
输出:矩阵C[a,c]=A*B;
将矩阵A,B分别划分为形如[a/qd,b/q]和[b/q,c/q]的分块矩阵,
对于i∈{0,…qd-1},j∈{0,…,q-1},执行h=i%p,k=i//p,将Aij存入pkjh中,Cij=0,将Cij存入pkjh中;
对于i∈{0,…p-1},j∈{0,…,p-1},k∈{0,…,d-1},执行将Bij存入pkjh中;
对于i,j∈{0,…p-1},k∈{0,…,d-1},并发执行对于t∈{0,…p-1}中每一要素,将pitk中的Aitk广播至pijk,将ptjk中的Btjk广播至pijk,Cijk=Cijk+Aitk*Bvtk;
合并所有的Cijk得到矩阵C。
所述3维网格并行采用3D并行矩阵乘法,将每个矩阵按行和列分成很多小块,将大矩阵相乘拆分成很多个小矩阵的相乘;
原始版本的三维矩阵乘法,每个矩阵只存储在一个面(部分GPU)上,导致存储资源浪费,本方案优化了存储和通信算法,将矩阵存储平摊到整个处理器上。
图7为本发明实施例的矩阵-向量参数均衡结构图,如下算法中,采用负载均衡优化,矩阵-向量之间的操作,在B面对角线(i,l,j)上均匀存储向量b,计算C=A+b;
从8个GPU扩展到64个GPU,每个GPU上参数规模固定时,3D方法与1D、2D相比,steptime是最小的(3D为0.672秒,1D为1.560,2D为1.052);总参数规模固定时,3D方法比1D和2D方法分别加速2.3和1.6倍。附图8和9分别为弱扩展效率和强扩展效率比对示意图,其中所述弱扩展效率比对中为让问题规模(计算量)随处理器数量增加而增加,即每个gpu上的参数规模固定,增加gpu个数,而所述强扩展效率比对中,使问题规模保持不变,增加处理器数量,用于找到解该问题最合适的处理器数量。即所用时间尽可能短而又不产生太大的开销,得出3维模型并行的平均耗时更少,相比1维和2维分别加速2.32和1.57倍。
所述数据并行、序列并行+2/2.5/3维网格划分(2/2.5/3维的模型并行),可组成4/4.5/5维并行,其可以进一步与流水并行再结合成5/5.5/6维并行。
所述多维网格并行的2/2.5/3维的模型的具体维度选择依据处理器属性确定,具体的,2维模型并行,需要处理器有a*a个,如2*2=4,3*3=9,4*4=16;2.5维模型并行需要处理器有a*a*b个,如2*2*1=4,2*2*2=8,2*2*3=123维模型并行,需要处理器有a*a*a个,如2*2*2=8,3*3*3=27
即使都是8个处理器,2.5维模型并行与3维模型并行具体运算也是不一样的;都是4个处理器,2.5维模型并行与2维模型并行具体运算也是不一样的
并行处理器数符合多种情况的模型并行时,如64个,三种都符合,具体选择哪种还需要根据实际运行性能(速度)来选择最优的。因为运行环境不同会带来处理器性能、内存、通信带宽、处理器网络拓扑结构等的差异,不同的任务所用的模型、数据差异也很大。
所述待处理数据的模型通过2/2.5/3维的模型并行,将模型参数分解到各个处理器上,由于单个机器容量有限,分解之后相当于所有机器的容量加起来去容纳模型,一方面允许容纳整体上更大的模型,一方面减少了计算过程中参数的通信。
所述待处理数据的数据如图片/句子,输入模型,各处理器在前向计算时,相互通信,相当于使用完整长序列数据进行计算。前向计算得到输出结果,与训练数据标签(label)作对比,得到损失函数(lossfunction)值,再后向计算梯度,用于下一步更新模型参数。前向计算和后向计算都可以通过2/2.5/3维的模型并行,加速计算速度。
所述多维并行处理方法可进一步与流水并行再结合成5/5.5/6维并行。
所述流水并行模式下,将模型拆分为多段,将每一段部署在不同的设备上串接起来,前一段的输出作为后一段的输入,流水并行实质上是一致cross-layer的模型并行。
流水并行中,每个设备负责一部分层的前向及对应的后向运算;在训练场景下,因为需要在一个步骤的反向结束后才能进行下一步骤,每个设备存在气泡等待;由于气泡等待的存在,导致流水并行设备利用率不高;可以通过增加每一次训练的批大小,并切分为多个小型批micro-batch,提升设备利用率。
在上述第一实施例的一种可能的实现中,所述多维并行处理方法还包括,在数据并行、序列并行或流水并行以及多维模型并行之后,采用多个优化器,依据所述待处理数据的属性和***运行环境选择所述优化器;
具体的所述多个优化器算法包括LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器;
所述LAMB、LARS、ConAdv优化器适用于大批次训练,
所述LARS用于计算机视觉相关待处理数据的处理;
所述LAMB用于自然语言处理相关待处理数据的处理;
所述ConAdv适合速度需求高,精度要求低的待处理数据的处理;
所述La-Lars适用于通信带宽窄,网络通信成本高的待处理数据的处理。
虽然数据并行能通过增大(等效)batchsize,加速训练速度,但会导致优化困难,必须使用专门针对大batch的优化器,才能保证较好的收敛效果。LAMB/LARS/ConAdv都适用于大批次(batch)训练,其中,LARS最适合计算机视觉相关任务(将CV任务的batchsize扩展到32K),LAMB最适合自然语言处理相关任务(将NLP任务的batchsize扩展到64K),ConAdv适合追求极致速度,精度要求略低的CV任务(在略微损失精度的情况下将CV任务batchsize扩展到96K)
此外,数据并行时,需要通过通信传递梯度,同步更新模型参数,通信量极大(与模型大小(即模型的参数量)成正比),尤其是对于现在越来越大的模型。因此,如果***的通信带宽(能够同时传输的数据量)较小,会严重拖慢运行速度,因此此时需要选择通信量较小的大batch的优化器。
所述LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器都是训练AI大模型时所需要的可扩展大规模优化器,可根据需要选择不同的优化器,如LAMB/LARS/ConAdv都适用于大批次(batch)训练,LARS最适合计算机视觉相关任务,LAMB最适合自然语言处理相关任务,ConAdv对计算机视觉训练的最大批次做了进一步的扩展。APS、La-Lars适用于通信带宽比较窄,网络通信成本成为瓶颈的情况,其中APS主要使用低精度梯度,La-Lars主要使用梯度压缩。
APS、La-Lars适用于通信带宽比较窄,网络通信成本成为瓶颈的情况,其中APS主要使用低精度梯度,La-Lars主要使用梯度压缩。APS可以在几乎不损失精度的情况下,仅需约1/4的通信量。La-Lars进一步将通信量压缩到约千分之一,以适应通信带宽很窄的情况,尽管会略微损失精度。
图10为LAMB算法的实验效果统计图,混合batchsize训练下(64k/32k),ADAMW无法收敛,而LAMB能达到101.8%的加速比(64倍计算资源下,计算速度提升65.2倍)。
所述La-Lars为一种梯度稀疏化算法,参照图11,即每次交换梯度时只发送重要的梯度。剩余的梯度将在本地累积并在未来发送。
为了加快训练速度,最简单的方法之一就是增加计算节点的数量。但是,当节点数量较多时,网络通信成本就成为瓶颈。同时,当batchsize超过一定大小时,神经网络的泛化性能会变差。
LARS解决了大规模深度学习训练导致的性能下降问题。它是一个逐层自适应速率缩放优化器,它可以将批量大小扩展到32K,而不会损失性能。然而,由于梯度的稀疏表示和局部梯度累积,本方案很难简单地将DGC和LARS一起使用,因为这会导致梯度过期问题。
本方案提出了LA-LARS算法,它比直接同时使用DGC和LARS具有更快的收敛速度和更小的性能损失。在MNIST和CIFAR-10数据集上,LA-LARS在保证0.1%压缩率的同时优于其他基线优化器。在ImageNet数据集上,它只需使用60%-70%的训练时间达到与基线优化器相似的性能。
第二实施例,参照附图12,本申请实施例提供了一种基于人工智能的多维并行处理***,用于硬件处理器,所述***执行于软件平台,使用机器学习库;
数据并行模块,自动管理来自用户请求的待处理数据,将所述待处理数据分配到各个所述硬件处理器上;
序列并行模块,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个所述处理器中;
流水并行模块,将模型拆分成多段,将每一段部署在不同的硬件处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
多维模型并行,针对调度到所述处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个所述处理器中;
所述待处理数据包括图片处理任务和/或自然语言处理任务;
所述多维模型并行包括2维和/或2.5维和/或3维的网格并行。
所述基于人工智能的多维并行处理***运行于云端,与本地数据进行通信交互;
所述基于人工智能的多维并行处理***执行于软件平台,所述软件平台包括但不限于CUDA、ROCm;
所述基于人工智能的多维并行处理***使用机器学习库,所述机器学习库包括但不限于TensorFlow、Keras、PyTorch。
在上述第二实施例的一种可能的实现中,所述数据并行模块,自动管理来自用户请求的待处理数据,将所述待处理数据分配到各个所述硬件处理器上,还包括:
所述数据并行中数据被划分,每一个节点或者进程都有一份模型,各个节点取不同的数据的batchsize,然后各自完成前向和后向的计算得到梯度,这些进行训练的进程为worker,除了worker,还有参数服务器,psserver,这些worker会把各自计算得到的梯度送到psserver,由psserver来进行update操作,把update后的模型再传回各个节点;
所述数据并行能扩大等效batchsize,即等效批次大小,通过并行处理器数*单个处理器batchsize计算,加速计算。
所述数据并行中不同处理器使用不同的数据,对各数据的参数进行同步更新。
在上述第二实施例的一种可能的实现中,所述序列并行模块,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个所述处理器中,具体包括:
所述序列并行延长transformer类模型所接收数据的长度,处理NLP中的长文本和CV任务中的高分辨率图片,即大图片和/或视频,其中图片可以切割成小块的图片,所有小图片依次排列也是序列;视频本身就是图片的序列,每张图片也可以再切分;
在获取到计算资源后,所述图片处理任务和/或图片的特征数据进行处理,通过数据并行,被分配到各个处理器上,包括但不限于GPU/CPU,序列并行会进一步对数据进行切分和分配;
如果单个数据长度大于阈值,则单个处理器无法处理,序列并行切分后,一个数据放到多个处理器;
计算时通过通信,等效为在直接处理整个完整数据。
在上述第二实施例的一种可能的实现中,所述针对调度到所述处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个所述处理器中,具体包括:
所述2维网格并行采用可量型稠密矩阵乘法SUMMA与算法矩阵,利用二维矩阵分割的高效可扩展模型并行模式;
所述2.5维网格并行设计出一个可量化的新型深度学习模型并行架构,最小化图形处理器之间昂贵的传输损失,并提供一个灵活高效的架构,进一步提高模型并行的速度以及效率;
所述3维网格并行采用3D并行矩阵乘法,将每个矩阵按行和列分成很多小块,将大矩阵相乘拆分成很多个小矩阵的相乘,将矩阵存储平摊到整个处理器上。
所述2维网格并行采用可量型稠密矩阵乘法SUMMA(ScalableUniversalMatrixMultiplicationAlgorithm),所述2维网格并行采用所述SUMMA算法的三种矩阵,利用二维矩阵分割的高效可扩展模型并行模式;C=AB,C=ABT,C=ATB,基于输入的模型数据,定义如下:
批大小batchsize为变量b,序列长度为变量s,隐藏大小为变量h,头注意力数量为变量n,词汇量大小为变量v,分区数量为变量p,SUMMA维度为变量q,转换层(Transformerlayer)数量为变量N。
算法1:C=AB;
输入:Aij,Bij;
输出:Cij;
针对l∈(0…q-1),执行在任一行中广播Ail,在任一列中广播Blj,
Cij=Cij+AilBlj;
返回Cij;
算法2:C=ABT;
输入:Aij,Bij;
输出:Cij;
针对l∈(0…q-1),执行在任一列中广播Blj;
在任一行中缩减至Cil;
返回Cij;
算法3:C=ATB;
输入:Aij,Bij;
输出:Cij;
针对l∈(0…q-1),在任一行中广播Ail;
在任一列中Cij缩减至Clj;
返回Cij;上述算法一-三对矩阵C进行定义。
SUMMA算法主体步骤,通过将p个处理器分割为网格,矩阵A和B通过被分割为p部分。在将矩阵A和B的分割部分发送至对应的处理器后,SUMMA算法并行运行各处理器。在运算结尾处,该算法返回结果矩阵C,所述矩阵C分布于各处理器上,类似于A和B矩阵的分割操作。
具体算法包括:
输入:矩阵A[a,b],矩阵B[b,c]
输出:矩阵C[a,c]=A*B
将A,B划分为p部分用于匹配处理器形状;
依次将Aij,Bij存入pij;
对于i,j∈{0,…,p1/2-1},并行执行Cij,对于任意 执行将pit中的Ait广播至pij,将ptj中的Btj广播至pij,Cij=Cij+Ait*Bvt
合并所有的Cij得到矩阵C。
算法一的实现中采用4*4网格,不同颜色代表不同设备身份。首先,每个设备具有矩阵A和B的子块,之后计算外部结果A2B2,每个第二列的设备沿其所属行广播其矩阵A的子块,每个第二行的设备沿其所属列广播其矩阵B的子块,每个设备执行带有子块广播的本地矩阵计算,将所述本地矩阵运算加入最终结果中;
所述2.5维网格并行方案的结构布局,采用SUMMA2.5算法,其中针对处理器个数p,将p个处理器构建在[p,p,d]的2.5维布局图中,d为深度。
所述2.5维网格并行为通过分离大小[a,b]的矩阵A和大小[b,c]的矩阵B,之后合并获取大小[a,c]的矩阵C,具体执行如下算法:
其中q表示维度,b表示batchsize批大小,h表示隐藏大小,s表示序列长度;
采用SUMMA2.5算法的矩阵分割合并,假设处理器的结构布局中,p=2,q=2,d=2,深色区域表明处理器构建层结构为q=2,q=2,矩阵A[a,b]被分割为dq2分区矩阵,结构为[a/qd,b/q],[q,q]分区矩阵会存储于每一层中,矩阵B[b,c]被分割为q2分区矩阵,结构为[b/q,c/q],[q,q]分区矩阵存储于每一层中,结构的dq2分区矩阵结合结构[a,b]的矩阵C中。
输入:矩阵A[a,b],矩阵B[b,c];
输出:矩阵C[a,c]=A*B;
将矩阵A,B分别划分为形如[a/qd,b/q]和[b/q,c/q]的分块矩阵,
对于i∈{0,…qd-1},j∈{0,…,q-1},执行h=i%p,k=i//p,将Aij存入pkjh中,Cij=0,将Cij存入pkjh中;
对于i∈{0,…p-1},j∈{0,…,p-1},k∈{0,…,d-1},执行将Bij存入pkjh中;
对于i,j∈{0,…p-1},k∈{0,…,d-1},并发执行对于t∈{0,…p-1}中每一要素,将pitk中的Aitk广播至pijk,将ptjk中的Btjk广播至pijk,Cijk=Cijk+Aitk*Bvtk;
合并所有的Cijk得到矩阵C。
所述3维网格并行采用3D并行矩阵乘法,将每个矩阵按行和列分成很多小块,将大矩阵相乘拆分成很多个小矩阵的相乘;
原始版本的三维矩阵乘法,每个矩阵只存储在一个面(部分GPU)上,导致存储资源浪费,本方案优化了存储和通信算法,将矩阵存储平摊到整个处理器上。
本发明实施例的矩阵-向量参数均衡结构,如下算法中,采用负载均衡优化,矩阵-向量之间的操作,在B面对角线(i,l,j)上均匀存储向量b,计算C=A+b;
从8个GPU扩展到64个GPU,每个GPU上参数规模固定时,3D方法与1D、2D相比,steptime是最小的(3D为0.672秒,1D为1.560,2D为1.052);总参数规模固定时,3D方法比1D和2D方法分别加速2.3和1.6倍。弱扩展效率和强扩展效率比对时,其中所述弱扩展效率比对中为让问题规模(计算量)随处理器数量增加而增加,即每个gpu上的参数规模固定,增加gpu个数,而所述强扩展效率比对中,使问题规模保持不变,增加处理器数量,用于找到解该问题最合适的处理器数量。即所用时间尽可能短而又不产生太大的开销,得出3维模型并行的平均耗时更少,相比1维和2维分别加速2.32和1.57倍。
所述数据并行、序列并行+2/2.5/3维网格划分(2/2.5/3维的模型并行),可组成4/4.5/5维并行,其可以进一步与流水并行再结合成5/5.5/6维并行。
所述多维网格并行的2/2.5/3维的模型的具体维度选择依据处理器属性确定,具体的,2维模型并行,需要处理器有a*a个,如2*2=4,3*3=9,4*4=16;2.5维模型并行需要处理器有a*a*b个,如2*2*1=4,2*2*2=8,2*2*3=123维模型并行,需要处理器有a*a*a个,如2*2*2=8,3*3*3=27
即使都是8个处理器,2.5维模型并行与3维模型并行具体运算也是不一样的;都是4个处理器,2.5维模型并行与2维模型并行具体运算也是不一样的
并行处理器数符合多种情况的模型并行时,如64个,三种都符合,具体选择哪种还需要根据实际运行性能(速度)来选择最优的。因为运行环境不同会带来处理器性能、内存、通信带宽、处理器网络拓扑结构等的差异,不同的任务所用的模型、数据差异也很大。
所述待处理数据的模型通过2/2.5/3维的模型并行,将模型参数分解到各个处理器上,由于单个机器容量有限,分解之后相当于所有机器的容量加起来去容纳模型,一方面允许容纳整体上更大的模型,一方面减少了计算过程中参数的通信。
所述待处理数据的数据如图片/句子,输入模型,各处理器在前向计算时,相互通信,相当于使用完整长序列数据进行计算。前向计算得到输出结果,与训练数据标签(label)作对比,得到损失函数(lossfunction)值,再后向计算梯度,用于下一步更新模型参数。前向计算和后向计算都可以通过2/2.5/3维的模型并行,加速计算速度。
所述多维并行处理***可进一步与流水并行再结合成5/5.5/6维并行。
所述流水并行模式下,将模型拆分为多段,将每一段部署在不同的设备上串接起来,前一段的输出作为后一段的输入,流水并行实质上是一致cross-layer的模型并行。
流水并行中,每个设备负责一部分层的前向及对应的后向运算;在训练场景下,因为需要在一个步骤的反向结束后才能进行下一步骤,每个设备存在气泡等待;由于气泡等待的存在,导致流水并行设备利用率不高;可以通过增加每一次训练的批大小,并切分为多个小型批micro-batch,提升设备利用率。
在上述第二实施例的一种可能的实现中,所述多维并行处理***还包括,在数据并行、序列并行或流水并行以及多维模型并行之后,采用多个优化器,依据所述待处理数据的属性选择所述优化器;
具体的所述多个优化器算法包括LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器;
所述LAMB、LARS、ConAdv优化器适用于大批次训练,
所述LARS用于计算机视觉相关待处理数据的处理;
所述LAMB用于自然语言处理相关待处理数据的处理;
所述ConAdv适合速度需求高,精度要求低的待处理数据的处理;
所述La-Lars适用于通信带宽窄,网络通信成本高的待处理数据的处理。
虽然数据并行能通过增大(等效)batchsize,加速训练速度,但会导致优化困难,必须使用专门针对大batch的优化器,才能保证较好的收敛效果。LAMB/LARS/ConAdv都适用于大批次(batch)训练,其中,LARS最适合计算机视觉相关任务(将CV任务的batchsize扩展到32K),LAMB最适合自然语言处理相关任务(将NLP任务的batchsize扩展到64K),ConAdv适合追求极致速度,精度要求略低的CV任务(在略微损失精度的情况下将CV任务batchsize扩展到96K)
此外,数据并行时,需要通过通信传递梯度,同步更新模型参数,通信量极大(与模型大小(即模型的参数量)成正比),尤其是对于现在越来越大的模型。因此,如果***的通信带宽(能够同时传输的数据量)较小,会严重拖慢运行速度,因此此时需要选择通信量较小的大batch的优化器。
所述LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器都是训练AI大模型时所需要的可扩展大规模优化器,可根据需要选择不同的优化器,如LAMB/LARS/ConAdv都适用于大批次(batch)训练,LARS最适合计算机视觉相关任务,LAMB最适合自然语言处理相关任务,ConAdv对计算机视觉训练的最大批次做了进一步的扩展。APS、La-Lars适用于通信带宽比较窄,网络通信成本成为瓶颈的情况,其中APS主要使用低精度梯度,La-Lars主要使用梯度压缩。
APS、La-Lars适用于通信带宽比较窄,网络通信成本成为瓶颈的情况,其中APS主要使用低精度梯度,La-Lars主要使用梯度压缩。APS可以在几乎不损失精度的情况下,仅需约1/4的通信量。La-Lars进一步将通信量压缩到约千分之一,以适应通信带宽很窄的情况,尽管会略微损失精度。
图10为LAMB算法的实验效果统计图,混合batchsize训练下(64k/32k),ADAMW无法收敛,而LAMB能达到101.8%的加速比(64倍计算资源下,计算速度提升65.2倍)。
所述La-Lars为一种梯度稀疏化算法,参照图11,即每次交换梯度时只发送重要的梯度。剩余的梯度将在本地累积并在未来发送。
为了加快训练速度,最简单的方法之一就是增加计算节点的数量。但是,当节点数量较多时,网络通信成本就成为瓶颈。同时,当batchsize超过一定大小时,神经网络的泛化性能会变差。
LARS解决了大规模深度学习训练导致的性能下降问题。它是一个逐层自适应速率缩放优化器,它可以将批量大小扩展到32K,而不会损失性能。然而,由于梯度的稀疏表示和局部梯度累积,本方案很难简单地将DGC和LARS一起使用,因为这会导致梯度过期问题。
本方案提出了LA-LARS算法,它比直接同时使用DGC和LARS具有更快的收敛速度和更小的性能损失。在MNIST和CIFAR-10数据集上,LA-LARS在保证0.1%压缩率的同时优于其他基线优化器。在ImageNet数据集上,它只需使用60%-70%的训练时间达到与基线优化器相似的性能。
第三实施例,本申请实施例提供了一种基于人工智能的多维并行处理设备,其特征在于,包括:
存储器,用于存储由***的一个或多个处理器执行的指令,以及
处理器,是***的处理器之一,用于执行所述指令以实施上述第一方面的任意一种可能的基于人工智能的多维并行处理方法。
第四实施例,本申请实施例提供了一种使用计算机程序编码的计算机可读存储介质,其特征在于,所述计算机可读介质上存储有指令,所述指令在计算机上执行时使计算机执行上述第一方面的任意一种可能的基于人工智能的多维并行处理方法。
需要说明的是,本申请的各方法实施例均可以以软件、硬件、固件等方式实现。不管本申请是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(ProgrammableArrayLogic,简称“PAL”)、随机存取存储器(RandomAccessMemory,简称“RAM”)、可编程只读存储器(ProgrammableReadOnlyMemory,简称“PROM”)、只读存储器(Read-OnlyMemory,简称“ROM”)、电可擦除可编程只读存储器(ElectricallyErasableProgrammableROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(DigitalVersatileDisc,简称“DVD”)等等。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部位,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部位,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施例并不存在其它的单元。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (4)
1.一种基于人工智能的多维并行处理方法,用于硬件处理器,所述方法执行于软件平台,使用机器学习库;
其特征在于,所述方法包括步骤:
数据并行,自动管理来自用户请求的待处理数据,将所述待处理数据分配到多个处理器上;
序列并行,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个处理器中;
流水并行,将模型拆分成多段,将每一段部署在不同的处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
多维模型并行,针对调度到处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个处理器中;
所述待处理数据包括图片处理任务和/或自然语言处理任务;
所述多维模型并行包括2维和/或2.5维和/或3维的网格并行;
所述数据并行,自动管理来自用户请求的待处理数据,将所述待处理数据分配到多个处理器上还包括:
所述数据并行中数据被划分,每一个节点或者进程都有一份模型,各个节点取不同的数据的batch size,然后各自完成前向和后向的计算得到梯度,进行训练的进程为worker,除了worker,还有参数服务器ps server,所述worker会把各自计算得到的梯度送到参数服务器ps server,由参数服务器ps server来进行update操作,把update后的模型再传回各个节点;
所述数据并行能扩大等效batch size,即等效批次大小,通过并行处理器数×单个处理器batch size加速计算;
所述序列并行,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个处理器中,具体包括:
所述序列并行延长transformer类模型所接收数据的长度,处理NLP中的长文本和CV任务中的大图片和/或视频,其中图片切割成小块的图片,所有小图片依次排列也是序列;视频本身为图片的序列,每张图片进行再切分;在获取到计算资源后,图片处理任务和/或图片的特征数据被处理,通过数据并行被分配到各个处理器上,包括但不限于GPU、CPU、TPU,序列并行会进一步对数据进行切分和分配;
如果单个数据长度大于阈值,则单个处理器无法处理,序列并行切分后,一个数据放到多个处理器;
多维模型并行,针对调度到处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个处理器中,具体包括:
2维网格并行采用可量型稠密矩阵乘法SUMMA与算法矩阵,利用二维矩阵分割的高效可扩展模型并行模式;
2.5维网格并行设计出一个可量化的深度学习模型并行架构,最小化图形处理器之间的传输损失;
3维网格并行采用3D并行矩阵乘法,将每个矩阵按行和列分成多个小块,将大矩阵相乘拆分成多个小矩阵的相乘,将矩阵存储平摊到多个处理器上。
2.一种基于人工智能的多维并行处理***,包括硬件处理器,所述***执行于软件平台,使用机器学习库;
数据并行模块,自动管理来自用户请求的待处理数据,将所述待处理数据分配到多个处理器上;
序列并行模块,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个处理器中;
流水并行模块,将模型拆分成多段,将每一段部署在不同的多个处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
多维模型并行模块,针对调度到处理器的所述待处理数据的训练模型执行网格模型划分,将所述训练模型调度至多个处理器中;
所述待处理数据包括图片处理任务和/或自然语言处理任务;
所述多维模型并行包括2维和/或2.5维和/或3维的网格并行;
所述数据并行模块,自动管理来自用户请求的待处理数据,将所述待处理数据分配到多个处理器上还包括:
所述数据并行中数据被划分,每一个节点或者进程都有一份模型,各个节点取不同的数据的batch size,然后各自完成前向和后向的计算得到梯度,进行训练的进程为worker,除了worker,还有参数服务器ps server,所述worker会把各自计算得到的梯度送到参数服务器ps server,由参数服务器ps server来进行update操作,把update后的模型再传回各个节点;
所述数据并行能扩大等效batch size,即等效批次大小,通过并行处理器数×单个处理器batch size加速计算;
所述序列并行模块,进一步对待处理数据中的长序列数据进行切分,将每个所述待处理数据进行序列划分放到多个处理器中,具体包括:
所述序列并行延长transformer类模型所接收数据的长度,处理NLP中的长文本和CV任务中的大图片和/或视频,其中图片切割成小块的图片,所有小图片依次排列也是序列;视频本身为图片的序列,每张图片进行再切分;
在获取到计算资源后,图片处理任务和/或图片的特征数据被处理,通过数据并行被分配到各个处理器上,包括但不限于GPU、CPU、TPU,序列并行会进一步对数据进行切分和分配;
如果单个数据长度大于阈值,则单个处理器无法处理,序列并行切分后,一个数据放到多个处理器;
所述多维模型并行模块,包括2维和/或2.5维和/或3维的网格并行,具体包括:2维网格并行采用可量型稠密矩阵乘法SUMMA与算法矩阵,利用二维矩阵分割的高效可扩展模型并行模式;
2.5维网格并行设计出一个可量化的深度学习模型并行架构,最小化图形处理器之间的传输损失;
3维网格并行采用3D并行矩阵乘法,将每个矩阵按行和列分成多个小块,将大矩阵相乘拆分成多个小矩阵的相乘,将矩阵存储平摊到多个处理器上。
3.一种基于人工智能的多维并行处理设备,其特征在于,包括:
存储器,用于存储处理器执行的指令,以及
处理器,用于执行所述指令以实施权利要求1所述的一种基于人工智能的多维并行处理方法。
4.一种使用计算机程序编码的计算机可读存储介质,其特征在于,所述计算机可读介质上存储有指令,所述指令在计算机上执行时使计算机执行权利要求1中所述的一种基于人工智能的多维并行处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111203399.XA CN114035936B (zh) | 2021-10-15 | 2021-10-15 | 一种基于人工智能的多维并行处理方法、***、设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111203399.XA CN114035936B (zh) | 2021-10-15 | 2021-10-15 | 一种基于人工智能的多维并行处理方法、***、设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114035936A CN114035936A (zh) | 2022-02-11 |
CN114035936B true CN114035936B (zh) | 2024-05-17 |
Family
ID=80135037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111203399.XA Active CN114035936B (zh) | 2021-10-15 | 2021-10-15 | 一种基于人工智能的多维并行处理方法、***、设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114035936B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114611697B (zh) * | 2022-05-11 | 2022-09-09 | 上海登临科技有限公司 | 神经网络量化及部署方法、***、电子设备及存储介质 |
CN116739090B (zh) * | 2023-05-12 | 2023-11-28 | 北京大学 | 基于Web浏览器的深度神经网络推理度量方法和装置 |
CN116684437B (zh) * | 2023-08-04 | 2023-10-03 | 江苏量界数据科技有限公司 | 基于自然语言分析的分布式数据管理方法 |
CN116991483B (zh) * | 2023-09-25 | 2024-04-05 | 粤港澳大湾区数字经济研究院(福田) | 一种针对语言模型计算的流水线并行方法及装置 |
CN117831771B (zh) * | 2024-03-05 | 2024-05-17 | 凯斯艾生物科技(苏州)有限公司 | 一种基于深度学习的疾病风险预测模型构建方法及*** |
CN118195033A (zh) * | 2024-05-20 | 2024-06-14 | 科大讯飞股份有限公司 | 一种语言模型训练方法及相关装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460457A (zh) * | 2018-03-30 | 2018-08-28 | 苏州纳智天地智能科技有限公司 | 一种面向卷积神经网络的多机多卡混合并行异步训练方法 |
CN109754060A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 一种神经网络机器学习模型的训练方法及装置 |
CN111381966A (zh) * | 2020-03-08 | 2020-07-07 | 苏州浪潮智能科技有限公司 | 一种分布式并行训练的方法、设备及可读介质 |
CN111984414A (zh) * | 2020-08-21 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种数据处理的方法、***、设备及可读存储介质 |
CN112464784A (zh) * | 2020-11-25 | 2021-03-09 | 西安烽火软件科技有限公司 | 一种基于混合并行的分布式训练方法 |
CN112559673A (zh) * | 2019-09-06 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 语言处理模型的训练方法及装置、电子设备及存储介质 |
CN112784968A (zh) * | 2021-01-29 | 2021-05-11 | 东南大学 | 一种加速分布式深度神经网络训练的混合流水线并行方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018126073A1 (en) * | 2016-12-30 | 2018-07-05 | Lau Horace H | Deep learning hardware |
US11556450B2 (en) * | 2019-10-11 | 2023-01-17 | International Business Machines Corporation | Hybrid data-model parallelism for efficient deep learning |
-
2021
- 2021-10-15 CN CN202111203399.XA patent/CN114035936B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109754060A (zh) * | 2017-11-06 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 一种神经网络机器学习模型的训练方法及装置 |
CN108460457A (zh) * | 2018-03-30 | 2018-08-28 | 苏州纳智天地智能科技有限公司 | 一种面向卷积神经网络的多机多卡混合并行异步训练方法 |
CN112559673A (zh) * | 2019-09-06 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 语言处理模型的训练方法及装置、电子设备及存储介质 |
CN111381966A (zh) * | 2020-03-08 | 2020-07-07 | 苏州浪潮智能科技有限公司 | 一种分布式并行训练的方法、设备及可读介质 |
CN111984414A (zh) * | 2020-08-21 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种数据处理的方法、***、设备及可读存储介质 |
CN112464784A (zh) * | 2020-11-25 | 2021-03-09 | 西安烽火软件科技有限公司 | 一种基于混合并行的分布式训练方法 |
CN112784968A (zh) * | 2021-01-29 | 2021-05-11 | 东南大学 | 一种加速分布式深度神经网络训练的混合流水线并行方法 |
Non-Patent Citations (1)
Title |
---|
"Maximizing Parallelism in Distributed Training for Huge Neural Networks";Zhengda Bian et al.;《https://arxiv.org/abs/2105.14450》;20210530;第1-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114035936A (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114035936B (zh) | 一种基于人工智能的多维并行处理方法、***、设备和可读存储介质 | |
CN114035937A (zh) | 一种基于人工智能的分布式训练和推理方法、***、设备和可读存储介质 | |
EP4036724A1 (en) | Method for splitting neural network model by using multi-core processor, and related product | |
Acun et al. | Understanding training efficiency of deep learning recommendation models at scale | |
US10296556B2 (en) | System and method for efficient sparse matrix processing | |
US10997176B2 (en) | Massive time series correlation similarity computation | |
EP3979143A1 (en) | Method of performing splitting in neural network model by means of multi-core processor, and related product | |
US8959138B2 (en) | Distributed data scalable adaptive map-reduce framework | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
Han et al. | Signal processing and networking for big data applications | |
CN111709493B (zh) | 对象分类方法、训练方法、装置、设备及存储介质 | |
Kazanskiy et al. | Distributed storage and parallel processing for large-size optical images | |
CN110826708A (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
US11630986B2 (en) | Graph conversion method | |
US11893691B2 (en) | Point cloud geometry upsampling | |
CN108334532B (zh) | 一种基于Spark的Eclat并行化方法、***及装置 | |
CN117808659A (zh) | 用于执行多维卷积运算方法、***、设备和介质 | |
CN114817845B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116957041A (zh) | 压缩神经网络模型的方法、装置和计算设备 | |
CN112114968B (zh) | 推荐方法、装置、电子设备及存储介质 | |
CN113760380A (zh) | 网络模型的运行代码的确定方法、装置、设备及存储介质 | |
CN116755714B (zh) | 深度神经网络模型的运行方法、装置、设备和存储介质 | |
US20240086719A1 (en) | Sparse encoding and decoding at mixture-of-experts layer | |
US11809849B1 (en) | Global modulo allocation in neural network compilation | |
US20240160906A1 (en) | Collective communication phases at mixture-of-experts layer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |