CN118153708A - 一种数据处理方法以及相关装置 - Google Patents
一种数据处理方法以及相关装置 Download PDFInfo
- Publication number
- CN118153708A CN118153708A CN202410236114.XA CN202410236114A CN118153708A CN 118153708 A CN118153708 A CN 118153708A CN 202410236114 A CN202410236114 A CN 202410236114A CN 118153708 A CN118153708 A CN 118153708A
- Authority
- CN
- China
- Prior art keywords
- neural network
- time length
- network layer
- network model
- duration
- 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
- 238000003672 processing method Methods 0.000 title abstract description 14
- 238000012549 training Methods 0.000 claims abstract description 128
- 238000003062 neural network model Methods 0.000 claims abstract description 108
- 238000005192 partition Methods 0.000 claims abstract description 105
- 238000000034 method Methods 0.000 claims abstract description 54
- 239000013598 vector Substances 0.000 claims description 56
- 238000012545 processing Methods 0.000 claims description 55
- 230000015654 memory Effects 0.000 claims description 46
- 238000004891 communication Methods 0.000 claims description 40
- 238000000638 solvent extraction Methods 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 5
- 238000005457 optimization Methods 0.000 abstract description 15
- 238000013473 artificial intelligence Methods 0.000 abstract description 14
- 238000013528 artificial neural network Methods 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 18
- 239000011159 matrix material Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 230000001537 neural effect Effects 0.000 description 9
- 230000004913 activation Effects 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000010845 search algorithm Methods 0.000 description 4
- 102100036475 Alanine aminotransferase 1 Human genes 0.000 description 3
- 101000928460 Homo sapiens Alanine aminotransferase 1 Proteins 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种人工智能领域的数据处理方法以及相关装置,用于对神经网络模型中的数据划分以及网络层划分进行联合优化,从而降低神经网络模型并行训练时长。该方法包括:基于第一数据分区数,对神经网络模型中多个网络层进行划分,得到神经网络模型的网络层划分结果;基于网络层划分结果,确定第二数据分区数,第二数据分区数对应的神经网络模型的训练时长小于第一预设值;比较第一训练时长与第二训练时长的大小,得到比较结果,第一训练时长为根据第一数据分区数以及网络层划分结果计算得到,第二训练时长为根据第二数据分区数以及网络层划分结果计算得到;根据比较结果,确定神经网络模型的目标数据分区数以及目标网络层划分结果。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种数据处理方法以及相关装置。
背景技术
深度学习(Deep Learning,DL)作为人工智能(Artificial Intelligence,AI)的代表性技术之一,具有模型参数规模不断增加的显著趋势。在实际应用中,训练大规模或者超大规模深度神经网络(Deep Neural Network,DNN)需要大量分布式AI处理器设备(例如图形处理器(graphics processing unit,GPU)集群)的协作和并行工作,通常会消耗大量的训练时长。因此,如何通过优化分布式训练的结构降低并行训练时长是目前研究的关键。
对于分布式并行训练而言,数据划分以及网络层划分至关重要,尤其对于基于微批量处理的流水线并行,直接影响分布式并行中计算时间和通信时间的可调度粒度。然而,已有的研究方案仅能分别求解最优数据划分结果与最优网络划分结果,并且主要采用动态规划算法或者递归算法进行求解,该算法的计算复杂度较高,此外,由于缺乏准确的分析模型和公式,很难预先估计每个划分方案的对应的训练性能,从而无法保证优化方案的优化性。
发明内容
本申请实施例提供了一种数据处理方法以及相关装置,用于对神经网络模型中的数据划分以及网络层划分进行联合优化,从而降低神经网络模型并行训练时长。
有鉴于此,第一方面,本申请提供了一种数据处理方法,包括:首先,基于预设的第一数据分区数,对神经网络模型中多个网络层进行划分,得到神经网络模型的网络层划分结果,其中,第一数据分区数用于指示神经网络模型的数据划分情况,网络层划分结果对应的神经网络模型的训练时长小于第一预设值;在得到网络层划分结果之后,可以基于该网络层划分结果,确定第二数据分区数,该第二数据分区数对应的神经网络模型的训练时长小于该第一预设值;随后,可以比较第一训练时长与第二训练时长的大小,得到比较结果,其中,第一训练时长为根据第一数据分区数以及网络层划分结果计算得到,第二训练时长为根据第二数据分区数以及网络层划分结果计算得到;根据比较结果,确定神经网络模型的目标数据分区数以及目标网络层划分结果,以使得神经网络模型根据目标数据分区数以及目标网络层划分结果进行并行训练。
本申请实施例中,将数据划分与网络层划分作为联合优化求解问题,并通过交叉求解最优数据划分方案与最优网络层划分方案的方式,确定出数据划分与网络层划分的联合最优解,以实现对分布式并行结构的优化,从而降低神经网络模型并行训练时长。
在一种可能的实施方式中,前述的根据比较结果,确定神经网络模型的的目标数据分区数以及目标网络层划分结果,可以包括:若第一训练时长等于第二训练时长,则将第二数据分区数作为目标数据分区数并将所网络层划分结果作为目标网络层划分结果;若第一训练时长大于第二训练时长,则更新第一数据分区数,直至第二训练时长大于第一训练时长,停止更新。
本申请实施例中,可以通过交叉求解最优网络层划分结果和最优数据划分结果,不断迭代整体最优解,直至不存在更好的网络层划分方案和数据划分方案,以实现获得网络层划分和数据划分的联合最优解。
在一种可能的实施方式中,前述的对神经网络模型中的多个网络层进行划分,得到神经网络模型的网络层划分结果,可以包括:采用多维度改进二分法对神经网络模型中的多个网络层进行划分,得到神经网络模型的网络层划分结果。
本申请实施例中,可以采用多维度改进二分法对网络层进行划分,同时考虑了神经网络模型的正向传播计算时间,反向传播计算时间,正向传播通信时间以及反向传播通信时间多个维度,并可以通过权重向量将该多维度的保序数组分段问题转化为多维度的保序装箱问题,以实现对网络层划分的优化。
在一种可能的实施方式中,前述的采用多维度改进二分法对神经网络模型中的多个网络层进行划分,得到神经网络模型的网络层划分结果,可以包括:获取神经网络模型中多个网络层的计算时长以及网络层之间的通信时长;根据计算时长以及通信时长,确定最大时长与最小时长;根据最大时长、最小时长以及预设权重向量集合,采用多维度改进二分法确定预设权重向量集合对应的网络层划分结果。
在一种可能的实施方式中,前述的根据最大时长、最小时长以及预设权重向量集合,采用多维度改进二分法确定预设权重向量集合对应的网络层划分结果,可以包括:计算最大时长与最小时长的平均值;根据平均值以及预设权重向量集合,更新最大时长或最小时长,直至最大时长与最小时长的差值小于第二预设值,停止更新;根据平均值,对神经网络模型中多个网络层进行划分,得到网络层划分结果。
在一种可能的实施方式中,前述的根据平均值以及预设权重向量集合,更新最大时长或最小时长,可以包括:判断预设权重向量集合中是否存在权重向量满足预设条件时的计算设备数量小于预设计算设备数量,预设条件用于指示神经网络模型根据平均值进行网络层划分;若存在,则更新最大时长;若不存在,则更新最小时长。
第二方面,本申请提供的一种数据处理装置,包括:
划分模块,用于基于第一数据分区数,对神经网络模型中多个网络层进行划分,得到神经网络模型的网络层划分结果,第一数据分区数用于指示神经网络模型的数据划分情况,网络层划分结果对应的神经网络模型的训练时长小于第一预设值;
确定模块,用于基于网络层划分结果,确定第二数据分区数,第二数据分区数对应的神经网络模型的训练时长小于该第一预设值;
比较模块,用于比较第一训练时长与第二训练时长的大小,得到比较结果,第一训练时长为根据第一数据分区数以及网络层划分结果计算得到,第二训练时长为根据第二数据分区数以及网络层划分结果计算得到;
该确定模块,还用于根据比较结果,确定神经网络模型的目标数据分区数以及目标网络层划分结果。
在一种可能的实施方式中,前述的比较模块,具体用于:若第一训练时长等于第二训练时长,则将第二数据分区数作为目标数据分区数并将网络层划分结果作为目标网络层划分结果;若第一训练时长大于第二训练时长,则更新第一数据分区数,直至第二训练时长大于第一训练时长,停止更新。
在一种可能的实施方式中,前述的划分模块,具体用于:采用多维度改进二分法对神经网络模型中的多个网络层进行划分,得到神经网络模型的网络层划分结果。
在一种可能的实施方式中,前述的划分模块,具体用于:获取神经网络模型中多个网络层的计算时长以及网络层之间的通信时长;根据计算时长以及通信时长,确定最大时长与最小时长;根据最大时长、所最小时长以及预设权重向量集合,采用多维度改进二分法确定预设权重向量集合对应的网络层划分结果。
在一种可能的实施方式中,前述的划分模块,具体用于:计算最大时长与最小时长的平均值;根据平均值以及预设权重向量集合,更新最大时长或最小时长,直至最大时长与最小时长的差值小于第二预设值,停止更新;根据平均值,对神经网络模型中多个网络层进行划分,得到网络层划分结果。
在一种可能的实施方式中,前述的划分模块,具体用于:判断预设权重向量集合中是否存在权重向量满足预设条件时的计算设备数量小于预设计算设备数量,预设条件用于指示神经网络模型根据平均值进行网络层划分;若存在,则更新最大时长;若不存在,则更新最小时长。
第三方面,本申请提供一种数据处理装置,该数据处理装置包括:处理器、存储器、输入输出设备以及总线;该存储器中存储有计算机指令;该处理器在执行该存储器中的计算机指令时,该存储器中存储有计算机指令;该处理器在执行该存储器中的计算机指令时,用于实现如第一方面任意一种实现方式。
第四方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器和输入/输出端口,所述处理器用于实现上述第一方面所述的方法所涉及的处理功能,所述输入/输出端口用于实现上述第一方面所述的方法所涉及的收发功能。
在一种可能的设计中,该芯片系统还包括存储器,该存储器用于存储实现上述第一方面所述的方法所涉及功能的程序指令和数据。
该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
第五方面,本申请实施例提供一种计算机可读存储介质。该计算机可读存储介质中存储有计算机指令;当该计算机指令在计算机上运行时,使得该计算机执行如第一方面中任意一种可能的实现方式所述的方法。
第六方面,本申请实施例提供一种计算机程序产品。该计算机程序产品包括计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行如第一方面中任意一种可能的实现方式所述的方法。
附图说明
图1为本申请提供的一种系统架构示意图;
图2为本申请提供的应用场景示例图;
图3为本申请提供的一种数据处理方法的流程示意图;
图4为本申请提供的另一种数据处理方法的流程示意图;
图5(a)至图5(g)为采用多维度改进二分法进行网络层划分的流程示意图;
图6为网络层训练的示意图;
图7为网络层划分后前向传播示意图;
图8为采用均匀网络层划分得到的网络层划分结果示意图;
图9为不同方法在GPT1网络并行训练场景中的训练时长对比分析图;
图10为不同方法在VGG16网络并行训练场景中的训练时长对比分析图;
图11为本申请提供的一种数据处理装置的结构示意图;
图12为本申请提供的另一种数据处理装置的结构示意图;
图13为本申请提供的一种芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的方法可以应用于人工智能(artificial intelligence,AI)场景中。AI是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
首先对人工智能系统总体工作流程进行描述,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、智慧城市等。
本申请实施例涉及了神经网络的相关应用,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以如公式(1-1)所示:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层中间层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,中间层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是中间层,或者称为隐层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,其每一层可以表示为线性关系表达式:其中,/>是输入向量,/>是输出向量,/>是偏移向量或者称为偏置参数,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量/>经过如此简单的操作得到输出向量/>由于DNN层数多,系数W和偏移向量/>的数量也比较多。这些参数在DNN中的定义如下所述:以系数w为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为/>上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的中间层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)流水线并行
流水线并行(Pipeline Parallelism)是并行计算中的一种技术,它通过将一项大任务分解为多个较小的、可以并行执行的子任务,并将这些子任务按照特定的顺序组织起来,形成一个流水线,以提高整体任务的执行效率。通常用于处理那些可以划分为多个阶段的任务,每个阶段都可以独立执行,并且前一阶段的输出可以作为后一阶段的输入。通过这种方式,可以在不同的处理单元上同时执行不同的阶段,从而实现并行处理。
(4)数据划分
数据划分(Data Partitioning)是并行计算中的一个重要概念,指将大量的数据分成若干独立的部分,并将这些部分分配给多个处理器进行并行处理。数据划分的目标是提高计算速度和系统性能,通过同时处理多个数据部分来减少单个处理器的负担。在基于microbatch数据并行的流水线并行模式中,一个minibatch将被划分为多个microbatch。
(5)网络层划分
在并行训练中,网络层划分(也称为模型并行)是一种策略,用于将深度学习模型的不同层分布在多个计算设备上,以便能够同时处理不同的层,从而加速训练过程。网络层划分的基本思想是将模型的不同层分配给不同的计算设备。每个设备负责处理模型的一部分,并在需要时将中间结果传递给其他设备。通过这种方式,多个设备可以并行工作,从而加快训练速度。
下面介绍本申请实施例提供的系统架构。
参阅图1,为本申请提供的一种系统架构100。如系统架构100所示,主要包括交叉搜索算法求解模块110与多维度改进二分法求解模块120。其中,交叉搜索算法求解模块110主要负责调用数据划分算法以及网络层划分算法,交叉求解最优数据划分结果以及最优网络层划分结果,从而得到数据划分以及网络层划分的联合最优解,以实现对流水线并行结构的优化。多维度改进二分法求解模块120主要基于给定数据分区数,采用多维度改进二分法对神经网络模型中多个网络层进行划分,从而得到最优的网络层划分方案。如图2所示,为本申请提供的一种应用场景示例图。
通常,对于深度神经网络分布式并行训练的优化,主要为采用动态规划算法或者递归算法分别对数据划分以及网络层划分进行优化,无法对数据划分以及网络层划分进行联合优化求解,从而无法保证当前得到的优化方案的优化性,不能进一步提升并行训练的速度。此外,由于动态规划算法或者递归算法的计算复杂度较高,采用该算法进行数据划分或者网络层划分优化将消耗更多时间。
本申请实施例中,可以通过交叉搜索算法联合求解最优数据划分以及网络层划分,利用多优化算法交替对数据划分以及网络层划分子问题进行求解,从而得到多子问题的联合问题的最优解即最终得到优化的基于微批量数据microbatch的流水线并行训练方案。本申请实施例提供的方法,可应用于神经网络模型的并行训练中,通过求解数据划分与网络层划分的联合最优解,对模型并行训练架构进行优化。
下面结合前述的系统架构,对本申请提供的方法流程进行介绍。
参阅图3,本申请提供一种数据处理方法的流程示意图,如下所述。
301、基于第一数据分区数,对神经网络模型中多个网络层进行划分,得到神经网络模型的网络层划分结果;
本申请实施例中,可以基于给定的数据分区数,首先对神经网络模型中的多个网络层进行划分,确定当前数据划分情况下的最优网络层划分结果。
其中,第一数据分区数用于指示神经网络模型的数据划分情况,该第一数据分区数可以设置为1、2或3等整数。当第一数据分区数为2时,则表示在基于microbatch数据并行的流水线并行模式中,一个minibatch将被划分为2个microbatch进行数据并行训练。
可选地,基于给定的第一数据分区数,可以采用多维度改进二分法对神经网络模型中多个网络层进行划分,得到神经网络模型的网络层划分结果,该网络层划分结果用于指示神经网络中多个网络层进行划分,后续可以根据网络层划分结果将不同网络层放置于不同计算设备上进行并行训练。
302、基于网络层划分结果,确定第二数据分区数;
在得到网络层划分结果之后,可以基于当前得到的网络层划分结果,求解当前最优的数据划分结果即第二数据分区数,该第二数据分区数为使得神经网络模型的训练时长为最小值时对应的数据分区数。
通常,在流水线并行模式中,数据划分以及网络层划分将直接影响分布式并行中计算时间与通信时间的可调度粒度,可调度粒度较大时,可能会导致GPU的资源利用不足,存在资源浪费的情况,而较小的可调度粒度更利于并行处理,使得多个小任务可以同时执行,从而提高GPU的资源利用率,但是,与此同时,过小的可调用粒度会增加通信时间以及资源占用。因此,在给定网络层划分结果的基础上,确定最优的数据划分结果,不仅可以提高资源利用率,还可以降低神经网络模型的并行训练时间。
具体地,可以采用枚举的方式,计算出不同数据分区数对应的神经网络模型的并行训练时长,筛选出训练时长最小时对应的数据分区数,将该数据分区数作为第二数据分区数。其中,神经网络模型的并行训练时长同时考虑了神经网络模型中计算时长以及通信时长,计算神经网络模型的并行训练时长的时间损失函数可以为:
其中,K表示网络层数,N表示计算设备数,表示第i层网络正向传播的计算时间,/>表示第αi层网络正向传播的通信时间,Ji P表示第i层网络反向传播的计算时间,表示第αi+1层网络反向传播的通信时间,p表示数据分区数,<α1,α2,...,αN>表示每个计算设备中所划分的连续网络层的最大索引。
在当前网络层划分结果的基础上,可以获取神经网络模型中各个网络层的正向传播的计算时间与反向传播的计算时间以及网络层之间的正向传播的通信时间与反向传播的通信时间,结合时间损失函数,计算出不同数据分区数对应的神经网络模型的并行训练时长,从而确定第二数据分区数。
303、比较第一训练时长与第二训练时长的大小,得到比较结果;
在采用交叉搜索算法求解网络层划分以及数据划分的优化解之后,得到了第一数据分区数下的网络划分结果以及该网络划分结果下的第二数据分区数。可以比较第一数据分区数下网络层划分结果对应的第一训练时长与第二数据分区数下网络层划分结果对应的第二训练时长的大小,进而可以判断是否存在更好的数据划分方案以及网络层划分方案。
304、根据比较结果,确定神经网络模型的目标数据分区数以及目标网络层划分结果。
在得到比较结果之后,可以根据第一训练时长与第二训练时长的比较结果,判断是否存在更好的数据划分方案以及网络层划分方案,从而确定出神经网络模型的目标数据分区数以及目标网络层划分结果。
由于第二训练时长为基于当前最优的网络层划分结果去搜寻最优数据分区数,因此第二训练时长将不大于第一训练时长。
若比较结果为第一训练时长等于第二训练时长,则表明此时的数据划分以及网络层划分为联合最优解,可以将第二数据分区数作为神经网络模型的目标数据分区数,并可以将当前的网络层划分结果作为目标网络层划分结果;
若比较结果为第一训练时长大于第二训练时长,则表明存在更好的数据划分方案和网络层划分方案,可以降低神经网络模型的训练时长。可以通过交叉搜索算法调用网络层划分算法以及数据划分算法,不断迭代整体最优解。
具体地,可以通过更新第一数据分区数,确定出更新后的第一数据分区数对应的更新后的网络层划分结果,并基于该更新后的网络层划分结果,重新确定使得神经网络模型的训练时长最小对应的第二数据分区数,再比较此时的第一训练时长与第二训练时长的大小,此时的第一训练时长为根据更新后的第一数据分区数与更新后的网络层划分结果计算得到,此时的第二训练时长为根据此时的第二数据分区数与更新后的网络层划分结果计算得到。直至得到的第二训练时长等于第一训练时长,停止更新第一数据分区数。
本申请实施例中,可以通过交叉搜索算法调用数据划分算法与网络层划分算法分别求解数据划分方案与网络层划分方案。给定数据分区数,求解当前数据划分情况下的最优网络划分结果,随后,基于得到的当前最优网络划分结果求解出最优数据分区数,通过不断迭代最终求解出数据划分与网络层划分的联合最优解,实现了对分布式并行结构中的数据划分与网络层划分的同时优化,从而降低神经网络模型分布式并行训练时长。
下面对本申请提供的方法中的网络层划分进行更详细的介绍。
参阅图4,本申请提供另一种数据处理方法的流程示意图,如下所述。
401、获取神经网络模型中多个网络层的计算时长以及网络层之间的通信时长;
通常,对于基于microbatch数据并行的流水线并行架构而言,网络层的计算时长以及网络层之间的通信时长与数据量不一定呈线性关系,本申请实施例中,可以同时考虑网络层的计算时长以及网络层之间的通信时长,在给定数据分区数的基础上,进行神经网络模型的网络层划分。
402、根据多个网络层的计算时长以及网络层之间的通信时长,计算得到最大时长以及最小时长;
在得到多个网络层的计算时长以及网络层之间的通信时长之后,可以确定出最大时长以及最小时长。其中,最大时长可以为神经网络模型中全部计算时长以及全部通信时长之和,还可以设置为大于全部计算时长与全部通信时长之和的任一值,具体此处不做限定。最小时长可以为max(max(HP,JP),min(HM,JM)),HP为网络层正向传播的计算时间,JP为网络层反向传播的计算时间,HM为网络层正向传播的通信时间,JM为网络层反向传播的通信时间。
示例性地,预设计算设备数为3,数据分区数为4即一个minibatch被划分为4个microbatch,如图5(a)可知,该神经网络模型的正向传播计算时间之和为36,正向传播的通信时间为35,反向传播的计算时间为41,反向传播的通信时间为30,故可以设置最大时长为36+35+41+30=142,此外,例如,最大时长还可以为大于142的任一值;其中,正向传播与反向传播中最大的计算时长为12,正向传播与反向传播中最小的通信时长为2,故可以设置最小时长为12。
403、根据最大时长、最小时长以及预设权重向量集合,采用多维度改进二分法确定该预设权重向量集合对应的网络层划分结果。
对神经网络模型中多个网络层划分问题可以看作装箱问题,即以最小的箱子数将神经网络模型中多个网络层全部装入箱内,此处的箱子数即可以表示计算设备数(GPU数量)。
具体地,可以计算最大时长与最小时长的平均值,将该平均值作为装箱最大容量即每个箱子的最大容量;随后,可以根据预设权重向量集合,计算出将神经网络模型中的多个网络层全部装入箱内需要的箱子数;若预设权重向量集合中存在一个权重向量满足预设条件时,得到箱子数小于或者等于预设计算设备数,则说明当前装箱的最大容量足够大,可以更新最大时长,将平均值作为最大时长;否则,说明当前装箱的最大容量不足,可以更新最小时长,将平均值作为最小时长;直至最大时长与最小时长的差值小于第二预设值,停止更新;根据当前最大时长与最小时长对应的平均值,此时该平均值为最优装箱容量,可以根据该平均值,对神经网络模型中多个网络层进行划分,得到网络层划分结果。
其中,预设权重向量集合可以表示为w=(w0,w1,...,wn),其中wi可以表示为wi=<i/n,1-i/n>=<wi(1),wi(2)>。预设条件可以表示为:
其中,wi(1)·Dmean可以表示为正向传播容量,wi(2)·Dmean可以表示为反向传播容量。该预设条件可以用于指示根据预设条件中的正向传播容量和反向传播容量对网络层进行划分,将正向传播中不大于正向传播容量且在反向传播中不大于反向传播容量的多个连续网络层分配至同一计算设备中,从而计算得到所需的计算设备数量(即箱子数)。
示例性地,图5(a)至图5(g)为采用多维度改进二分法进行网络层划分的流程示意图,首先计算得到最大时长Dmax为142以及最小时长Dmin为12,故可以计算得到最大时长与最小时长的平均值为77,并将该平均值77作为此时的装箱最大容量,设定预设权重向量集合中的数量为11,那么wi可以表示为wi=<i/10,1-i/10>,i=1,2,3...,10,对wi逐个进行验证,当i=5时,分配给正向和反向的容量分别为38.5,根据正向传播与反向传播的计算耗时可知,最少可采用两个箱子即可完成装箱任务,得到的箱子数为2。此时的箱子数小于预设计算设备数3,且最大时长与最小时长的差值远远大于第二预设值,故可以更新最大时长,并计算此时的Dmean,Dmean=(77+12)/2=44.5,因此此时的Dmax=Dmean,Dmax为44.5。
接下来不断重复前述步骤,不断地对Dmax或Dmin进行更新,直到满足Dmax≤Dmin+ε,停止更新,根据此时的Dmax和Dmin,计算出此时的平均值即此时的最优装箱容量,随后根据该最优装箱容量对网络层进行划分,得到网络层划分结果。
从图5(g)可知,最终的网络层划分结果4,3,2,即对于9层网络层的神经网络模型,可以将第一层至第四层网络层放置计算设备1上进行训练,将第五层至第七层网络层放置计算设备2上进行训练,第八层与第九层网络层放置计算设备3上进行训练,并且,计算设备2的输入数据为计算设备1中最后一层网络层的输出数据,计算设备3的输入数据为计算设备2中最后一层网络层的输出数据。图6为网络层训练的示意图,对于网络层划分后不同网络层与计算设备之间的对应关系可见图7,图7为网络层划分后神经网络模型的前向传播情况。
此外,根据该网络划分结果以及时间消耗函数,计算该神经网络模型的训练时长可以为36+41+5+5+(4-1)×(14+17)=180,相较于按照网络层数均匀划分得到的神经网络模型的训练时长为36+41+12+10+(4-1)×(19+24)=228,如图8所示,降低了神经网络模型并行训练时长。
本申请实施例中,可以采用多维度改进二分法求解给定数据分区数的最优网络层划分,降低了计算复杂度,从而可以提高优化效率;并且可以通过调整权重向量数量来控制得到的优化解与理论优化解之间的误差,提高了优化结果的可控性。
基于前述本申请提供的数据处理方法,示例性地,在GPT1网络以及VGG16网络并行训练场景中,采用本申请提供的数据处理方法以及已有的GPipe技术进行对比分析。
对比结果如图9和图10所示,其中,CSIMD为本申请实施例提供的数据处理方法,GPipe-R1表示采用GPipe技术并对网络层进行随机划分,1表示数据分区数,GPipe-E-1表示采用GPipe技术并对网络层进行均匀划分,1表示数据分区数。由图7和图8可知,采用本申请实施例提供的数据处理方法对GPT1网络以及VGG16网络进行并行训练,可以大大降低网络并行训练时长。
前述对本申请提供的方法流程进行了介绍,下面基于前述的方法流程,对本申请提供的装置进行介绍。
参阅图11,本申请提供的一种数据处理装置的结构示意图,包括:
划分模块1101,用于基于第一数据分区数,对神经网络模型中多个网络层进行划分,得到神经网络模型的网络层划分结果,第一数据分区数用于指示神经网络模型的数据划分情况,网络层划分结果对应的神经网络模型的训练时长小于第一预设值;
确定模块1102,用于基于网络层划分结果,确定第二数据分区数,第二数据分区数对应的神经网络模型的训练时长小于该第一预设值;
比较模块1103,用于比较第一训练时长与第二训练时长的大小,得到比较结果,第一训练时长为根据第一数据分区数以及网络层划分结果计算得到,第二训练时长为根据第二数据分区数以及网络层划分结果计算得到;
该确定模块1102,还用于根据比较结果,确定神经网络模型的目标数据分区数以及目标网络层划分结果。
在一种可能的实施方式中,前述的比较模块1103,具体用于:若第一训练时长等于第二训练时长,则将第二数据分区数作为目标数据分区数并将网络层划分结果作为目标网络层划分结果;若第一训练时长大于第二训练时长,则更新第一数据分区数,直至第二训练时长大于第一训练时长,停止更新。
在一种可能的实施方式中,前述的划分模块1101,具体用于:采用多维度改进二分法对神经网络模型中的多个网络层进行划分,得到神经网络模型的网络层划分结果。
在一种可能的实施方式中,前述的划分模块1101,具体用于:获取神经网络模型中多个网络层的计算时长以及网络层之间的通信时长;根据计算时长以及通信时长,确定最大时长与最小时长;根据最大时长、所最小时长以及预设权重向量集合,采用多维度改进二分法确定预设权重向量集合对应的网络层划分结果。
在一种可能的实施方式中,前述的划分模块1101,具体用于:计算最大时长与最小时长的平均值;根据平均值以及预设权重向量集合,更新最大时长或最小时长,直至最大时长与最小时长的差值小于第二预设值,停止更新;根据平均值,对神经网络模型中多个网络层进行划分,得到网络层划分结果。
在一种可能的实施方式中,前述的划分模块1101,具体用于:判断预设权重向量集合中是否存在权重向量满足预设条件时的计算设备数量小于预设计算设备数量,预设条件用于指示神经网络模型根据平均值进行网络层划分;若存在,则更新最大时长;若不存在,则更新最小时长。
参阅图12,本申请提供的另一种数据处理装置的结构示意图,如下所述。
该数据处理装置可以包括处理器1201和存储器1202。该处理器1201和存储器1202通过线路互联。其中,存储器1202中存储有程序指令和数据。
存储器1202中存储了前述图3和图4中的步骤对应的程序指令以及数据。
处理器1201用于执行前述图3和图4所示的数据处理装置执行的方法步骤。
可选地,该数据处理装置还可以包括收发器1203,用于接收或者发送数据。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序,当其在计算机上运行时,使得计算机执行如前述图3和图4所示实施例描述的方法中的步骤。
可选地,前述的图12中所示的数据装置为芯片。
本申请实施例还提供了一种数据处理装置,该数据处理装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图3和图4实施例所示的数据处理装置执行的方法步骤。
本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器1201,或者处理器1201的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中数据处理装置执行的动作。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3或图4所示实施例描述的方法步骤。
本申请实施例提供的数据处理装置可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图3或图4所示实施例描述的方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体地,前述的处理单元或者处理器可以是中央处理器(central processingunit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(graphicsprocessing unit,GPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
示例性地,请参阅图13,图13为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 1300,NPU 1300作为协处理器挂载到主CPU(HostCPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1303,通过控制器1304控制运算电路1303提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1303内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路1303是二维脉动阵列。运算电路1303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1302中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1301中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)13308中。
统一存储器1306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)1305,DMAC被搬运到权重存储器1302中。输入数据也通过DMAC被搬运到统一存储器1306中。
总线接口单元(bus interface unit,BIU)1310,用于AXI总线与DMAC和取指存储器(instruction fetch buffer,IFB)1309的交互。
总线接口单元1310(bus interface unit,BIU),用于取指存储器1309从外部存储器获取指令,还用于存储单元访问控制器1305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1306或将权重数据搬运到权重存储器1302中或将输入数据数据搬运到输入存储器1301中。
向量计算单元1307包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(batch normalization),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1307能将经处理的输出的向量存储到统一存储器1306。例如,向量计算单元1307可以将线性函数和/或非线性函数应用到运算电路1303的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1307生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1303的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1304连接的取指存储器(instruction fetch buffer)1309,用于存储控制器1304使用的指令;
统一存储器1306,输入存储器1301,权重存储器1302以及取指存储器1309均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个集成电路用于控制上述图3或图4的方法的程序。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
基于第一数据分区数,对神经网络模型中多个网络层进行划分,得到所述神经网络模型的网络层划分结果,所述第一数据分区数用于指示所述神经网络模型的数据划分情况,所述网络层划分结果对应的所述神经网络模型的训练时长小于第一预设值;
基于所述网络层划分结果,确定第二数据分区数,所述第二数据分区数对应的所述神经网络模型的训练时长小于所述第一预设值;
比较第一训练时长与第二训练时长的大小,得到比较结果,所述第一训练时长为根据所述第一数据分区数以及所述网络层划分结果计算得到,所述第二训练时长为根据所述第二数据分区数以及所述网络层划分结果计算得到;
根据所述比较结果,确定所述神经网络模型的目标数据分区数以及目标网络层划分结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述比较结果,确定所述神经网络模型的目标数据分区数以及目标网络层划分结果,包括:
若所述第一训练时长等于所述第二训练时长,则将所述第二数据分区数作为所述目标数据分区数并将所述网络层划分结果作为目标网络层划分结果;
若所述第一训练时长大于所述第二训练时长,则更新所述第一数据分区数,直至所述第二训练时长大于所述第一训练时长,停止更新。
3.根据权利要求1或2中任一项所述的方法,其特征在于,所述对神经网络模型中的多个网络层进行划分,得到所述神经网络模型的网络层划分结果,包括:
采用多维度改进二分法对所述神经网络模型中的多个网络层进行划分,得到所述神经网络模型的网络层划分结果。
4.根据权利要求3所述的方法,其特征在于,所述采用多维度改进二分法对所述神经网络模型中的多个网络层进行划分,得到所述神经网络模型的网络层划分结果,包括:
获取所述神经网络模型中多个网络层的计算时长以及所述网络层之间的通信时长;
根据所述计算时长以及所述通信时长,确定最大时长与最小时长;
根据所述最大时长、所述最小时长以及预设权重向量集合,采用所述多维度改进二分法确定所述预设权重向量集合对应的所述网络层划分结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述最大时长、所述最小时长以及预设权重向量集合,采用所述多维度改进二分法确定所述预设权重向量集合对应的所述网络层划分结果,包括:
计算所述最大时长与所述最小时长的平均值;
根据所述平均值以及所述预设权重向量集合,更新所述最大时长或所述最小时长,直至所述最大时长与所述最小时长的差值小于第二预设值,停止更新;
根据所述平均值,对所述神经网络模型中多个网络层进行划分,得到所述网络层划分结果。
6.根据权利要求5所述的方法,其特征在于,所述根据所述平均值以及所述预设权重向量集合,更新所述最大时长或所述最小时长,包括:
判断所述预设权重向量集合中是否存在权重向量满足预设条件时的计算设备数量小于预设计算设备数量,所述预设条件用于指示所述神经网络模型根据所述平均值进行网络层划分;
若存在,则更新所述最大时长;
若不存在,则更新所述最小时长。
7.一种数据处理装置,其特征在于,包括:
划分模块,用于基于第一数据分区数,对神经网络模型中多个网络层进行划分,得到所述神经网络模型的网络层划分结果,所述第一数据分区数用于指示所述神经网络模型的数据划分情况,所述网络层划分结果对应的所述神经网络模型的训练时长小于第一预设值;
确定模块,用于基于所述网络层划分结果,确定第二数据分区数,所述第二数据分区数对应的所述神经网络模型的训练时长小于所述第一预设值;
比较模块,用于比较第一训练时长与第二训练时长的大小,得到比较结果,所述第一训练时长为根据所述第一数据分区数以及所述网络层划分结果计算得到,所述第二训练时长为根据所述第二数据分区数以及所述网络层划分结果计算得到;
所述确定模块,还用于根据所述比较结果,确定所述神经网络模型的目标数据分区数以及目标网络层划分结果。
8.根据权利要求7所述的装置,其特征在于,所述比较模块,具体用于:
若所述第一训练时长等于所述第二训练时长,则将所述第二数据分区数作为所述目标数据分区数并将所述网络层划分结果作为目标网络层划分结果;
若所述第一训练时长大于所述第二训练时长,则更新所述第一数据分区数,直至所述第二训练时长大于所述第一训练时长,停止更新。
9.根据权利要求7或8中任一项所述的装置,其特征在于,所述划分模块,具体用于:
采用多维度改进二分法对所述神经网络模型中的多个网络层进行划分,得到所述神经网络模型的网络层划分结果。
10.根据权利要求9所述的装置,其特征在于,所述划分模块,具体用于:
获取所述神经网络模型中多个网络层的计算时长以及所述网络层之间的通信时长;
根据所述计算时长以及所述通信时长,确定最大时长与最小时长;
根据所述最大时长、所述最小时长以及预设权重向量集合,采用所述多维度改进二分法确定所述预设权重向量集合对应的所述网络层划分结果。
11.根据权利要求10所述的装置,其特征在于,所述划分模块,具体用于:
计算所述最大时长与所述最小时长的平均值;
根据所述平均值以及所述预设权重向量集合,更新所述最大时长或所述最小时长,直至所述最大时长与所述最小时长的差值小于第二预设值,停止更新;
根据所述平均值,对所述神经网络模型中多个网络层进行划分,得到所述网络层划分结果。
12.根据权利要求11所述的装置,其特征在于,所述划分模块,具体用于:
判断所述预设权重向量集合中是否存在权重向量满足预设条件时的计算设备数量小于预设计算设备数量,所述预设条件用于指示所述神经网络模型根据所述平均值进行网络层划分;
若存在,则更新所述最大时长;
若不存在,则更新所述最小时长。
13.一种数据处理装置,其特征在于,包括:
处理器以及存储器,所述处理器与所述存储器耦合;
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得执行如权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至6中任意一项所述的方法。
15.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1至6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410236114.XA CN118153708A (zh) | 2024-02-29 | 2024-02-29 | 一种数据处理方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410236114.XA CN118153708A (zh) | 2024-02-29 | 2024-02-29 | 一种数据处理方法以及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118153708A true CN118153708A (zh) | 2024-06-07 |
Family
ID=91289578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410236114.XA Pending CN118153708A (zh) | 2024-02-29 | 2024-02-29 | 一种数据处理方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118153708A (zh) |
-
2024
- 2024-02-29 CN CN202410236114.XA patent/CN118153708A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107169560B (zh) | 一种自适应可重构的深度卷积神经网络计算方法和装置 | |
CN107862374B (zh) | 基于流水线的神经网络处理系统和处理方法 | |
CN107844826B (zh) | 神经网络处理单元及包含该处理单元的处理系统 | |
CN107578098B (zh) | 基于脉动阵列的神经网络处理器 | |
US10691996B2 (en) | Hardware accelerator for compressed LSTM | |
TWI759361B (zh) | 用於稀疏神經網路加速的架構、方法、電腦可讀取媒體和裝備 | |
Guo et al. | Software-hardware codesign for efficient neural network acceleration | |
CN115456161A (zh) | 一种数据处理方法和数据处理系统 | |
CN110175671A (zh) | 神经网络的构建方法、图像处理方法及装置 | |
JP2020518042A (ja) | 処理装置と処理方法 | |
CN108665059A (zh) | 基于现场可编程门阵列的卷积神经网络加速系统 | |
CN109284823A (zh) | 一种运算装置及相关产品 | |
WO2022068623A1 (zh) | 一种模型训练方法及相关设备 | |
CN109472356A (zh) | 一种可重构神经网络算法的加速装置及方法 | |
CN111325321A (zh) | 基于多神经网络融合的类脑计算系统及指令集的执行方法 | |
CN111783937A (zh) | 一种神经网络构建方法以及系统 | |
CN110163359A (zh) | 一种计算装置及方法 | |
CN107203808A (zh) | 一种二值卷积装置及相应的二值卷积神经网络处理器 | |
CN113449859A (zh) | 一种数据处理方法及其装置 | |
CN109359730A (zh) | 面向固定输出范式Winograd卷积的神经网络处理器 | |
CN111931901A (zh) | 一种神经网络构建方法以及装置 | |
CN111738488A (zh) | 一种任务调度方法及其装置 | |
CN108320018A (zh) | 一种人工神经网络运算的装置及方法 | |
KR20190089685A (ko) | 데이터를 처리하는 방법 및 장치 | |
CN111652349A (zh) | 一种神经网络的处理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |