CN114035937A - 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 - Google Patents
一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 Download PDFInfo
- Publication number
- CN114035937A CN114035937A CN202111204831.7A CN202111204831A CN114035937A CN 114035937 A CN114035937 A CN 114035937A CN 202111204831 A CN202111204831 A CN 202111204831A CN 114035937 A CN114035937 A CN 114035937A
- Authority
- CN
- China
- Prior art keywords
- task
- training
- model
- tasks
- optimizer
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 242
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 51
- 238000003860 storage Methods 0.000 title claims description 20
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000009826 distribution Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 108
- 238000004891 communication Methods 0.000 claims description 50
- 238000004422 calculation algorithm Methods 0.000 claims description 34
- 201000005947 Carney Complex Diseases 0.000 claims description 33
- 235000019687 Lamb Nutrition 0.000 claims description 33
- 238000005457 optimization Methods 0.000 claims description 27
- 238000003058 natural language processing Methods 0.000 claims description 23
- 238000010801 machine learning Methods 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 6
- 230000005012 migration Effects 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 230000002829 reductive effect Effects 0.000 abstract description 15
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 36
- 239000013598 vector Substances 0.000 description 27
- 239000011159 matrix material Substances 0.000 description 26
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000013461 design Methods 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 238000013136 deep learning model Methods 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000009795 derivation Methods 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 238000004904 shortening Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 102100033814 Alanine aminotransferase 2 Human genes 0.000 description 2
- 101710096000 Alanine aminotransferase 2 Proteins 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000008014 freezing Effects 0.000 description 2
- 238000007710 freezing Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000002645 vision therapy Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 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
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及人工智能领域,涉及一种基于人工智能的分布式训练和推理系统和方法,训练中调度分配适当的计算资源,动态调节系统硬件负载,依托多维并行技术,将模型参数分解到各个处理器上,前向计算得到输出结果,与训练数据标签作对比得到损失函数值,后向计算梯度,用于下一步更新模型参数,根据需要选择适当的优化器,依照计算的梯度对模型的参数进行更新,微调针对具体应用继续训练模型。完成训练的模型进行实际应用的推理,在推理过程中,也可以采用上述的资源调度和多维并行技术。本申请通过在AI模型训练和推理过程中引入大规模分布式,降低AI对计算资源的消耗,缩短训练推理时间,帮助最大化提升AI部署效率并将部署成本最小化。
Description
技术领域
本发明属于人工智能深度学习领域,具体的,涉及一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质。
背景技术
近几年,AI训练市场出现需求拐点,算力市场上需求急速扩大,需要提高算力使用效率,大规模算法在最近两年开始爆发式突破,而且新算法和新模型还会不断涌现,市场对算力的需求会越来越大,大模型无法用单块GPU训练,因为模型参数量太大,放不到单块GPU的显存当中;即使能够放下,训练时间也无法接受,硬件算力的增长趋势远远跟不上模型对算力的需求,必须使用更多硬件(芯片)弥补算力增长短板。
企业场景下,大规模部署时涉及到大量的因素,包括时延、吞吐量、成本、负载均衡等等,主要困难包括通信瓶颈造成算力效率难以提升:现有训练中GPU算力的最高利用率也只有30%,计算、存储、网络资源需要在不同任务间共享,涉及隔离和调度的问题,不同任务需要不同的分布式训练解决方案和硬件,有额外的软硬件成本。
发明内容
针对上述介绍的现有技术的缺陷,本发明将打造一个高效率低耗能、适用于AI大模型的通用分布式人工智能系统,帮助企业在最大化提升人工智能部署效率的同时,还能将部署成本最小化。
本申请实施例提供了一种基于人工智能的分布式训练和推理方法、系统、设备及介质。
第一方面,本申请实施例提供了一种基于人工智能的分布式训练和推理方法,用于硬件处理器,所述方法执行于软件平台,使用机器学习库;
其特征在于,所述方法包括步骤:
获取多个AI任务的任务参数,依据所述多个AI任务的任务参数获取调度决策,将所述多个AI任务分配至多个所述硬件处理器上,得到所述AI任务的计算资源;
获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果;
获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求;
所述分配过程中使用优化算法,优化调度决策;
所述并行处理方式包括数据并行、序列并行、流水并行、多维网格并行处理;
所述AI任务包括训练任务和推理任务。
在上述第一方面的一种可能的实现中,所述获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求后还包括步骤:
对所述优化器处理后的所述AI任务的AI模型参数进行微调与预测,通过微调针对具体应用继续训练模型,最终部署完成训练的模型进行实际应用的推理;
所述对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果的进行过程中,还包括步骤:
通过切分和/或卸载优化器状态,梯度,模型参数,完成所述AI任务在所述硬件处理器间的数据迁移;
所述AI任务包括图片处理任务和/或自然语言处理任务。
在上述第一方面的一种可能的实现中,所述获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求,具体包括:
所述数据并行将所述AI任务分配到各个所述硬件处理器上,获得所有所述硬件处理器总共同时处理的数据总批大小与每个所述硬件处理器的每次处理数据批大小;
所述序列并行会进一步对数据进行切分和/或卸载和分配,将每个所述AI任务放到多个处理器;
所述流水并行,将模型拆分成多段,将每一段部署在不同的硬件处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
所述多维网格并行包括2维和/或2.5维和/或3维的网格并行。
在上述第一方面的一种可能的实现中,所述步骤获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求,具体包括:
所述AI任务对应的优化器算法包括但不限于LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器;
所述LAMB、LARS、ConAdv优化器适用于大批次训练,
所述LARS用于计算机视觉相关AI任务的处理;
所述LAMB用于自然语言处理相关AI任务的处理;
所述ConAdv适合速度需求高,精度要求低的AI任务的处理;
所述La-Lars适用于通信带宽窄,网络通信成本高的AI任务的处理。
第二方面,本申请实施例提供了一种基于人工智能的分布式训练和推理系统,用于硬件处理器,所述系统执行于软件平台,使用机器学习库,用于处理多种应用数据;
所述硬件处理器包括但不限于:CPU、GPU、FPGA、TPU;
其特征在于,所述系统包括:
调度模块,获取多个AI任务的任务参数,依据所述多个AI任务的任务参数获取调度决策,将所述多个AI任务分配至多个所述硬件处理器上,得到所述AI任务的计算资源;
多维并行模块,获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果;
可扩展优化模块,获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求;
所述分配过程中使用优化算法,优化调度决策;
所述并行处理方式包括数据并行、序列并行、流水并行、多维网格并行处理;
所述AI任务包括训练任务和推理任务。
在上述第二方面的一种可能的实现中,所述系统还包括:
微调与推理模块,对所述优化器处理后的所述AI任务进行微调与预测,通过微调针对具体应用继续训练模型,最终部署完成训练的模型进行实际应用的推理;
动态内存磁盘管理模块,通过切分和/或卸载优化器状态,梯度,模型参数,完成所述AI任务在所述硬件处理器间的数据迁移;
所述AI任务包括图片处理任务和/或自然语言处理任务。
在上述第二方面的一种可能的实现中,所述多维并行模块,获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果,还包括:
所述数据并行将所述AI任务分配到各个所述硬件处理器上,获得所有所述硬件处理器总共同时处理的数据总批大小与每个所述硬件处理器的每次处理数据批大小;
所述序列并行会进一步对数据进行切分和/或卸载和分配,将每个所述AI任务放到多个处理器;
所述流水并行,将模型拆分成多段,将每一段部署在不同的硬件处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
所述多维网格并行包括2维和/或2.5维和/或3维的网格并行。
在上述第二方面的一种可能的实现中,所述可扩展优化模块,获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求,还包括:
所述AI任务对应的优化器算法包括但不限于LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器;
所述LAMB、LARS、ConAdv优化器适用于大批次训练,
所述LARS用于计算机视觉相关AI任务的处理;
所述LAMB用于自然语言处理相关AI任务的处理;
所述ConAdv适合速度需求高,精度要求低的AI任务的处理;
所述La-Lars适用于通信带宽窄,网络通信成本高的AI任务的处理。
第三方面,本申请实施例提供了一种基于人工智能的分布式训练设备,其特征在于,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行所述指令以实施上述第一方面的任意一种可能的基于人工智能的分布式训练和推理方法。
第四方面,本申请实施例提供了一种使用计算机程序编码的计算机可读存储介质,其特征在于,所述计算机可读介质上存储有指令,所述指令在计算机上执行时使计算机执行上述第一方面的任意一种可能的基于人工智能的分布式训练和推理方法。
本申请与现有技术相比,其效果在于:
本发明采用的方案通过多维并行,将模型进行划分,提升分布式AI训练和推理效率的效率,实现70%的响应速度提升,将响应时间从原先的30秒降到17-18秒;通过高效的内存分块、数据移动管理,将平均每个处理器上上支持的最大模型从10亿参数规模提升到120亿参数规模,减少了大模型推理所需的处理器数量,减少成本、提升模型的可用性和产品性能;提供自动化部署方案,提升了5-10倍的部署速度,未来能够节省进行模型分布式部署所需的人力、时间、费用成本。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法的工作流程图;
图2根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法的的应用场景图;
图3根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理系统的硬件结构框图;
图4根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法的2.5维网格并行方案的结构布局图;
图5根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法的矩阵-向量参数均衡结构图;
图6根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法的弱扩展效率比对示意图;
图7根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法的强扩展效率比对示意图;
图8根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法LAMB算法的实验效果统计图;
图9根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法La-Lars算法的工作流程图;
图10根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理系统的结构模块图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请的说明性实施例包括但不限于一种基于人工智能的分布式训练和推理方法、装置、设备以及介质和一种基于人工智能的分布式训练和推理方法、装置、设备以及介质。
可以理解,本申请提供的确定内容相似度方法可以在各种分布式训练和推理系统上实施,包括但不限于,服务器、多个服务器组成的分布式服务器集群、手机、平板电脑、膝上型计算机、台式计算机、可穿戴设备、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备、个人数字助理、虚拟现实或者增强现实设备、其中嵌入或耦接有一个或多个处理器的电视机等分布式训练和推理系统等。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
下面对本申请实施例的发明构思进行简要介绍。
从算力市场的角度,现在市场上出现算力供不应求的情况,本系统希望通过加速大规模分布式训练和推理,降低AI对计算资源的需求市场上对AI基础设施平台的需求非常迫切,而高效分布式训练是AI基础设施平台不可缺少的功能,因此类似于本系统的高效训练和推理方案是未来AI市场的刚需。从AI模型应用场景的角度,大量的应用场景会带来对高效并行训练的巨大需求,许多现有的前沿模型由于算力约束并没有得到足够的落地应用,算力效率提升后将开辟更多市场;例如2018年出现的transformer架构仍然没有完全替代RNN,其需要平均每个处理器上运行,现有技术下部署相对困难;例如2019年出现的nerf(深度学习在三维渲染中的应用),因为计算速度的限制并没有得到广泛落地。
此外,分布式训练和部署门槛和成本较高,以PyTorch内置的方案为例,需要写有关进程组、小组内集体通信、数据集、并行模型相关的代码,并且根据使用的硬件(CPU/GPU)调整后端接口。分布式训练部署工程师需要同时理解算法(并行策略)、系统(训练架构、同步方法)、AI框架和训练和推理方法、通信编程、资源调度软件、大数据平台、底层软件编程等多个方面,人才素质要求极高,相应的企业雇佣成本也高;不同任务需要不同的分布式训练解决方案和硬件,有额外的软硬件成本。而训练和推理方案一般基于自身的硬件,都是定制化、与硬件直接整合的解决方案,难以面对新的层出不穷的硬件/模型架构,急需一套通用、标准化的并行训练和推理方案;现有技术方案往往选择在算法方面进行突破,但一方面算法突破比较困难,另一方面仅靠算法也很难完全解决分布式训练效率受限的问题;例如对于医疗、安防等领域,可能有数据保密的需求,或者要求特殊结构的模型;短时间内采用手工调参、部署的方式仍然能够训练,但长期中必须能有一套通用、自动化的并行训练方式,才能适配快速迭代的算法降低应用AI的成本、推广AI应用。
鉴于此,下面对本申请实施例的发明构思进行简要介绍。图1根据本申请的第一实施例,示出了一种基于人工智能的分布式训练和推理方法的工作流程图,用于硬件处理器,所述方法执行于软件平台,使用机器学习库;
其特征在于,所述方法包括步骤:
获取多个AI任务的任务参数,依据所述多个AI任务的任务参数获取调度决策,将所述多个AI任务分配至多个所述硬件处理器上,得到所述AI任务的计算资源;
获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果;
获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求;
所述分配过程中使用优化算法,优化调度决策;
所述并行处理方式包括数据并行、序列并行、流水并行、多维网格并行处理。
所述基于人工智能的分布式训练和推理方法执行于软件平台,所述软件平台包括但不限于CUDA、ROCm;
所述基于人工智能的分布式训练和推理方法使用机器学习库,所述机器学习库包括但不限于TensorFlow、Keras、PyTorch。
同时,未来各个应用场景都会对AI模型训练产生大量需求(一般来说,AI模型越大,性能更强。因此几乎所有适用于AI的领域,都是本系统的应用场景)。
在介绍完本申请实施例的发明构思之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
本申请实施例提供的技术方案适用于文字、图片(包括jpeg等格式的静态图片和gif等格式的动态图片)、视频等多媒内容推荐场景,本申请中主要是以自然语言处理中语料库向量训练进行举例说明的。其中,所述自然语言处理中语料库向量来自于网络语料库,如维基百科。图2根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理方法的场景图。具体的,该场景包括终端101、服务器102和网络103。
终端101可以是台式终端或移动终端,移动终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。终端101可以安装有可以进行自然语言处理语料库训练数据集采集的应用程序。本申请实施例涉及的应用可以是软件客户端,也可以是网页、小程序等客户端,若应用为网页、小程序等客户端时,后台服务器则是与软件或是网页、小程序等相对应的后台服务器,不限制客户端的具体类型。其中,用户可以通过在应用上登录自己的用户,进而进行数据集采集。
服务器102可以为终端101上安装的应用所对应的后台服务器,例如可以是独立的物理服务器或者是多个服务器组成的服务器集群或分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
服务器102可以包括一个或多个处理器1021、存储器1022以及与终端交互的I/O接口1023等。此外,服务器102还可以配置数据库1024,数据库1024可以用于存储用户提交的自然语言处理语料库训练数据集。其中,服务器102的存储器1022中还可以存储本申请实施例提供的机器学习库、优化器等程序指令,这些程序指令被处理器1021执行时能够用以实现本申请实施例提供的确定分布式训练和推理方法的的步骤,以对用户输入的待训练数据进行分布式训练,进而将该训练后的内容推送给目标用户,以在终端101中用于后续的人工智能交互应用。
终端101和服务器102之间通过网络103连接,网络103包括一个或多个,并且可以包括各种连接类型,例如有线、无线通信链路、云或者光纤电缆等等,上述的网络具体实例可包括终端101的通信供应商提供的互联网。
首先,处理器1021通过与终端101交互的I/O接口1023,读取终端101所对应的存储于数据库1024中的用户提交的自然语言处理语料库训练数据集,接下来,存储器1022通过执行存储的分布式训练和推理方法的程序指令,训练完成后并通过与终端交互的I/O接口1023将其推送至终端101,展示给用户。
图3根据本申请的一些实施例,示出了一种基于人工智能的分布式训练和推理系统的硬件结构框图。具体地,如图3所示,其包括一个或多个处理器与处理器中的至少一个连接的系统控制逻辑,与系统控制逻辑连接的系统内存,与系统控制逻辑连接的非易失性存储器(NVM),以及与系统控制逻辑连接的网络接口。
在一些实施例中,处理器可以包括一个或多个单核或多核处理器。在一些实施例中,处理器可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在分布式训练和推理系统采用eNB(Evolved Node B,增强型基站)或RAN(Radio Access Network,无线接入网)控制器的实施例中,处理器可以被配置为执行各种符合的实施例。
在一些实施例中,处理器包括GPU,CPU,FPGA和TPU。基于待处理的训练和推理任务的数据集情况进行所述处理器的资源调度,将GPU的任务迁移至其他非GPU处理器中,之后,基于各处理器的计算资源对其上的待处理的训练和推理任务进行相应的控制逻辑处理。
在一些实施例中,系统控制逻辑可以包括任意合适的接口控制器,以向处理器中的至少一个和/或与系统控制逻辑通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑可以包括一个或多个存储器控制器,以提供连接到系统内存的接口。系统内存可以用于加载以及存储数据和/或指令。在一些实施例中分布式训练和推理系统的内存可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。在一些实施例中,系统内存可以用于加载或者存储实施上述分布式训练的指令,或者系统内存可以用于加载或者存储实施利用上述分布式训练和推理方法进行分布式训练的应用程序的指令。
NVM/存储器可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。NVM/存储器还可以用于存储上述分布式训练别中所用的训练模型。
NVM/存储器可以包括安装分布式训练和推理系统的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口通过网络访问NVM/存储器。
特别地,系统内存和NVM/存储器可以分别包括:指令的暂时副本和永久副本。指令可以包括:由处理器中的至少一个执行时导致分布式训练和推理系统实施本申请中的分布式训练和推理方法的指令。在一些实施例中,指令、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑,网络接口和/或处理器中。
网络接口可以包括收发器,用于为分布式训练和推理系统提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口可以集成于分布式训练和推理系统的其他组件。例如,网络接口可以集成于处理器的,系统内存,NVM/存储器,和具有指令的固件设备(未示出)中的至少一种,当处理器中的至少一个执行所述指令时,分布式训练和推理系统实现本申请中的分布式训练和推理方法。
网络接口可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。所述网络接口还用于与云端应用通信连接,实现云端的数据处理。
在一些实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑封装在一起,以形成系统封装(SiP)。在一些实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(SoC)。
分布式训练和推理系统可以进一步包括:输入/输出(I/O)设备。I/O设备可以包括用户界面,使得用户能够与分布式训练和推理系统进行交互;外围组件接口的设计使得外围组件也能够与分布式训练和推理系统交互。
上述第一实施例采用的方案通过多维并行,将模型进行划分,提升分布式AI训练和推理效率的效率,实现70%的响应速度提升,将响应时间从原先的30秒降到17-18秒;通过高效的内存分块、数据移动管理,将平均每个处理器上上支持的最大模型从10亿参数规模提升到120亿参数规模,减少了大模型推理所需的GPU数量,减少成本、提升模型的可用性和产品性能;提供自动化部署方案,提升了5-10倍的部署速度,未来能够节省进行模型分布式部署所需的人力、时间、费用成本。
在上述第一实施例的一种可能的实现中,所述获取多个AI任务的任务参数,依据所述多个AI任务的任务参数获取调度决策,将所述多个AI任务分配至多个所述硬件处理器上,得到所述AI任务的计算资源,具体包括:
每个AI任务,有数据(图片/句子)、模型(ViT/ResNet/TransFormer等)、类型(训练/微调/推理)等参数,采用任务调度策略分配适当的计算资源。
具体的,根据batch size等信息调整任务调度,充分利用算力资源,能显著缩短任务的平均等待时间;
用户要启动训练和推理任务的时候,启动命令写到一个文件里,把文件提交给调度系统,调度系统帮忙排队、规划训练和推理任务;
该调度方式是动态的,可以根据任务的性质进行调度,缩短任务完成的平均时间,并且能够根据优先级进行调整。
本实施例涉及的任务调度方法可达到算力使用率最大化,减少每个处理器和线程的闲置时间,缩短任务等候时间,减少处理器的闲置时间意味着缩短从提交任务到计算结束的时间等良好技术效果。
在上述第一实施例的一种可能的实现中,所述获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求后还包括:
对所述优化器处理后的所述AI任务的AI模型参数进行微调与预测,通过微调针对具体应用继续训练模型,最终部署完成训练的模型进行实际应用的推理;
所述微调整体和训练基本一样;推理处理具体应有的功能包括:相对基准系统有至少30%速度提升、能在单服务器上完成GPT-2部署、至少减少30%内存并保证精度
所述微调的主要采用两种方法进行。
方法一:冻结全部卷积层+训练个性化定制的全连接层;
使用InceptionV3预训练模型:该模型当初用ImageNet数据集训练时的输入图像尺寸是299x299,且图像通道顺序为RGB。需要注意的是,使用预训练模型一定要确保让待训练的数据尽可能向原数据集靠拢,这样才能最大程度发挥模型的识图本领。
预处理:按照预训练模型原本的预处理方式对数据进行预处理,在这里是归一化至[-1,1]
基模型:导入预训练模型(只导入卷积层部分),并锁定全部卷积层参数。
定制模型:卷积层之后先接全局平均池化(GAP),再接Dropout,再接分类器,根据分类任务选择输出个数。模型可训练参数只有两千个。
优化器:采用LARS。
数据准备:将训练集划分为训练集和验证集。
定义回调函数以方便训练:自动在每代结束保存模型,以val_loss作为监控指标进行早停,训练历史数据同步更新到Tensorboard供可视化。
Batch Size:要用较大的batch size进行训练,这样可以让模型更快更好的收敛。
虽然卷积层全都已经锁定,但是由于样本依然需要从模型的输入一直计算到输出,因此训练比较耗时。训练五代需要十几分钟,验证集Loss在0.05左右。
方法二:导出特征向量,再单独训练分类器:
预处理:导出训练集和测试集的特征向量之前,按照预训练模型的要求进行预处理,否则导出的特征将不是模型的最佳表现。
基模型:基模型由InceptionV3的卷积层部分以及全局平均池化(GAP)构成。
导出即预测:所谓导出,其实就是让基模型直接对训练集和测试集进行预测,只不过预测出的结果不是图像类别,而是特征向量(特征图的浓缩版本)。
导出需要一定时间,由于导出需要对数据集的所有图片进行预测,因此通常需要一两分钟才能完成。
新模型的输入是特征向量:新模型的输入不再是训练集的图像本身,而是经过预训练模型“消化”后的图像特征向量,该向量的第一个维度对应于每一个图像样本,其长度为样本的个数,第二个维度是基模型最后一层每个卷积核输出特征图的平均值,对于InceptionV3来说,第二个维度的长度是2048。
划分训练集和验证集:注意这里是对输入的特征向量划分训练集和验证集。
定制新模型:由于已经导出特征向量,因此接下来只需训练一个输入特征长度为2048的全连接网络即可。
同样采用回调函数以及较大的batch_size(4096)进行训练。
训练速度提升明显,五代训练仅用时十几秒钟,就可以在验证集上达到0.02左右的Loss。
此时模型已经基本可以跻身于Kaggle Leaderboard的Top20。如果进一步融合ResNet50,Xception等模型,则可以达到Top10。
后续可对模型进行微调,以进一步提升模型性能。
采用微调和推理方法对训练本身起到的技术效果包括使预训练模型能够胜任新数据集的识别工作,能够让预训练模型原本的特征提取能力得到充分的释放和利用,让模型能够达到更低的损失。
在上述第一实施例的一种可能的实现中,所述步骤S002和S003的进行过程中,还包括:
通过切分和/或卸载优化器状态,梯度,模型参数,完成所述AI任务在所述硬件处理器间的数据迁移;
所述AI任务包括图片处理任务和/或自然语言处理任务。
通过切分和/或卸载优化器状态(阶段1),梯度(阶段2),模型参数(阶段3),使GPU内存仅保存当前计算所需要的相关数据,从而减少训练过程中所需的GPU内存消耗,最终允许本方案使用极少量的GPU资源即可训练/微调极大的AI模型。其可以使GPU的内存仅保存当前计算所需要的相关数据,当GPU的内存不足时,将模型卸载到CPU的内存,以及进一步将所述模型卸载到硬盘。
对于大型模型,由于参数量巨大,模型自身和对应的所述优化器需要消耗大量的空间,如GPU显存,在计算资源(处理器个数、能力)有限,或者即使经过多维并行划分,单个处理器还是无法处理时,需要借助动态内存磁盘管理,借助CPU内存或者高速硬盘的容量来动态放置模型参数、相应的优化器状态、梯度等信息,仅在GPU显存上保存当前计算所需要的。
所述图片处理任务为对图片的特征数据进行处理;所述自然语言处理任务为对句子的特征数据进行处理。
在上述第一实施例的一种可能的实现中,所述获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果,具体包括:
所述数据并行将所述AI任务分配到各个所述硬件处理器上,获得所有所述硬件处理器总共同时处理的数据总批大小与每个所述硬件处理器的每次处理数据批大小;
所述数据并行中数据被划分,每一个节点(或者进程)都有一份模型,然后各个节点取不同的数据,通常是一个batch size,然后各自完成前向和后向的计算得到梯度,这些进行训练的进程为worker,除了worker,还有参数服务器,简称ps server,这些worker会把各自计算得到的梯度送到ps server,然后由ps server来进行update操作,然后把update后的模型再传回各个节点。
所述数据并行能扩大等效batch size,即等效批次大小,通过并行处理器数*单科处理器batch size计算,加速计算。如128000个数据,每个处理器的batch size 128,每次计算更新模型需2秒,需要等待计算2*128000/128=2000秒(计算1000次);现有100个处理器数据并行,则等效批次大小为12800,仅需等待约计算2*128000/12800=20秒(计算10次)。
所述序列并行能延长transformer类模型所接收数据的长度,因此能够处理NLP中的长文本和CV任务中的高分辨率图片(大图片)/视频(图片可以切割成小块的图片,所有小图片依次排列也是序列;视频本身就是图片的序列,每张图片也可以再切分和/或卸载)。若无序列并行,通常只能将数据截断,分段处理,会降低性能。transformer模型是目前深度学习领域最前沿的,不仅在NLP相关任务性能卓越。对于CV任务,也衍生出了ViT等基于transformer的模型。
所述序列并行会进一步对数据进行切分和/或卸载和分配,将每个所述AI任务放到多个处理器;
在获取到计算资源后,所述图片处理任务和/或图片的特征数据进行处理,通过数据并行,被分配到各个处理器上(GPU/CPU等),序列并行会进一步对数据进行切分和/或卸载和分配。但单个数据太长,可能单个处理器无法处理,序列并行切分和/或卸载后,一个数据放到多个处理器。计算时通过通信,等效为在直接处理整个完整数据。
所述流水并行,将模型拆分成多段,将每一段部署在不同的硬件处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
所述多维网格并行包括2维和/或2.5维和/或3维的网格并行。
所述2.5维网格并行旨在设计出一个可量化的新型深度学习模型并行架构,最小化图形处理器之间昂贵的传输损失,并提供一个灵活高效的架构,进一步提高模型并行的速度以及效率。
所述2.5维网格并行采用了灵活的架构设计,用户可灵活地设置模型并行的各种参数来高效运用有限的图形处理器资源,其采用的介于2D与3D之间的架构设置拥有2D的简单设计以及3D的高效。在拥有了2D以及3D的特点后,2.5维网格模型并行可以像2D一样无限制的运用到广泛的深度学习模型中,也拥有3D的极高效率,这种设计可以最大限度的兼容各种深度学习模型,各种应用领域,并且大幅提升模型的效率。
作为新提出的模型并行方案,2.5维网格并行(Tesseract)相较于传统的1维、2维模型并行架构分别提升了1.375倍和1.5293倍的运行速度(64x NVIDIA Quadro RTX5000)。通过减少图形处理器之间的传输次数,2.5维网格模型并行(Tesseract)大幅提升了模型并行总体的运行效率,进而降低了深度学习模型的训练成本,包括图形处理器所需数量以及等待时间。此外,在模型的训练精度上,本方案测试过的ViT模型显示2.5D模型并行(Tesseract)可以和非并行取得相同的训练精度。
图4为2.5维网格并行方案的结构布局图,其中针对处理器个数p,将p个处理器构建在[p,p,d]的2.5维布局图中,d为深度。
所述2.5维网格并行为通过分离大小[a,b]的矩阵A和大小[b,c]的矩阵B,之后合并获取大小[a,c]的矩阵C,具体执行如下算法:
其中q表示维度,b表示batch size批大小,h表示隐藏大小,s表示序列长度;
输入:矩阵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)上,导致存储资源浪费,本方案优化了存储和通信算法,将矩阵存储平摊到整个处理器上。
图5为本发明实施例的矩阵-向量参数均衡结构图,采用负载均衡优化,矩阵-向量之间的操作,在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倍。附图6和7分别为弱扩展效率和强扩展效率比对示意图,其中所述弱扩展效率比对中,使问题规模(计算量)随处理器数量增加而增加,即每个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=12。3维模型并行,需要处理器有a*a*a个,如2*2*2=8,3*3*3=27。
即使都是8个处理器,2.5维模型并行与3维模型并行具体运算也是不一样的;都是4个处理器,2.5维模型并行与2维模型并行具体运算也是不一样的。
并行处理器数符合多种情况的模型并行时,如64个,三种都符合,具体选择哪种还需要根据实际运行性能(速度)来选择最优的。因为运行环境不同会带来处理器性能、内存、通信带宽、处理器网络拓扑结构等的差异,不同的任务所用的模型、数据差异也很大。
所述AI任务的模型通过2/2.5/3维的模型并行,将模型参数分解到各个处理器上,由于单个机器容量有限,分解之后相当于所有机器的容量加起来去容纳模型,一方面允许容纳整体上更大的模型,一方面减少了计算过程中参数的通信。
所述AI任务的数据如图片/句子,输入模型,各处理器在前向计算时,相互通信,相当于使用完整长序列数据进行计算。前向计算得到输出结果,与训练数据标签(label)作对比,得到损失函数(loss function)值,再后向计算梯度,用于下一步更新模型参数。前向计算和后向计算都可以通过2/2.5/3维的模型并行,加速计算速度。
在上述第一实施例的一种可能的实现中,所述获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求,具体包括:
所述AI任务对应的优化器算法包括但不限于LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器;
所述LAMB、LARS、ConAdv优化器适用于大批次训练,
所述LARS用于计算机视觉相关AI任务的处理;
所述LAMB用于自然语言处理相关AI任务的处理;
所述ConAdv适合速度需求高,精度要求低的AI任务的处理;
所述La-Lars适用于通信带宽窄,网络通信成本高的AI任务的处理。
虽然数据并行能通过增大(等效)batch size,加速训练速度,但会导致优化困难,必须使用专门针对大batch的优化器,才能保证较好的收敛效果。LAMB/LARS/ConAdv都适用于大批次(batch)训练,其中,LARS最适合计算机视觉相关任务(将CV任务的batch size扩展到32K),LAMB最适合自然语言处理相关任务(将NLP任务的batch size扩展到64K),ConAdv适合追求极致速度,精度要求略低的CV任务(在略微损失精度的情况下将CV任务batch size扩展到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进一步将通信量压缩到约千分之一,以适应通信带宽很窄的情况,尽管会略微损失精度。
图8为LAMB算法的实验效果统计图,混合batch size训练下(64k/32k),ADAMW无法收敛,而LAMB能达到101.8%的加速比(64倍计算资源下,计算速度提升65.2倍)。
所述La-Lars为一种梯度稀疏化算法,参照图9,即每次交换梯度时只发送重要的梯度。剩余的梯度将在本地累积并在未来发送。
为了加快训练速度,最简单的方法之一就是增加计算节点的数量。但是,当节点数量较多时,网络通信成本就成为瓶颈。同时,当batch size超过一定大小时,神经网络的泛化性能会变差。
LARS解决了大规模深度学习训练导致的性能下降问题。它是一个逐层自适应速率缩放优化器,它可以将批量大小扩展到32K,而不会损失性能。然而,由于梯度的稀疏表示和局部梯度累积,本方案很难简单地将DGC和LARS一起使用,因为这会导致梯度过期问题。
本方案提出了LA-LARS算法,它比直接同时使用DGC和LARS具有更快的收敛速度和更小的性能损失。在MNIST和CIFAR-10数据集上,LA-LARS在保证0.1%压缩率的同时优于其他基线优化器。在ImageNet数据集上,它只需使用60%-70%的训练时间达到与基线优化器相似的性能。
第二实施例,参照附图10,本申请实施例提供了一种基于人工智能的分布式训练和推理系统,用于硬件处理器,所述系统执行于软件平台,使用机器学习库,用于处理多种应用数据;
所述硬件处理器包括但不限于:CPU、GPU、FPGA、TPU;
其特征在于,所述系统包括:
调度模块,获取多个AI任务的任务参数,依据所述多个AI任务的任务参数获取调度决策,将所述多个AI任务分配至多个所述硬件处理器上,得到所述AI任务的计算资源;
多维并行模块,获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果;
可扩展优化模块,获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求;
所述分配过程中使用优化算法,优化调度决策;
所述并行处理方式包括数据并行、序列并行、流水并行、多维网格并行处理。
所述基于人工智能的分布式训练和推理系统运行于云端,与本地数据进行通信交互;
所述基于人工智能的分布式训练和推理系统执行于软件平台,所述软件平台包括但不限于CUDA、ROCm;
所述基于人工智能的分布式训练和推理系统使用机器学习库,所述机器学习库包括但不限于TensorFlow、Keras、PyTorch。
上述第二实施例采用的方案通过多维并行,将模型进行划分,提升分布式AI训练和推理效率的效率,实现70%的响应速度提升,将响应时间从原先的30秒降到17-18秒;通过高效的内存分块、数据移动管理,将平均每个处理器上上支持的最大模型从10亿参数规模提升到120亿参数规模,减少了大模型推理所需的处理器数量,减少成本、提升模型的可用性和产品性能;提供自动化部署方案,提升了5-10倍的部署速度,未来能够节省零眸科技进行模型分布式部署所需的人力、时间、费用成本。
在上述第二实施例的一种可能的实现中,所述调度模块根据批大小自动管理多个AI任务,依据每个AI任务的批大小将所述硬件处理器的利用率最大化,通过优化算法,不断优化调度决策,具体包括:
每个AI任务,有数据(图片/句子)、模型(ViT/ResNet/TransFormer等)、类型(训练/微调/推理)等参数,采用任务调度策略分配适当的计算资源。
具体的,根据batch size等信息调整任务调度,充分利用算力资源,能显著缩短任务的平均等待时间;
用户要启动训练和推理任务的时候,启动命令写到一个文件里,把文件提交给调度系统,调度系统帮忙排队、规划训练和推理任务;
该调度方式是动态的,可以根据任务的性质进行调度,缩短任务完成的平均时间,并且能够根据优先级进行调整。
本实施例涉及的任务调度方法可达到算力使用率最大化,减少每个处理器和线程的闲置时间,缩短任务等候时间,减少处理器的闲置时间意味着缩短从提交任务到计算结束的时间等良好技术效果。
在上述第二实施例的一种可能的实现中,所述系统还包括:
微调与推理模块,对所述优化器处理后的所述AI任务进行微调与预测,通过微调针对具体应用继续训练模型,最终部署完成训练的模型进行实际应用的推理;
微调整体和训练基本一样;推理处理具体应有的功能包括:相对基准系统有至少30%速度提升、能在单服务器上完成GPT-2部署、至少减少30%内存并保证精度。
微调的主要采用两种方法进行。
方法一:冻结全部卷积层+训练个性化定制的全连接层
使用InceptionV3预训练模型:该模型当初用ImageNet数据集训练时的输入图像尺寸是299x299,且图像通道顺序为RGB。需要注意的是,使用预训练模型一定要确保让待训练的数据尽可能向原数据集靠拢,这样才能最大程度发挥模型的识图本领。
预处理:按照预训练模型原本的预处理方式对数据进行预处理,在这里是归一化至[-1,1]
基模型:导入预训练模型(只导入卷积层部分),并锁定全部卷积层参数。
定制模型:卷积层之后先接全局平均池化(GAP),再接Dropout,再接分类器,根据分类任务选择输出个数。模型可训练参数只有两千个。
优化器:采用LARS。
数据准备:将训练集划分为训练集和验证集。
定义回调函数以方便训练:自动在每代结束保存模型,以val_loss作为监控指标进行早停,训练历史数据同步更新到Tensorboard供可视化。
Batch Size:要用较大的batch size进行训练,这样可以让模型更快更好的收敛。
虽然卷积层全都已经锁定,但是由于样本依然需要从模型的输入一直计算到输出,因此训练比较耗时。训练五代需要十几分钟,验证集Loss在0.05左右。
方法二:导出特征向量,再单独训练分类器:
预处理:导出训练集和测试集的特征向量之前,按照预训练模型的要求进行预处理,否则导出的特征将不是模型的最佳表现。
基模型:基模型由InceptionV3的卷积层部分以及全局平均池化(GAP)构成。
导出即预测:所谓导出,其实就是让基模型直接对训练集和测试集进行预测,只不过预测出的结果不是图像类别,而是特征向量(特征图的浓缩版本)。
导出需要一定时间,由于导出需要对数据集的所有图片进行预测,因此通常需要一两分钟才能完成。
新模型的输入是特征向量:新模型的输入不再是训练集的图像本身,而是经过预训练模型“消化”后的图像特征向量,该向量的第一个维度对应于每一个图像样本,其长度为样本的个数,第二个维度是基模型最后一层每个卷积核输出特征图的平均值,对于InceptionV3来说,第二个维度的长度是2048。
划分训练集和验证集:注意这里是对输入的特征向量划分训练集和验证集。
定制新模型:由于已经导出特征向量,因此接下来只需训练一个输入特征长度为2048的全连接网络即可。
同样采用回调函数以及较大的batch_size(4096)进行训练。
训练速度提升明显,五代训练仅用时十几秒钟,就可以在验证集上达到0.02左右的Loss。
此时模型已经基本可以跻身于Kaggle Leaderboard的Top20。如果进一步融合ResNet50,Xception等模型,则可以达到Top10。
后续可对模型进行微调,以进一步提升模型性能。
采用微调和推理方法对训练本身起到的技术效果包括使预训练模型能够胜任新数据集的识别工作,能够让预训练模型原本的特征提取能力得到充分的释放和利用,让模型能够达到更低的损失。
动态内存磁盘管理模块,通过切分和/或卸载优化器状态,梯度,模型参数,完成所述AI任务在所述硬件处理器间的数据迁移;
所述AI任务包括图片处理任务和/或自然语言处理任务。
通过切分和/或卸载优化器状态(阶段1),梯度(阶段2),模型参数(阶段3),使GPU内存仅保存当前计算所需要的相关数据,从而减少训练过程中所需的GPU内存消耗,最终允许本方案使用极少量的GPU资源即可训练/微调极大的AI模型。其可以使GPU的内存仅保存当前计算所需要的相关数据,当GPU的内存不足时,将模型卸载到CPU的内存,以及进一步将所述模型卸载到硬盘。
对于大型模型,由于参数量巨大,模型自身和对应的所述优化器需要消耗大量的空间,如GPU显存,在计算资源(处理器个数、能力)有限,或者即使经过多维并行划分,单个处理器还是无法处理时,需要借助动态内存磁盘管理,借助CPU内存或者高速硬盘的容量来动态放置模型参数、相应的优化器状态、梯度等信息,仅在GPU显存上保存当前计算所需要的。
所述图片处理任务为对图片的特征数据进行处理;所述自然语言处理任务为对句子的特征数据进行处理。
在上述第二实施例的一种可能的实现中,所述多维并行模块,采用数据并行、序列并行、流水并行、多维网格并行,将所述AI任务在所述硬件处理器上并行处理,还包括:
所述数据并行将所述AI任务分配到各个所述硬件处理器上,获得所有所述硬件处理器总共同时处理的数据总批大小与每个所述硬件处理器的每次处理数据批大小;
所述数据并行中数据被划分,每一个节点(或者进程)都有一份模型,然后各个节点取不同的数据,通常是一个batch size,然后各自完成前向和后向的计算得到梯度,这些进行训练的进程为worker,除了worker,还有参数服务器,简称ps server,这些worker会把各自计算得到的梯度送到ps server,然后由ps server来进行update操作,然后把update后的模型再传回各个节点。
所述数据并行能扩大等效batch size,即等效批次大小,通过并行处理器数*单科处理器batch size计算,加速计算。如128000个数据,每个处理器的batch size 128,每次计算更新模型需2秒,需要等待计算2*128000/128=2000秒(计算1000次);现有100个处理器数据并行,则等效批次大小为12800,仅需等待约计算2*128000/12800=20秒(计算10次)。
所述序列并行能延长transformer类模型所接收数据的长度,因此能够处理NLP中的长文本和CV任务中的高分辨率图片(大图片)/视频(图片可以切割成小块的图片,所有小图片依次排列也是序列;视频本身就是图片的序列,每张图片也可以再切分和/或卸载)。若无序列并行,通常只能将数据截断,分段处理,会降低性能。transformer模型是目前深度学习领域最前沿的,不仅在NLP相关任务性能卓越。对于CV任务,也衍生出了ViT等基于transformer的模型。
所述序列并行会进一步对数据进行切分和/或卸载和分配,将每个所述AI任务放到多个处理器;
在获取到计算资源后,所述图片处理任务和/或图片的特征数据进行处理,通过数据并行,被分配到各个处理器上(GPU/CPU等),序列并行会进一步对数据进行切分和/或卸载和分配。但单个数据太长,可能单个处理器无法处理,序列并行切分和/或卸载后,一个数据放到多个处理器。计算时通过通信,等效为在直接处理整个完整数据。
所述流水并行,将模型拆分成多段,将每一段部署在不同的硬件处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
流水并行中,每个设备负责一部分层的前向及对应的后向运算;在训练场景下,因为需要在一个步骤的反向结束后才能进行下一步骤,每个设备存在气泡等待;由于气泡等待的存在,导致流水并行设备利用率不高;可以通过增加每一次训练的批大小,并切分为多个小型批micro-batch,提升设备利用率。
所述多维网格并行包括2维和/或2.5维和/或3维的网格并行。
所述2.5维网格并行旨在设计出一个可量化的新型深度学习模型并行架构,最小化图形处理器之间昂贵的传输损失,并提供一个灵活高效的架构,进一步提高模型并行的速度以及效率。
所述2.5维网格并行采用了灵活的架构设计,用户可灵活地设置模型并行的各种参数来高效运用有限的图形处理器资源,其采用的介于2D与3D之间的架构设置拥有2D的简单设计以及3D的高效。在拥有了2D以及3D的特点后,2.5维网格模型并行可以像2D一样无限制的运用到广泛的深度学习模型中,也拥有3D的极高效率,这种设计可以最大限度的兼容各种深度学习模型,各种应用领域,并且大幅提升模型的效率。
作为新提出的模型并行方案,2.5维网格并行(Tesseract)相较于传统的1维、2维模型并行架构分别提升了1.375倍和1.5293倍的运行速度(64x NVIDIA Quadro RTX5000)。通过减少图形处理器之间的传输次数,2.5维网格模型并行(Tesseract)大幅提升了模型并行总体的运行效率,进而降低了深度学习模型的训练成本,包括图形处理器所需数量以及等待时间。此外,在模型的训练精度上,本方案测试过的ViT模型显示2.5D模型并行(Tesseract)可以和非并行取得相同的训练精度。
2.5维网格并行方案针对处理器个数p,将p个处理器构建在[p,p,d]的2.5维布局图中,d为深度。
所述2.5维网格并行为通过分离大小[a,b]的矩阵A和大小[b,c]的矩阵B,之后合并获取大小[a,c]的矩阵C,具体执行如下算法:
其中q表示维度,b表示batch size批大小,h表示隐藏大小,s表示序列长度;
输入:矩阵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=12。3维模型并行,需要处理器有a*a*a个,如2*2*2=8,3*3*3=27。
即使都是8个处理器,2.5维模型并行与3维模型并行具体运算也是不一样的;都是4个处理器,2.5维模型并行与2维模型并行具体运算也是不一样的。
并行处理器数符合多种情况的模型并行时,如64个,三种都符合,具体选择哪种还需要根据实际运行性能(速度)来选择最优的。因为运行环境不同会带来处理器性能、内存、通信带宽、处理器网络拓扑结构等的差异,不同的任务所用的模型、数据差异也很大。
所述AI任务的模型通过2/2.5/3维的模型并行,将模型参数分解到各个处理器上,由于单个机器容量有限,分解之后相当于所有机器的容量加起来去容纳模型,一方面允许容纳整体上更大的模型,一方面减少了计算过程中参数的通信。
所述AI任务的数据如图片/句子,输入模型,各处理器在前向计算时,相互通信,相当于使用完整长序列数据进行计算。前向计算得到输出结果,与训练数据标签(label)作对比,得到损失函数(loss function)值,再后向计算梯度,用于下一步更新模型参数。前向计算和后向计算都可以通过2/2.5/3维的模型并行,加速计算速度。
在上述第二实施例的一种可能的实现中,所述可扩展优化模块,采用所述AI任务对应的优化器,依据所述AI任务的属性选择所述优化器,还包括:
所述AI任务对应的优化器算法包括但不限于LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器;
所述LAMB、LARS、ConAdv优化器适用于大批次训练,
所述LARS用于计算机视觉相关AI任务的处理;
所述LAMB用于自然语言处理相关AI任务的处理;
所述ConAdv适合速度需求高,精度要求低的AI任务的处理;
所述La-Lars适用于通信带宽窄,网络通信成本高的AI任务的处理。
虽然数据并行能通过增大(等效)batch size,加速训练速度,但会导致优化困难,必须使用专门针对大batch的优化器,才能保证较好的收敛效果。LAMB/LARS/ConAdv都适用于大批次(batch)训练,其中,LARS最适合计算机视觉相关任务(将CV任务的batch size扩展到32K),LAMB最适合自然语言处理相关任务(将NLP任务的batch size扩展到64K),ConAdv适合追求极致速度,精度要求略低的CV任务(在略微损失精度的情况下将CV任务batch size扩展到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进一步将通信量压缩到约千分之一,以适应通信带宽很窄的情况,尽管会略微损失精度。
根据LAMB算法的实验效果统计,混合batch size训练下(64k/32k),ADAMW无法收敛,而LAMB能达到101.8%的加速比(64倍计算资源下,计算速度提升65.2倍)。
所述La-Lars为一种梯度稀疏化算法,参照图7,即每次交换梯度时只发送重要的梯度。剩余的梯度将在本地累积并在未来发送。
为了加快训练速度,最简单的方法之一就是增加计算节点的数量。但是,当节点数量较多时,网络通信成本就成为瓶颈。同时,当batch size超过一定大小时,神经网络的泛化性能会变差。
LARS解决了大规模深度学习训练导致的性能下降问题。它是一个逐层自适应速率缩放优化器,它可以将批量大小扩展到32K,而不会损失性能。然而,由于梯度的稀疏表示和局部梯度累积,本方案很难简单地将DGC和LARS一起使用,因为这会导致梯度过期问题。
所述La-Lars为一种梯度稀疏化算法,每次交换梯度时只发送重要的梯度。剩余的梯度将在本地累积并在未来发送。
为了加快训练速度,最简单的方法之一就是增加计算节点的数量。但是,当节点数量较多时,网络通信成本就成为瓶颈。同时,当batch size超过一定大小时,神经网络的泛化性能会变差。
LARS解决了大规模深度学习训练导致的性能下降问题。它是一个逐层自适应速率缩放优化器,它可以将批量大小扩展到32K,而不会损失性能。然而,由于梯度的稀疏表示和局部梯度累积,本方案很难简单地将DGC和LARS一起使用,因为这会导致梯度过期问题。
本方案提出了LA-LARS算法,它比直接同时使用DGC和LARS具有更快的收敛速度和更小的性能损失。在MNIST和CIFAR-10数据集上,LA-LARS在保证0.1%压缩率的同时优于其他基线优化器。在ImageNet数据集上,它只需使用60%-70%的训练时间达到与基线优化器相似的性能。
第二实施例是与本实施例相对应的装置实施例,本实施例可与第二实施例互相配合实施。第二实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,第一实施例中提到的相关技术细节也可应用在第二实施例中。
第三实施例,本申请实施例提供了一种基于人工智能的分布式训练设备,其特征在于,
包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行所述指令以实施上述第一方面的任意一种可能的基于人工智能的分布式训练和推理方法。
第四实施例,本申请实施例提供了一种使用计算机程序编码的计算机可读存储介质,其特征在于,所述计算机可读介质上存储有指令,所述指令在计算机上执行时使计算机执行上述第一方面的任意一种可能的基于人工智能的分布式训练和推理方法。
需要说明的是,本申请的各方法实施例均可以以软件、硬件、固件等方式实现。不管本申请是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically ErasableProgrammable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部位,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部位,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施例并不存在其它的单元。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (10)
1.一种基于人工智能的分布式训练和推理方法,用于硬件处理器,所述方法执行于软件平台,使用机器学习库;
其特征在于,所述方法包括步骤:
获取多个AI任务的任务参数,依据所述多个AI任务的任务参数获取调度决策,将所述多个AI任务分配至多个所述硬件处理器上,得到所述AI任务的计算资源;
获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果;
获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求;
所述分配过程中使用优化算法,优化调度决策;
所述并行处理方式包括数据并行、序列并行、流水并行、多维网格并行处理;
所述AI任务包括训练任务和推理任务。
2.如权利要求1所述的一种基于人工智能的分布式训练和推理方法,其特征在于,所述获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求后还包括步骤:
对所述优化器处理后的所述AI任务的AI模型参数进行微调与预测,通过微调针对具体应用继续训练模型,最终部署完成训练的模型进行实际应用的推理;
所述对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果的进行过程中,还包括步骤:
通过切分和/或卸载优化器状态,梯度,模型参数,完成所述AI任务在所述硬件处理器间的数据迁移;
所述AI任务包括图片处理任务和/或自然语言处理任务。
3.如权利要求1所述的一种基于人工智能的分布式训练和推理方法,其特征在于,所述获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求,具体包括:
所述数据并行将所述AI任务分配到各个所述硬件处理器上,获得所有所述硬件处理器总共同时处理的数据总批大小与每个所述硬件处理器的每次处理数据批大小;
所述序列并行会进一步对数据进行切分和/或卸载和分配,将每个所述AI任务放到多个处理器;
所述流水并行,将模型拆分成多段,将每一段部署在不同的硬件处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
所述多维网格并行包括2维和/或2.5维和/或3维的网格并行。
4.如权利要求1所述的一种基于人工智能的分布式训练和推理方法,其特征在于,所述步骤获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求,具体包括:
所述AI任务对应的优化器算法包括但不限于LAMB优化器和/或LARS优化器和/或ConAdv优化器和/或La-Lars优化器;
所述LAMB、LARS、ConAdv优化器适用于大批次训练,
所述LARS用于计算机视觉相关AI任务的处理;
所述LAMB用于自然语言处理相关AI任务的处理;
所述ConAdv适合速度需求高,精度要求低的AI任务的处理;
所述La-Lars适用于通信带宽窄,网络通信成本高的AI任务的处理。
5.一种基于人工智能的分布式训练和推理系统,用于硬件处理器,所述系统执行于软件平台,使用机器学习库,用于处理多种应用数据;
所述硬件处理器包括但不限于:CPU、GPU、FPGA、TPU;
其特征在于,所述系统包括:
调度模块,获取多个AI任务的任务参数,依据所述多个AI任务的任务参数获取调度决策,将所述多个AI任务分配至多个所述硬件处理器上,得到所述AI任务的计算资源;
多维并行模块,获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果;
可扩展优化模块,获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求;
所述分配过程中使用优化算法,优化调度决策;
所述并行处理方式包括数据并行、序列并行、流水并行、多维网格并行处理;
所述AI任务包括训练任务和推理任务。
6.如权利要求5所述的一种基于人工智能的分布式训练和推理系统,其特征在于,所述系统还包括:
微调与推理模块,对所述优化器处理后的所述AI任务的AI模型参数进行微调与预测,通过微调针对具体应用继续训练模型,最终部署完成训练的模型进行实际应用的推理;
动态内存磁盘管理模块,通过切分和/或卸载优化器状态,梯度,模型参数,完成所述AI任务在所述硬件处理器间的数据迁移;
所述AI任务包括图片处理任务和/或自然语言处理任务。
7.如权利要求5所述的一种基于人工智能的分布式训练和推理系统,其特征在于,所述多维并行模块,获取所述分配至多个所述硬件处理器上的AI任务的计算资源,对所述AI任务的训练任务,在各自硬件处理器上执行多维并行处理,获取AI任务的输出结果,还包括:
所述数据并行将所述AI任务分配到各个所述硬件处理器上,获得所有所述硬件处理器总共同时处理的数据总批大小与每个所述硬件处理器的每次处理数据批大小;
所述序列并行会进一步对数据进行切分和/或卸载和分配,将每个所述AI任务放到多个处理器;
所述流水并行,将模型拆分成多段,将每一段部署在不同的硬件处理器,并按模型顺序串接起来,前一段的输出作为后一段的输入;
所述多维网格并行包括2维和/或2.5维和/或3维的网格并行。
8.如权利要求5所述的一种基于人工智能的分布式训练和推理系统,其特征在于,所述可扩展优化模块,获取所述执行并行处理后的AI任务的并行处理结果,针对所述AI任务的训练任务,根据模型当前输出结果计算梯度,采用所述AI任务对应的优化器对所述AI任务进行优化处理,得到优化处理后的AI模型参数,不断迭代模型参数进行更新,直至达到目标迭代次数或训练结果已满足要求,还包括:
所述AI任务对应的优化器算法包括但不限于LAMB优化器和/或LARS优化器和/或ConAdv优化器和或La-Lars优化器;
所述LAMB、LARS、ConAdv优化器适用于大批次训练,
所述LARS用于计算机视觉相关AI任务的处理;
所述LAMB用于自然语言处理相关AI任务的处理;
所述ConAdv适合速度需求高,精度要求低的AI任务的处理;
所述La-Lars适用于通信带宽窄,网络通信成本高的AI任务的处理。
9.一种基于人工智能的分布式训练设备,其特征在于,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行所述指令以实施权利要求1-4所述的基于人工智能的分布式训练和推理方法。
10.一种使用计算机程序编码的计算机可读存储介质,其特征在于,所述计算机可读介质上存储有指令,所述指令在计算机上执行时使计算机执行权利要求1-4中任一项所述的基于人工智能的分布式训练和推理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111204831.7A CN114035937A (zh) | 2021-10-15 | 2021-10-15 | 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111204831.7A CN114035937A (zh) | 2021-10-15 | 2021-10-15 | 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114035937A true CN114035937A (zh) | 2022-02-11 |
Family
ID=80135039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111204831.7A Pending CN114035937A (zh) | 2021-10-15 | 2021-10-15 | 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114035937A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676761A (zh) * | 2022-03-10 | 2022-06-28 | 北京智源人工智能研究院 | 预训练模型训练处理方法、装置、电子设备及存储介质 |
CN114780225A (zh) * | 2022-06-14 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
CN115248728A (zh) * | 2022-09-21 | 2022-10-28 | 之江实验室 | 面向智能计算的分布式训练任务调度方法、系统和装置 |
CN115660034A (zh) * | 2022-10-28 | 2023-01-31 | 北京百度网讯科技有限公司 | 分布式模型训练的方法、装置和系统 |
CN116521380A (zh) * | 2023-07-05 | 2023-08-01 | 之江实验室 | 一种资源自适应协同的模型训练加速方法、装置及设备 |
CN116739090A (zh) * | 2023-05-12 | 2023-09-12 | 北京大学 | 基于Web浏览器的深度神经网络推理度量方法和装置 |
WO2023240845A1 (zh) * | 2022-06-15 | 2023-12-21 | 苏州元脑智能科技有限公司 | 一种分布式计算方法、系统、设备及存储介质 |
CN117333067A (zh) * | 2023-10-12 | 2024-01-02 | 苏州市职业大学(苏州开放大学) | 一种智能化的体育教学数据管理方法及系统 |
WO2024060788A1 (zh) * | 2022-09-21 | 2024-03-28 | 之江实验室 | 面向智能计算的流水并行训练自适应调整系统、方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902818A (zh) * | 2019-01-15 | 2019-06-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的分布式加速方法及系统 |
CN110134636A (zh) * | 2018-02-09 | 2019-08-16 | 中兴通讯股份有限公司 | 模型训练方法、服务器和计算机可读存储介质 |
CN110379416A (zh) * | 2019-08-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种神经网络语言模型训练方法、装置、设备及存储介质 |
CN110795228A (zh) * | 2018-08-03 | 2020-02-14 | 伊姆西Ip控股有限责任公司 | 使用加速器混合集的分布式深度学习的自适应批量数据集划分 |
CN111858058A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 基于并行计算的sgd负载均衡方法、装置及存储介质 |
CN111858072A (zh) * | 2020-08-06 | 2020-10-30 | 华中科技大学 | 一种大规模分布式深度学习的资源管理方法及系统 |
CN111882060A (zh) * | 2020-07-20 | 2020-11-03 | 中国人民解放军国防科技大学 | 用于机器学习的单步延迟随机梯度下降训练方法 |
CN112154462A (zh) * | 2018-05-23 | 2020-12-29 | 微软技术许可有限责任公司 | 高性能流水线并行深度神经网络训练 |
CN112784968A (zh) * | 2021-01-29 | 2021-05-11 | 东南大学 | 一种加速分布式深度神经网络训练的混合流水线并行方法 |
-
2021
- 2021-10-15 CN CN202111204831.7A patent/CN114035937A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134636A (zh) * | 2018-02-09 | 2019-08-16 | 中兴通讯股份有限公司 | 模型训练方法、服务器和计算机可读存储介质 |
CN112154462A (zh) * | 2018-05-23 | 2020-12-29 | 微软技术许可有限责任公司 | 高性能流水线并行深度神经网络训练 |
CN110795228A (zh) * | 2018-08-03 | 2020-02-14 | 伊姆西Ip控股有限责任公司 | 使用加速器混合集的分布式深度学习的自适应批量数据集划分 |
CN109902818A (zh) * | 2019-01-15 | 2019-06-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的分布式加速方法及系统 |
CN110379416A (zh) * | 2019-08-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种神经网络语言模型训练方法、装置、设备及存储介质 |
CN111882060A (zh) * | 2020-07-20 | 2020-11-03 | 中国人民解放军国防科技大学 | 用于机器学习的单步延迟随机梯度下降训练方法 |
CN111858058A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 基于并行计算的sgd负载均衡方法、装置及存储介质 |
CN111858072A (zh) * | 2020-08-06 | 2020-10-30 | 华中科技大学 | 一种大规模分布式深度学习的资源管理方法及系统 |
CN112784968A (zh) * | 2021-01-29 | 2021-05-11 | 东南大学 | 一种加速分布式深度神经网络训练的混合流水线并行方法 |
Non-Patent Citations (3)
Title |
---|
QIFAN XU ET AL.: "An Efficient 2D Method for Training Super-Large Deep Learning Models", 《ARXIV》, 12 April 2021 (2021-04-12), pages 1 - 11 * |
ZHENGDA BIAN ET AL.: "Maximizing Parallelism in Distributed Training for Huge Neural Networks", 《ARXIV》, 30 May 2021 (2021-05-30), pages 1 - 11 * |
ZHENGDA BIAN ET AL.: "Online Evolutionary Batch Size Orchestration for Scheduling Deep LearningWorkloads in GPU Clusters", 《ARXIV》, 8 August 2021 (2021-08-08), pages 1 - 12 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676761A (zh) * | 2022-03-10 | 2022-06-28 | 北京智源人工智能研究院 | 预训练模型训练处理方法、装置、电子设备及存储介质 |
CN114676761B (zh) * | 2022-03-10 | 2024-03-19 | 北京智源人工智能研究院 | 预训练模型训练处理方法、装置、电子设备及存储介质 |
CN114780225A (zh) * | 2022-06-14 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
CN114780225B (zh) * | 2022-06-14 | 2022-09-23 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
WO2023240845A1 (zh) * | 2022-06-15 | 2023-12-21 | 苏州元脑智能科技有限公司 | 一种分布式计算方法、系统、设备及存储介质 |
CN115248728A (zh) * | 2022-09-21 | 2022-10-28 | 之江实验室 | 面向智能计算的分布式训练任务调度方法、系统和装置 |
WO2024060788A1 (zh) * | 2022-09-21 | 2024-03-28 | 之江实验室 | 面向智能计算的流水并行训练自适应调整系统、方法 |
CN115660034B (zh) * | 2022-10-28 | 2023-08-15 | 北京百度网讯科技有限公司 | 分布式模型训练的方法、装置和系统 |
CN115660034A (zh) * | 2022-10-28 | 2023-01-31 | 北京百度网讯科技有限公司 | 分布式模型训练的方法、装置和系统 |
CN116739090A (zh) * | 2023-05-12 | 2023-09-12 | 北京大学 | 基于Web浏览器的深度神经网络推理度量方法和装置 |
CN116739090B (zh) * | 2023-05-12 | 2023-11-28 | 北京大学 | 基于Web浏览器的深度神经网络推理度量方法和装置 |
CN116521380A (zh) * | 2023-07-05 | 2023-08-01 | 之江实验室 | 一种资源自适应协同的模型训练加速方法、装置及设备 |
CN117333067A (zh) * | 2023-10-12 | 2024-01-02 | 苏州市职业大学(苏州开放大学) | 一种智能化的体育教学数据管理方法及系统 |
CN117333067B (zh) * | 2023-10-12 | 2024-04-05 | 苏州市职业大学(苏州开放大学) | 一种智能化的体育教学数据管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114035937A (zh) | 一种基于人工智能的分布式训练和推理方法、系统、设备和可读存储介质 | |
US20220391665A1 (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 | |
US20220121903A1 (en) | Method of performing splitting in neural network model by means of multi-core processor, and related product | |
CN111819580A (zh) | 用于密集图像预测任务的神经架构搜索 | |
Han et al. | Signal processing and networking for big data applications | |
CN111709493B (zh) | 对象分类方法、训练方法、装置、设备及存储介质 | |
CN114402293A (zh) | 具有持续且异步更新的流水线式神经网络处理 | |
CN114503125A (zh) | 结构化剪枝方法、系统和计算机可读介质 | |
CN113449839A (zh) | 一种分布式训练方法、梯度通信方法、装置以及计算设备 | |
US20230206083A1 (en) | Optimizing gradient boosting feature selection | |
CN116057518A (zh) | 使用机器学习模型的自动查询谓词选择性预测 | |
US11893691B2 (en) | Point cloud geometry upsampling | |
CN115080248A (zh) | 调度装置的调度优化方法、调度装置和存储介质 | |
WO2023160290A1 (zh) | 神经网络推理加速方法、目标检测方法、设备及存储介质 | |
CN115412401B (zh) | 训练虚拟网络嵌入模型及虚拟网络嵌入的方法和装置 | |
CN115082840B (zh) | 基于数据组合和通道相关性的动作视频分类方法和装置 | |
WO2022223052A1 (zh) | 加速器、计算机系统和方法 | |
CN116957041A (zh) | 压缩神经网络模型的方法、装置和计算设备 | |
CN114817845B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114035936B (zh) | 一种基于人工智能的多维并行处理方法、系统、设备和可读存储介质 | |
US10757360B1 (en) | Methods and apparatus for automatic media file transcoding | |
CN114138484A (zh) | 资源分配方法、装置以及介质 | |
CN114035936A (zh) | 一种基于人工智能的多维并行处理方法、系统、设备和可读存储介质 | |
CN112506652B (zh) | 一种动态资源分区方法 |
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 |