一种数据处理方法及相关设备技术

技术编号:38678391 阅读:7 留言:0更新日期:2023-09-02 22:52
本申请涉及人工智能领域,公开了一种数据处理方法,方法应用于目标计算节点,其中,目标计算节点所属的计算节点集群可以并行训练超网,超网的训练样本包括第一批batch以及第二batch,且在对超网进行训练的过程中,根据第一batch进行的前向传播过程被配置为在根据第二batch进行的前馈过程之后进行,方法包括:目标计算节点在已完成根据第二输入数据对第二子模型的参数更新的情况下,通过第一子模型处理第一输入数据。本申请可以提升最终训练得到的超网的模型精度以及训练结果的确定性。超网的模型精度以及训练结果的确定性。超网的模型精度以及训练结果的确定性。

【技术实现步骤摘要】
一种数据处理方法及相关设备


[0001]本申请涉及人工智能领域,尤其涉及一种数据处理方法及相关设备。

技术介绍

[0002]人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
[0003]近年来,神经网络快速发展,在一些领域深度神经网络已经优于人类。但在实际应用中,由于应用场景、数据集、部署设备及指标要求等不同,往往需要经验丰富的专家花费大量的时间和精力才能构建出满足应用环境的神经网络。为了提高建立神经网络的效率,业界提出利用神经网络结构搜索(neural architecture search,NAS)来设计神经网络,以得到满足应用环境的神经网络。
[0004]神经网络结构搜索能够应用特定数据集自动搜索满足特定约束条件的达成特定目标的神经网络,即使用者不需要场景经验和深度学习的知识技能,就可以完成采用深度神经网络建模的过程。
[0005]为了减少过去NAS所耗费的大量时间,最近的NAS算法透过将搜索空间当中的所有深度神经网络(deep neural network,DNN)结构结合成为一个覆盖所有DNN层的网络,而这个巨大且错综复杂的网路又被称作为超网(supernet),只需要训练一个神经网络(即超网),便可以借此评估整个搜索空间当中的任意一个DNN结构。
[0006]超网训练是指将超网中所有候选单元都进行参数化训练的过程,本质上超网是一个(复杂度更高的)DNN,因此训练的迭代方式和单个DNN的训练方式相似,都是针对某个数据集进行拟合,训练过程由对数据集的一组数据(即数据批)进行的前向传播和反向传播的迭代构成。在现有的对超网进行并行训练的方式中,训练得到的模型的精度较差,因此,亟需一种提高超网精度的方法。

技术实现思路

[0007]本申请实施例提供的数据处理方法可以提升最终训练得到的超网的模型精度以及训练结果的确定性。
[0008]第一方面,本申请提供了一种数据处理方法,所述方法应用于目标计算节点,其中,所述目标计算节点属于计算节点集群,所述计算节点集群包括所述目标计算节点在内的多个计算节点,所述多个计算节点用于并行训练超网,每个所述计算节点用于训练所述超网的一部分模型;所述超网的训练样本包括第一批batch以及第二batch,且在对所述超网进行训练的过程中,根据所述第一batch进行的前向传播过程被配置为在根据所述第二batch进行的前馈过程之后进行;
[0009]其中,这里所谓的并行是相对于串行训练的,在串行训练中,计算节点集群需要完成完成当前批次的训练样本的前向传播过程和反向传播过程在进行下一批次的训练。并行训练则不存在上述依赖关系,在同一时刻,计算节点集群中的不同计算节点可以同时进行着不同批次的训练样本的训练过程。
[0010]在一种可能的实现中,目标计算节点可以为计算节点集群中的任意一个计算节点,该目标计算节点可以为进行超网的前向传播过程或者反向传播过程的执行单元,例如GPU,该目标计算节点在执行超网训练时的具体决策可以被其他控制单元来控制,例如可以通过CPU来控制。
[0011]所述方法包括:获取第一输入数据;所述第一输入数据为所述计算节点集群根据所述第一batch对所述超网进行训练的前向传播过程中所述目标计算节点的输入;基于满足目标条件,通过第一子模型处理所述第一输入数据,以得到第一输出数据;所述目标条件包括:所述目标计算节点已完成根据第二输入数据对第二子模型的参数更新,所述第二输入数据为所述计算节点集群根据所述第二batch对所述超网进行训练的反向传播过程中所述目标计算节点的输入,所述第一子模型和所述第二子模型为从搜索空间中对所述超网的同一部分模型进行模型搜索得到的结果,所述搜索空间包括多个类型的网络层,所述第一子模型和所述第二子模型均包括同一类型的目标网络层,且所述目标网络层在所述第一子模型和所述第二子模型的位置相同。
[0012]在一种可能的实现中,目标计算节点的调度单元(例如CPU)可以基于上述因果依赖关系控制目标计算节点中的执行单元(例如GPU)的模型训练过程(例如何时进行某个输入数据的前向传播过程或者是反向传播过程)。例如调度单元可以在确定目标计算节点已经或者是将会接收到来自于上一个计算节点进行完前馈过程的输出数据后,可以判断当前要执行的前馈过程中,子网的结构和之前的子网的结构存不存在因果依赖关系,如果有的话,那么可以判断之前的存在因果依赖关系的网络层是否已经完成了参数更新,也就是否已经完成了反向传播过程,如果已经完成,那么就可以进行当前的前向传播过程,也就是目标计算节点可以基于之前计算节点的输出数据,对该输入数据通过自身负责的子模型进行处理,以得到处理结果,该处理结果可以被传递至相邻的下一个计算节点或者是在目标计算节点为最后一个计算节点时,直接进行反向传播过程。
[0013]通过上述方式,调度器可以控制计算节点在进行超网训练时,严格满足上述因果依赖关系,进而提升最终训练得到的超网的模型精度以及训练结果的确定性。
[0014]在现有的实现中,并未优化针对超网参数的存储管理,不得不将超网全部放在训练设备(例,GPU)内存中,使得训练设备内存紧张。当超网参数占据了绝大部分的训练设备内存时,训练设备中留给计算的剩余空间将变得十分有限,直接导致训练可以支持的批尺寸(batch size)变小(批尺寸越大,计算所需的缓存空间越大),间接导致训练设备的有效使用率低(批尺寸越大,训练设备的多核并行度越高,训练设备的整体有效使用率越高),最终导致现有技术方案在超网训练时训练效率极低。
[0015]为了解决上述问题,本申请实施例可以通过对调度的精准预测,将超网参数存储于CPU内存中,在子网i即将执行前,预测到子网i即将被调度,提前预取子网i的参数到训练设备的存储中。
[0016]在一种可能的实现中,可以在所述通过第一子模型处理所述第一输入数据之前,
将第一内存中的所述第一子模型存储至第二内存;所述第一内存不属于所述目标计算节点,所述第二内存属于所述目标计算节点;并已完成根据所述第一输入数据对所述第一子模型的参数更新之后,将更新后的所述第一子模型从所述第二内存释放至所述第一内存。
[0017]在一种可能的实现中,所述目标计算节点为图形处理器GPU、张量处理器TPU或神经网路处理器NPU,所述第一内存为中央处理器CPU中的内存。
[0018]在一种可能的实现中,所述第一子模型中的目标网络层为所述目标计算节点在完成根据第二输入数据对第二子模型中的目标网络层进行参数更新后得到的。也就是说,对第二子模型进行更新后可以得到第一子模型。
[0019]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法应用于目标计算节点,其中,所述目标计算节点属于计算节点集群,所述计算节点集群包括所述目标计算节点在内的多个计算节点,所述多个计算节点用于并行训练超网,每个所述计算节点用于训练所述超网的一部分模型;所述超网的训练样本包括第一批batch以及第二batch,且在对所述超网进行训练的过程中,根据所述第一batch进行的前向传播过程被配置为在根据所述第二batch进行的前馈过程之后进行;所述方法包括:获取第一输入数据;所述第一输入数据为所述计算节点集群根据所述第一batch对所述超网进行训练的前向传播过程中所述目标计算节点的输入;基于满足目标条件,通过第一子模型处理所述第一输入数据,以得到第一输出数据;所述目标条件包括:所述目标计算节点已完成根据第二输入数据对第二子模型的参数更新,所述第二输入数据为所述计算节点集群根据所述第二batch对所述超网进行训练的反向传播过程中所述目标计算节点的输入,所述第一子模型和所述第二子模型为从搜索空间中对所述超网的同一部分模型进行模型搜索得到的结果,所述搜索空间包括多个类型的网络层,所述第一子模型和所述第二子模型均包括同一类型的目标网络层,且所述目标网络层在所述第一子模型和所述第二子模型的位置相同。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述通过第一子模型处理所述第一输入数据之前,将第一内存中的所述第一子模型存储至第二内存;所述第一内存不属于所述目标计算节点,所述第二内存属于所述目标计算节点;在已完成根据所述第一输入数据对所述第一子模型的参数更新之后,将更新后的所述第一子模型从所述第二内存释放至所述第一内存。3.根据权利要求2所述的方法,其特征在于,所述目标计算节点为图形处理器GPU、张量处理器TPU或神经网路处理器NPU,所述第一内存为中央处理器CPU中的内存。4.根据权利要求1至3任一所述的方法,其特征在于,所述第一子模型中的目标网络层为所述目标计算节点在完成根据第二输入数据对所述第二子模型中的目标网络层进行参数更新后得到的。5.根据权利要求1至4任一所述的方法,其特征在于,所述目标条件还包括:所述目标计算节点不存在针对于所述超网的子模型的待执行的反向传播任务,所述子模型为从搜索空间中对所述同一部分模型进行模型搜索得到的结果。6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:获取第三输入数据;所述第三输入数据为所述计算节点集群根据所述第一batch对所述超网进行训练的反向传播过程中所述目标计算节点的输入;根据所述第三输入数据,对所述第一子模型进行参数更新。7.根据权利要求6所述的方法,其特征在于,所述根据所述第三输入数据,对所述第一子模型进行更新,包括:在所述目标计算节点存在至少一个针对于所述超网的子模型的待执行的前向传播任务的情况下,在执行所述待执行的前向传播任务之前,根据所述第三输入数据,对所述第一子模型进行更新。
8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:在所述获取第一输入数据之后,所述通过第一子模型处理所述第一输入数据之前,基于所述目标计算节点未完成根据第二输入数据对第二子模型的参数更新,将所述第一输入数据存储至等待队列;所述通过第一子模型处理所述第一输入数据,包括:从所述等待队列中获取所述第一输入数据,并通过第一子模型处理所述第一输入数据。9.根据权利要求1至8任一所述的方法,其特征在于,所述第一batch以及所述第二batch为图像数据、文本数据、音频数据、视频数据中的至少一种。10.一种数据处理装置,其特征在于,所述装置应用于目标计算节点,其中,所述目标计算节点属于计算节点集群,所述计算节点集群包括所述目标计算节点在内的多个计算节点,所述多个计算节点用于并行训练超网,每个所述计算节点用于训练所述超网的一部分模型;所述超网的训练样本包括第一批batch以及第二batch...

【专利技术属性】
技术研发人员:赵世雄陈旭升崔鹤鸣王森陈力张弓
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1