CN114925829A - 一种神经网络训练方法、装置、电子设备及存储介质 - Google Patents
一种神经网络训练方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114925829A CN114925829A CN202210838683.2A CN202210838683A CN114925829A CN 114925829 A CN114925829 A CN 114925829A CN 202210838683 A CN202210838683 A CN 202210838683A CN 114925829 A CN114925829 A CN 114925829A
- Authority
- CN
- China
- Prior art keywords
- neural network
- training
- network model
- model parameters
- ratio data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Feedback Control In General (AREA)
Abstract
本发明提供一种神经网络训练方法、装置、电子设备及存储介质,涉及神经网络领域,方法包括:获取神经网络模型参数,并利用神经网络模型参数生成本轮训练对应的梯度值及一阶动量;利用梯度值与一阶动量之间的差值生成本轮训练对应的二阶动量;利用一阶动量及二阶动量生成偏置校正数据,并利用偏置校正数据生成比值数据;利用比值数据对神经网络模型参数进行更新;可将LAMB优化方法的二阶动量更新策略调整为基于梯度值与一阶动量之间的差值生成二阶动量,能够额外考虑该差值间的滑动平均,可有效避免因二阶动量选取不当导致学习率小的问题,进而可提升神经网络模型的训练效率。
Description
技术领域
本发明涉及神经网络领域,特别涉及一种神经网络训练方法、装置、电子设备及存储介质。
背景技术
神经网络技术在计算机视觉、自然语言处理等领域得到了广泛应用,而神经网络模型强大的数据拟合能力是该项技术在多领域取得成功的重要因素。为实现数据拟合,神经网络模型通常设置有大量模型参数,且需使用巨量训练数据进行模型训练,而这导致该模型通常需要大量时间进行训练,不利于该项技术的落地应用。因此,如何优化神经网络模型的训练流程,使其能够快速收敛,达到应用要求,是神经网络技术领域中的重要研究内容。
相关技术中,通常可采用模型优化方法对模型参数进行更新,以加速神经网络模型的收敛速度。例如LAMB优化方法(Layer-wise Adaptive Moments optimizer forBatching training,用于批量训练的分层自适应矩优化器)是一种分层自适应学习率优化方法。然而,该方法也具有一些缺点,例如容易出现学习率步长选择不当,导致收敛速度较慢的问题。
因此,如何减少神经网络模型的训练时间并提升训练效率,是本领域技术人员所需解决的技术问题。
发明内容
本发明的目的是提供一种神经网络训练方法、装置、电子设备及存储介质,可对LAMB优化方法的二阶动量更新策略进行调整,以避免因二阶动量选取不当导致学习率小的问题,进而可提升神经网络模型的训练效率。
为解决上述技术问题,本发明提供一种神经网络训练方法,包括:
获取神经网络模型参数,并利用所述神经网络模型参数生成本轮训练对应的梯度值及一阶动量;
利用所述梯度值与所述一阶动量之间的差值生成本轮训练对应的二阶动量;
利用所述一阶动量及所述二阶动量生成偏置校正数据,并利用所述偏置校正数据生成比值数据;
利用所述比值数据对所述神经网络模型参数进行更新。
可选地,所述利用所述梯度值与所述一阶动量之间的差值生成本轮训练对应的二阶动量,包括:
利用所述梯度值与所述一阶动量之间的差值以如下方式生成所述二阶动量:
其中,和分别表示第轮训练和第轮训练对应的二阶动量,;表示第轮训练对应的梯度值,,,表示梯度计算,表示第轮训练对应的神经网络模型,表示第轮训练对应的神经网络模型参数;表示第轮训练对应的一阶动量,,,表示第一动量参数;表示第二动量参数。
可选地,所述利用所述一阶动量及所述二阶动量生成偏置校正数据,并利用所述偏置校正数据生成比值数据,包括:
相应的,所述利用所述比值数据对所述神经网络模型参数进行更新,包括:
利用所述比值数据以如下方式对所述神经网络模型参数进行更新:
可选地,在利用所述比值数据对所述神经网络模型参数进行更新之后,还包括:
利用更新后的神经网络模型参数判断神经网络模型是否收敛;
若否,则利用所述更新后的神经网络模型参数执行所述利用所述神经网络模型参数生成本轮训练对应的梯度值及一阶动量的步骤。
可选地,执行所述神经网络训练方法的神经网络训练装置设置于异构设备中,所述获取神经网络模型参数,包括:
当接收到主机设备发送的优化任务信息时,从共享内存中获取所述神经网络模型参数;所述共享内存由所述主机设备的内存和所述异构设备的内存组成;
相应的,在利用所述比值数据对所述神经网络模型参数进行更新之后,还包括:
将更新后的神经网络模型参数存储至所述共享内存,并向所述主机设备发送优化完成信息,以使所述主机设备利用所述更新后的神经网络模型参数确定神经网络模型的收敛状态,并根据所述收敛状态调度优化任务。
可选地,所述从共享内存中获取所述神经网络模型,包括:
利用高速互联通信协议从所述共享内存中提取所述神经网络模型参数;
相应的,所述将更新后的神经网络模型参数存储至所述共享内存,包括:
利用所述高速互联通信协议将所述更新后的神经网络模型参数存储至所述共享内存。
可选地,多个所述异构设备对所述神经网络模型进行并行训练,在利用所述比值数据对所述神经网络模型参数进行更新之前,还包括:
与其他异构设备进行比值数据交换,并对本地生成的比值数据及所述其他异构设备生成的比值数据进行全规约处理,得到总比值数据;
相应的,所述利用所述比值数据对所述神经网络模型参数进行更新,包括:
利用所述总比值数据对所述神经网络模型参数进行更新。
可选地,在与其他异构设备进行比值数据交换之前,还包括:
对所述本地生成的比值数据进行压缩;
相应的,所述与其他异构设备进行比值数据交换,包括:
利用压缩后的比值数据与所述其他异构设备进行所述比值数据交换。
可选地,所述对所述本地生成的比值数据进行压缩,包括:
以如下方式对所述本地生成的比值数据进行低比特压缩:
可选地,在接收到主机设备发送的优化任务信息之前,还包括:
在进行初次训练时,接收所述主机设备所分配的网络层,并对所述网络层进行部署;
相应的,所述从共享内存中获取所述神经网络模型参数,包括:
从所述共享内存中获取所述网络层的神经网络模型参数。
可选地,所述利用所述神经网络模型参数生成本轮训练对应的梯度值,包括:
从所述优化任务信息中提取所述主机设备分配的批训练数据,并利用所述批训练数据及所述神经网络模型参数生成本轮训练对应的梯度值;所述批训练数据由所述主机设备依照预设批训练大小对总训练集平均分配得到。
可选地,所述神经网络训练装置采用oneAPI编程实现。
本发明还提供一种神经网络训练装置,包括:
第一优化模块,用于获取神经网络模型参数,并利用所述神经网络模型参数生成本轮训练对应的梯度值及一阶动量;
第二优化模块,用于利用所述梯度值与所述一阶动量之间的差值生成本轮训练对应的二阶动量;
第三优化模块,用于利用所述一阶动量及所述二阶动量生成偏置校正数据,并利用所述偏置校正数据生成比值数据;
参数更新模块,用于利用所述比值数据对所述神经网络模型参数进行更新。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的神经网络训练方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的神经网络训练方法。
本发明提供一种神经网络训练方法,包括:获取神经网络模型参数,并利用所述神经网络模型参数生成本轮训练对应的梯度值及一阶动量;利用所述梯度值与所述一阶动量之间的差值生成本轮训练对应的二阶动量;利用所述一阶动量及所述二阶动量生成偏置校正数据,并利用所述偏置校正数据生成比值数据;利用所述比值数据对所述神经网络模型参数进行更新。
可见,本发明在获取到神经网络模型时,首先会利用神经网络模型生成本轮训练对应的梯度值及一阶动量;随后,本发明会计算梯度值与一阶动量之间的差值,并利用该差值生成本轮训练对应的二阶动量,而这是由于现有的LAMB优化方法存在二阶动量参数设置不当而导致学习率小的情况,而这容易导致训练过程收敛速度过慢的问题。也正是如此,本发明将LAMB优化方法中的二阶动量更新策略调整为基于梯度值与一阶动量之间的差值生成二阶动量,能够额外考虑上述差值的滑动平均,进而可以有效避免现有方式存在的学习率小的问题;最后,本发明可利用一阶动量及改进后的二阶动量生成偏置校正数据,并利用由偏置校正数据生成的比值数据对所述神经网络进行参数更新,可确保神经网络快速收敛,进而可实现减少神经网络模型的训练时间并提升训练效率的效果。本发明还提供一种神经网络训练装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种神经网络训练方法的流程图;
图2为本发明实施例所提供的损失函数变化曲线的示意图;
图3为本发明实施例所提供的一种共享内存的示意图;
图4为本发明实施例所提供的一种神经网络模型分布式训练系统的结构示意图;
图5为本发明实施例所提供的一种神经网络训练装置的结构框图;
图6为本发明实施例所提供的一种电子设备的结构框图;
图7为本发明实施例所提供的一种计算机可读存储介质的结构框图;
附图中的标记如下:
501-第一优化模块、502-第二优化模块、503-第三优化模块、504-参数更新模块、601-存储器、602-处理器、701-计算机可读存储介质。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,通常可采用模型优化方法对模型参数进行更新,以加速神经网络模型的收敛速度。例如LAMB优化方法(Layer-wise Adaptive Moments optimizer forBatching training,用于批量训练的分层自适应矩优化器)是一种分层自适应学习率优化方法。然而,该方法也具有一些缺点,例如容易出现学习率步长选择不当,导致收敛速度较慢的问题。鉴于此,本发明提供一种神经网络训练方法,可对LAMB优化方法的二阶动量更新策略进行调整,以避免因二阶动量选取不当导致学习率小的问题,进而可提升神经网络模型的训练效率。请参考图1,图1为本发明实施例所提供的一种神经网络训练方法的流程图,该方法可以包括:
S100、获取神经网络模型参数,并利用神经网络模型参数生成本轮训练对应的梯度值及一阶动量。
首先应当指出的是,本发明实施例所提供的神经网络训练方法适用于各类神经网络模型的训练过程。换而言之,本发明实施例并不限定神经网络模型的具体类型,可参考神经网络的相关技术。另外,本发明实施例提供的神经网络训练方法适用于神经网络模型的每一轮迭代训练,即每轮迭代训练都需要执行步骤S100至步骤S400。
进一步,本发明实施例中的神经网络模型参数所指的是某一神经网络模型中的所有模型参数。本发明实施例中的梯度值可采用如下方式进行生成:
其中,表示第轮训练对应的梯度值,,表示第轮训练对应的神经网络模型,表示第轮训练对应的神经网络模型参数,表示梯度计算。当然,为提升梯度值计算效率,也可以对梯度更新过程进行优化,例如可采用mini-batch方法(小批量梯度下降)进行优化,具体可参考梯度下降的相关技术。
进一步,本发明实施例中的一阶动量可采用如下方式进行生成:
S200、利用梯度值与一阶动量之间的差值生成本轮训练对应的二阶动量。
相关技术中,LAMB优化方法在进行二阶动量更新时,所采用的策略为:
可见,现有方法在进行二阶动量更新时,仅考虑梯度值本身的滑动平均,没有考虑损失函数的曲率,进而导致现有方法不是在梯度很大的地方采取很大的步长,便是在梯度很小的地方采取很小的步长,容易出现二阶动量选取不当的情况,进而导致模型的学习率较小,难以快速收敛。也正是如此,本发明实施例对二阶动量的更新策略进行了调整,可利用梯度值和一阶动量之间的差值计算二阶动量,进而能够在训练过程中自适应调整学习率的方差,能够有效避免现有方案由二阶动量选取不当而导致学习率小的问题。具体的,利用梯度值与一阶动量之间的差值生成本轮训练对应的二阶动量,即步骤S200可以包括:
步骤S201:利用梯度值与一阶动量之间的差值以如下方式生成二阶动量:
其中,和分别表示第轮训练和第轮训练对应的二阶动量,;表示第轮训练对应的梯度值,,,表示梯度计算,表示第轮训练对应的神经网络模型,表示第轮训练对应的神经网络模型参数;表示第轮训练对应的一阶动量,,,表示第一动量参数;表示第二动量参数。应当指出的是,此处的为固定值,即在神经网络模型训练的每次迭代中均相同。
为便于理解本发明实施例变换二阶动量更新策略后可取得的效果,请参考图2,图2为本发明实施例所提供的损失函数变化曲线的示意图,其中g表示梯度。可见,x_1、x_2及x_3三点所在的位置具有梯度大但曲率小的特征。此种情况下,应当采取较大的学习率才能迅速收敛到最优解。然而现有的LAMB优化方法在此时并不会自适应地将学习率调整至较大水平,而是仍在此处选择较小的学习率,进而会导致模型收敛速度较慢;而本发明实施例则能够自适应地将学习率调整至较大水平,以提升模型收敛速度。可见,本发明实施例所提供的方法在损失函数变化曲线出现梯度大且曲率小的情况时相较于现有方案具有显著的优势。
S300、利用一阶动量及二阶动量生成偏置校正数据,并利用偏置校正数据生成比值数据。
具体的,利用一阶动量及二阶动量生成偏置校正数据,并利用偏置校正数据生成比值数据,即步骤S300可以包括:
其中,表示第t轮训练对应的第二动量参数。应当指出的是,与为相同用途的动量参数,不同点在于可在每轮训练中发生变化,并非固定值。步骤S303:利用第一偏置校正数据及第二偏置校正数据以如下方式生成比值数据:
S400、利用比值数据对神经网络模型参数进行更新。
具体的,可利用比值数据以如下方式对神经网络模型进行参数更新:
进一步,在完成模型参数更新之后,执行本方法的神经网络训练装置可以利用更新后的模型参数判断神经网络是否收敛,并在确定后者还未收敛之后继续进行下一轮迭代训练。当然,该装置也可以仅将更新后的模型参数进行导出,而不进行后续训练。例如在进行分布式训练时,主机设备会依照神经网络模型的训练情况,向多个神经网络训练装置下发训练任务,此时后者仅需执行单次训练,并将训练结果返回至主机设备即可,由主机设备依照该结果继续进行训练任务调度。需要说明的是,本发明实施例并不限定神经网络训练装置的具体类型,例如可以为CPU,也可以为其他异构设备,例如显卡(GPU)、现场可编程逻辑门阵列(FPGA)或专用集成电路(ASIC)等,可根据实际应用需求进行设定。
在一种可能的情况中,在利用比值数据对神经网络模型参数进行更新之后,即在步骤S400之后,还可以包括:
步骤S500:利用更新后的神经网络模参数判断神经网络模型是否收敛;若是,则进入步骤S600;若否,则进入步骤S700;
步骤S600:退出训练;
步骤S700:利用更新后的神经网络模型参数执行利用神经网络模型参数生成本轮训练对应的梯度值及一阶动量的步骤。
需要说明的是,本发明实施例并不限定利用模型参数判断神经网络模型是否收敛的具体方式,可参考损失函数的相关技术。
基于上述实施例,本发明在获取到神经网络模型时,首先会利用神经网络模型生成本轮训练对应的梯度值及一阶动量;随后,本发明会计算梯度值与一阶动量之间的差值,并利用该差值生成本轮训练对应的二阶动量,而这是由于现有的LAMB优化方法存在二阶动量参数设置不当而导致学习率小的问题,而这容易导致训练过程收敛速度过慢。也正是如此,本发明将LAMB优化方法的二阶动量更新策略调整为基于梯度值与一阶动量之间的差值生成二阶动量,能够额外考虑上述差值的滑动平均,进而可以有效避免现有方式存在的学习率小的问题;最后,本发明可利用一阶动量及改进后的二阶动量生成偏置校正数据,并利用由偏置校正数据生成的比值数据对所述神经网络进行参数更新,可确保神经网络快速收敛,进而可实现减少神经网络模型的训练时间并提升训练效率的效果。
基于上述实施例,由于异构设备(例如显卡,现场可编程逻辑门阵列、专用集成电路等)具有更适合神经网络训练的硬件结构,因此通常会采用异构设备进行神经网络的训练,而使用主机设备对异构设备进行调度。然而,主机设备与异构设备之间的数据传输路径较长,容易增加数据传输延迟并影响数据传输带宽,进而容易降低神经网络模型的训练效率,不利于本方法在硬件端的部署。鉴于此,本发明实施例可利用共享内存机制来降低主机设备与异构设备之间的数据传输时延,以此提升神经网络模型的训练效率。在一种可能的情况中,执行本神经网络训练方法的神经网络训练装置设置于异构设备中,获取神经网络模型参数,即步骤S100可以包括:
S101、当接收到主机设备发送的优化任务信息时,从共享内存中获取神经网络模型参数;共享内存由主机设备的内存和异构设备的内存组成。
需要说明的是,本发明实施例并不限定优化任务信息可包含的具体内容,例如可包含具体训练集、参数信息等,可根据实际应用需求进行设定。
进一步,本发明实施例将采用共享内存来解决主机设备与异构设备之间数据传输效率低下的问题。具体的,本发明实施例可引入互联协议,将主机设备的内存和异构设备的内存组合为一个共享内存,进而可实现多种异构计算设备内存一致性。基于该协议,异构设备对主机设备内存空间的访问将如同对自身内存空间的访问,而主机设备对异构设备内存空间的访问也是如此,而这将打通异构设备之间的通信延迟屏障,大幅增加数据交互速度。而在引入共享内存之后,主机设备便可将需要训练的神经网络模型参数直接存放在共享内存中,而神经网络训练装置也可直接从共享内存中直接获取该模型参数并进行训练,进而能够有效减少数据传输耗时,提升神经网络模型的训练效率。需要说明的是,本发明实施例并不限定具体的互联协议,例如可以为高速互联通信协议(CXL,Compute Express Link),也可以为Nvlink、Gen-Z等互联协议。考虑到高速互联通信协议较为成熟,在本发明实施例中将会采用该协议作为主机设备与异构设备之间的互联协议。
在一种可能的情况中,从共享内存中获取神经网络模型,即步骤S101可以包括:
S1011:利用高速互联通信协议从共享内存中提取神经网络模型参数。
为便于理解共享内存与主机设备和异构设备之间的关系,请参考图3,图3为本发明实施例所提供的一种共享内存的示意图。可见,主机设备与异构设备均可直接访问共享内存(CXL Memory)。本发明实施例并不限定主机设备及异构设备利用高速互联通信协议访问共享内存的具体方式,例如可通过高速互联通信协议所提供的通信方法,即CXL.io、CXL.cache和CXL.mem三种方法访问共享内存,其中CXL.io用于实现异构设备与外界的通信与数据传输,CXL.cache用于实现异构设备对主机内存的访问,CXL.mem用于实现主机设备对异构设备内存的访问。当然,可以理解的是,高速互联通信协议在进行部署时,也可在主机设备与异构设备之间、异构设备与其他异构设备之间设置相关的控制设备及数据交换设备,例如在主机设备与异构设备之间设置高速互联通信控制器,而在异构设备之间设置交换器,本发明实施例对此不做限定,可参考高速互联通信协议的相关技术。进一步,需要说明的是,本发明实施例并不限定主机设备可调度的异构设备的数量,可以为单个也可以为多个,可根据实际应用需求进行设定;本发明实施例也不限定各异构设备的类型,例如可以为显卡、现场可编程逻辑门阵列及专用集成电路等。当然,为使优化任务能够在各类异构设备中执行,神经网络训练装置也可采用OneAPI编程实现,以确保模型可以运行在CPU、GPU、FPGA、专用加速器等多种计算设备之中。本发明实施例也不限定由主机设备和异构设备组成的分布式系统所采用的通信拓扑结构,例如可采用Parameter Server(参数服务器架构)、ALLReduce(全约束架构)等,可根据实际应用需求进行设定。当然,分布式系统之间也可采用QPI(Quick Path Interconnect,快速通道互联)或UPI(Ultra Path Interconnect,超高速通道互联)互联的方式进行连接。请参考图4,图4为本发明实施例所提供的一种神经网络模型分布式训练系统的结构示意图,可见CPU(即主机设备)与异构设备之间采用CXL互联控制器连接,异构设备之间采用交换器连接,而CPU之间可采用QPI或UPI互联协议进行连接。
进一步,当异构设备的数量为多个时,本发明实施例也不限定上述分布式系统的并行工作模式,例如可以为数据并行或模型并行。对于数据并行模式而言,主机设备将会对总训练集进行拆分得到若干个批训练集,并将各个批训练集下发至各个异构设备进行模型训练,而每一异构设备均要对完整的神经网络模型进行训练优化;对于模型并行模式而言,主机设备会将神经网络模型中的各个层部署至对应的异构设备中,并使用相同的训练数据控制各个异构设备进行模型训练,而每一异构设备仅需对已部署的网络层进行训练优化即可。即简单来说,数据并行模式下的异构设备所执行的训练内容相同,但训练所使用的训练数据不同;而模型并行模式下的异构设备执行的训练内容不同,但训练所使用的训练数据相同。当然,需要指出的是,上述两种模式在完成比值数据计算之后,都需要对各异构设备生成的比值数据进行汇总整合,以得到总比值数据,进而才可利用总比值数据对神经网络模型参数进行优化。上述汇总整合的过程可由全规约过程(Allreduce)实现,即异构设备相互交换比值数据,并对本地比值数据和其他比值数据进行全规约处理,以整合各比值数据得到总比值数据。需要说明的是,本发明实施例并不限定全规约过程的具体实现方式,可参考全规约的相关技术。
在一种可能的情况中,多个异构设备对神经网络模型进行并行训练,在利用比值数据对神经网络模型参数进行更新之前,即在步骤S400之前还可以包括:
步骤S800:与其他异构设备进行比值数据交换,并对本地生成的比值数据及其他异构设备生成的比值数据进行全规约处理,得到总比值数据;
相应的,利用比值数据对神经网络模型参数进行更新,即步骤S400包括:
步骤S401:利用总比值数据对神经网络模型参数进行更新。
当然,为进一步降低异构设备间交换比值数据所产生的数据流大小,还可先对异构设备本地的比值数据进行压缩,并在压缩后再进行交换。
在一种可能的情况中,在与其他异构设备进行比值数据交换之前,即在步骤S800之前,还可以包括:
步骤S900:对所述本地生成的比值数据进行压缩;
相应的,所述与其他异构设备进行比值数据交换,即步骤S800包括:
步骤S801:利用压缩后的比值数据与其他异构设备进行比值数据交换。
具体的,由于总比值数据是采用压缩的比值数据全规约得到的,因此神经网络模型参数的更新过程可表示为:
需要说明的是,本发明实施例并不限定具体的数据压缩方式,可根据实际应用需求进行选择。优选地,可采用低比特压缩方式进行压缩,以降低比值数据的大小。
在一种可能的情况中,所述对所述本地生成的比值数据进行压缩,即步骤S900,可以包括:
步骤S901:以如下方式对所述本地生成比值数据进行低比特压缩:
具体的,在进行1比特(1-bit)传输时,函数将转换为1位0或者1信息,例如,0,1。在进行2比特(2-bit)传输时,函数将其转换为2位0或者1信息,例如00,01。需要说明的是,本发明实施例并不限定量化误差的具体计算方式,可参考量化压缩的相关技术。
下面对模型并行模式进行简单介绍。在以该模式工作时,主机设备在初次训练时,会对神经网络模型进行拆分得到网络层,并将各网络层部署至对应合适的异构设备上,例如将全连接层放置于GPU上进计算,将卷积层放置与FPGA上进行计算,将其他层放置于ASIC上进行计算。随后在进行训练优化时,异构设备仅需对本地已部署的网络层的神经网络模型参数进行提取优化即可。
在一种可能的情况中,在接收到主机设备发送的优化任务信息之前,即S101之前,还可以包括:
步骤S102:在进行初次训练时,接收所述主机设备所分配的网络层,并对所述网络层进行部署;
相应的,所述从共享内存中获取所述神经网络模型参数,即步骤S101可以包括:
步骤S1011:从所述共享内存中获取所述网络层的神经网络模型参数。
当然,需要说明的是,本发明实施例并不限定异构设备具体可部署的网络层类型,可根据实际应用需求进行调整。
下面对模型并行模式进行简单介绍。在以该模式工作时,主机设备会依照预设的批训练大小对总训练集进行平均分配,得到若干批次的批训练数据,并将各批次数据发送至不同的异构设备进行训练。需要说明的是,本发明实施例并不限定预设批训练大小的具体数值,可根据实际应用需求进行设定。
在一种可能的情况中,所述利用所述神经网络模型参数生成本轮训练对应的梯度值,即步骤S100可以包括:
步骤S110:从优化任务信息中提取主机设备分配的批训练数据,并利用批训练数据及神经网络模型参数生成本轮训练对应的梯度值;批训练数据由主机设备依照预设批训练大小对总训练集平均分配得到。
当然,数据并行模式和模型并行模式还可混合,例如在模型并行模式下,主机设备同样可对总训练集拆分为多个批次的批训练数据,并将各批次训练数据发送至不同的异构设备进行训练,可根据实际应用需求进行设定。
相应的,在利用比值数据对神经网络模型参数进行更新之后,还可以包括:
S1000、将更新后的神经网络模型参数存储至共享内存,并向主机设备发送优化完成信息,以使主机设备利用更新后的神经网络模型参数确定神经网络模型的收敛状态,并根据收敛状态调度优化任务。
相应的,将更新后的神经网络模型参数存储至共享内存,可以包括:
步骤1001:利用高速互联通信协议将更新后的神经网络模型参数存储至共享内存。
基于上述实施例,本发明实施例可基于共享内存机制,构建一种包含CPU、GPU、FPGA、ASIC等多种计算设备的深度学习模型训练系统,实现异构计算设备之间的内存一致性,大大增加数据传输带宽,并减少计算设备之间的数据交互延迟。
下面对本发明实施例提供的神经网络训练装置、电子设备及计算机可读存储介质进行介绍,下文描述的神经网络训练装置、电子设备及计算机可读存储介质与上文描述的神经网络训练方法可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种神经网络训练装置的结构框图,该装置可以包括:
第一优化模块501,用于获取神经网络模型参数,并利用神经网络模型参数生成本轮训练对应的梯度值及一阶动量;
第二优化模块502,用于利用梯度值与一阶动量之间的差值生成本轮训练对应的二阶动量;
第三优化模块503,用于利用一阶动量及二阶动量生成偏置校正数据,并利用偏置校正数据生成比值数据;
参数更新模块,用于利用所述比值数据对所述神经网络模型参数进行更新。
可选地,第二优化模块502,具体用于:
利用梯度值与一阶动量之间的差值以如下方式生成二阶动量:
其中,和分别表示第轮训练和第轮训练对应的二阶动量,;表示第轮训练对应的梯度值,,,表示梯度计算,表示第轮训练对应的神经网络模型,表示第轮训练对应的神经网络模型参数;表示第轮训练对应的一阶动量,,,表示第一动量参数;表示第二动量参数。
可选地,第三优化模块503,具体用于:
相应的,参数更新模块504,具体用于:
利用比值数据以如下方式对神经网络模型进行参数更新:
可选地,该装置还可以包括:
收敛判定模块,用于利用更新后的神经网络模型参数判断神经网络模型是否收敛;若否,则利用更新后的神经网络模型参数执行利用神经网络模型参数生成本轮训练对应的梯度值及一阶动量的步骤。
可选地,神经网络训练装置设置于异构设备中,第一优化模块501,可以包括:
获取子模块,用于当接收到主机设备发送的优化任务信息时,从共享内存中获取神经网络模型参数;共享内存由主机设备的内存和异构设备的内存组成;
相应的,该装置还可以包括:
发送模块,用于将更新后的神经网络模型参数存储至共享内存,并向主机设备发送优化完成信息,以使主机设备利用更新后的神经网络模型参数确定神经网络模型的收敛状态,并根据收敛状态调度优化任务。
可选地,获取子模块,具体用于:
利用高速互联通信协议从共享内存中提取神经网络模型参数;
相应的,发送模块,具体用于:
利用高速互联通信协议将更新后的神经网络模型参数存储至共享内存。
可选地,多个异构设备对神经网络模型进行并行训练,该装置还可以包括:
比值数据全规约模块,用于在利用比值数据对神经网络模型参数进行更新之前,与其他异构设备进行比值数据交换,并对本地生成的比值数据及其他异构设备生成的比值数据进行全规约处理,得到总比值数据;
相应的,参数更新模块,具体用于:
利用总比值数据对神经网络模型参数进行更新。
可选地,该装置还可以包括:
压缩模块,用于在与其他异构设备进行比值数据交换之前,对本地生成的比值数据进行压缩;
相应的,比值数据全规约模块,具体用于:
利用压缩后的比值数据与其他异构设备进行比值数据交换。
可选地,压缩模块,具体用于:
以如下方式对本地生成的比值数据进行低比特压缩:
可选地,该装置还可以包括:
网络层部署模块,用于在接收到主机设备发送的优化任务信息之前,在进行初次训练时,接收主机设备所分配的网络层,并对网络层进行部署;
相应的,获取子模块,具体用于:
从共享内存中获取网络层的神经网络模型参数。
可选地,第一优化模块501,具体用于:
从优化任务信息中提取主机设备分配的批训练数据,并利用批训练数据及神经网络模型参数生成本轮训练对应的梯度值;批训练数据由主机设备依照预设批训练大小对总训练集平均分配得到。可选地,神经网络训练装置采用oneAPI编程实现。
请参考图6,图6为本发明实施例所提供的一种电子设备的结构框图,本发明实施例还提供一种电子设备,包括:
存储器601,用于存储计算机程序;
处理器602,用于执行计算机程序时实现如上述的神经网络训练方法的步骤。
由于电子设备部分的实施例与神经网络训练方法部分的实施例相互对应,因此电子设备部分的实施例请参见神经网络训练方法部分的实施例的描述,这里不再赘述。
请参考图7,图7为本发明实施例所提供的一种计算机可读存储介质的结构框图,本发明实施例还提供一种计算机可读存储介质701,计算机可读存储介质701上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的神经网络训练方法的步骤。
由于计算机可读存储介质部分的实施例与神经网络训练方法部分的实施例相互对应,因此存储介质部分的实施例请参见神经网络训练方法部分的实施例的描述,这里不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种神经网络训练方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (15)
1.一种神经网络训练方法,其特征在于,包括:
获取神经网络模型参数,并利用所述神经网络模型参数生成本轮训练对应的梯度值及一阶动量;
利用所述梯度值与所述一阶动量之间的差值生成本轮训练对应的二阶动量;
利用所述一阶动量及所述二阶动量生成偏置校正数据,并利用所述偏置校正数据生成比值数据;
利用所述比值数据对所述神经网络模型参数进行更新。
3.根据权利要求2所述的神经网络训练方法,其特征在于,所述利用所述一阶动量及所述二阶动量生成偏置校正数据,并利用所述偏置校正数据生成比值数据,包括:
相应的,所述利用所述比值数据对所述神经网络模型参数进行更新,包括:
利用所述比值数据以如下方式对所述神经网络模型参数进行更新:
4.根据权利要求1所述的神经网络训练方法,其特征在于,在利用所述比值数据对所述神经网络模型参数进行更新之后,还包括:
利用更新后的神经网络模型参数判断神经网络模型是否收敛;
若否,则利用所述更新后的神经网络模型参数执行所述利用所述神经网络模型参数生成本轮训练对应的梯度值及一阶动量的步骤。
5.根据权利要求1至4任一项所述的神经网络训练方法,其特征在于,执行所述神经网络训练方法的神经网络训练装置设置于异构设备中,所述获取神经网络模型参数,包括:
当接收到主机设备发送的优化任务信息时,从共享内存中获取所述神经网络模型参数;所述共享内存由所述主机设备的内存和所述异构设备的内存组成;
相应的,在利用所述比值数据对所述神经网络模型参数进行更新之后,还包括:
将更新后的神经网络模型参数存储至所述共享内存,并向所述主机设备发送优化完成信息,以使所述主机设备利用所述更新后的神经网络模型参数确定神经网络模型的收敛状态,并根据所述收敛状态调度优化任务。
6.根据权利要求5所述的神经网络训练方法,其特征在于,所述从共享内存中获取所述神经网络模型,包括:
利用高速互联通信协议从所述共享内存中提取所述神经网络模型参数;
相应的,所述将更新后的神经网络模型参数存储至所述共享内存,包括:
利用所述高速互联通信协议将所述更新后的神经网络模型参数存储至所述共享内存。
7.根据权利要求5所述的神经网络训练方法,其特征在于,多个所述异构设备对所述神经网络模型进行并行训练,在利用所述比值数据对所述神经网络模型参数进行更新之前,还包括:
与其他异构设备进行比值数据交换,并对本地生成的比值数据及所述其他异构设备生成的比值数据进行全规约处理,得到总比值数据;
相应的,所述利用所述比值数据对所述神经网络模型参数进行更新,包括:
利用所述总比值数据对所述神经网络模型参数进行更新。
8.根据权利要求7所述的神经网络训练方法,其特征在于,在与其他异构设备进行比值数据交换之前,还包括:
对所述本地生成的比值数据进行压缩;
相应的,所述与其他异构设备进行比值数据交换,包括:
利用压缩后的比值数据与所述其他异构设备进行所述比值数据交换。
10.根据权利要求7所述的神经网络训练方法,其特征在于,在接收到主机设备发送的优化任务信息之前,还包括:
在进行初次训练时,接收所述主机设备所分配的网络层,并对所述网络层进行部署;
相应的,所述从共享内存中获取所述神经网络模型参数,包括:
从所述共享内存中获取所述网络层的神经网络模型参数。
11.根据权利要求7所述的神经网络训练方法,其特征在于,所述利用所述神经网络模型参数生成本轮训练对应的梯度值,包括:
从所述优化任务信息中提取所述主机设备分配的批训练数据,并利用所述批训练数据及所述神经网络模型参数生成本轮训练对应的梯度值;所述批训练数据由所述主机设备依照预设批训练大小对总训练集平均分配得到。
12.根据权利要求5所述的神经网络训练方法,其特征在于,所述神经网络训练装置采用oneAPI编程实现。
13.一种神经网络训练装置,其特征在于,包括:
第一优化模块,用于获取神经网络模型参数,并利用所述神经网络模型参数生成本轮训练对应的梯度值及一阶动量;
第二优化模块,用于利用所述梯度值与所述一阶动量之间的差值生成本轮训练对应的二阶动量;
第三优化模块,用于利用所述一阶动量及所述二阶动量生成偏置校正数据,并利用所述偏置校正数据生成比值数据;
参数更新模块,用于利用所述比值数据对所述神经网络模型参数进行更新。
14.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至12任一项所述的神经网络训练方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至12任一项所述的神经网络训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210838683.2A CN114925829A (zh) | 2022-07-18 | 2022-07-18 | 一种神经网络训练方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210838683.2A CN114925829A (zh) | 2022-07-18 | 2022-07-18 | 一种神经网络训练方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114925829A true CN114925829A (zh) | 2022-08-19 |
Family
ID=82815929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210838683.2A Pending CN114925829A (zh) | 2022-07-18 | 2022-07-18 | 一种神经网络训练方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114925829A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117875397A (zh) * | 2024-03-11 | 2024-04-12 | 浪潮电子信息产业股份有限公司 | 一种待更新参数选择方法、装置、计算设备及存储介质 |
CN117875397B (zh) * | 2024-03-11 | 2024-06-04 | 浪潮电子信息产业股份有限公司 | 一种待更新参数选择方法、装置、计算设备及存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537864A (zh) * | 2017-03-02 | 2018-09-14 | 奥多比公司 | 利用具有网络渲染层的神经网络编辑数字图像 |
CN109389222A (zh) * | 2018-11-07 | 2019-02-26 | 清华大学深圳研究生院 | 一种快速的自适应神经网络优化方法 |
CN110276451A (zh) * | 2019-06-28 | 2019-09-24 | 南京大学 | 一种基于权重归一化的深度神经网络压缩方法 |
CN110378466A (zh) * | 2019-06-03 | 2019-10-25 | 北京大学 | 基于神经网络差分的量化方法及系统 |
CN111814963A (zh) * | 2020-07-17 | 2020-10-23 | 中国科学院微电子研究所 | 一种基于深度神经网络模型参数调制的图像识别方法 |
US20210117776A1 (en) * | 2019-10-22 | 2021-04-22 | Baidu Usa Llc | Method, electronic device and computer readable medium for information processing for accelerating neural network training |
CN112950655A (zh) * | 2021-03-08 | 2021-06-11 | 甘肃农业大学 | 基于深度学习的土地利用信息自动提取方法 |
CN113313248A (zh) * | 2021-02-26 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 一种共享自适应度优化方法及装置 |
CN113406503A (zh) * | 2021-06-01 | 2021-09-17 | 重庆大学 | 基于深度神经网络的锂电池soh在线估算方法 |
CN113505881A (zh) * | 2021-07-15 | 2021-10-15 | 华侨大学 | 面向异构设备的分布式神经网络训练方法、装置及介质 |
CN113762533A (zh) * | 2021-09-07 | 2021-12-07 | 北京航空航天大学 | 无线边缘网络中对数据污染具有鲁棒性的联邦学习方法 |
CN114239799A (zh) * | 2021-12-03 | 2022-03-25 | 上海交通大学 | 一种高效目标检测方法、设备、介质和系统 |
CN114386570A (zh) * | 2021-12-21 | 2022-04-22 | 中山大学 | 一种基于多分支神经网络模型的异构联邦学习训练方法 |
CN114461568A (zh) * | 2022-04-14 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、系统、设备及可读存储介质 |
-
2022
- 2022-07-18 CN CN202210838683.2A patent/CN114925829A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537864A (zh) * | 2017-03-02 | 2018-09-14 | 奥多比公司 | 利用具有网络渲染层的神经网络编辑数字图像 |
CN109389222A (zh) * | 2018-11-07 | 2019-02-26 | 清华大学深圳研究生院 | 一种快速的自适应神经网络优化方法 |
CN110378466A (zh) * | 2019-06-03 | 2019-10-25 | 北京大学 | 基于神经网络差分的量化方法及系统 |
CN110276451A (zh) * | 2019-06-28 | 2019-09-24 | 南京大学 | 一种基于权重归一化的深度神经网络压缩方法 |
US20210117776A1 (en) * | 2019-10-22 | 2021-04-22 | Baidu Usa Llc | Method, electronic device and computer readable medium for information processing for accelerating neural network training |
CN111814963A (zh) * | 2020-07-17 | 2020-10-23 | 中国科学院微电子研究所 | 一种基于深度神经网络模型参数调制的图像识别方法 |
CN113313248A (zh) * | 2021-02-26 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 一种共享自适应度优化方法及装置 |
CN112950655A (zh) * | 2021-03-08 | 2021-06-11 | 甘肃农业大学 | 基于深度学习的土地利用信息自动提取方法 |
CN113406503A (zh) * | 2021-06-01 | 2021-09-17 | 重庆大学 | 基于深度神经网络的锂电池soh在线估算方法 |
CN113505881A (zh) * | 2021-07-15 | 2021-10-15 | 华侨大学 | 面向异构设备的分布式神经网络训练方法、装置及介质 |
CN113762533A (zh) * | 2021-09-07 | 2021-12-07 | 北京航空航天大学 | 无线边缘网络中对数据污染具有鲁棒性的联邦学习方法 |
CN114239799A (zh) * | 2021-12-03 | 2022-03-25 | 上海交通大学 | 一种高效目标检测方法、设备、介质和系统 |
CN114386570A (zh) * | 2021-12-21 | 2022-04-22 | 中山大学 | 一种基于多分支神经网络模型的异构联邦学习训练方法 |
CN114461568A (zh) * | 2022-04-14 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、系统、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
阚涛等: "采用分数阶动量的卷积神经网络随机梯度下降法", 《模式识别与人工智能》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117875397A (zh) * | 2024-03-11 | 2024-04-12 | 浪潮电子信息产业股份有限公司 | 一种待更新参数选择方法、装置、计算设备及存储介质 |
CN117875397B (zh) * | 2024-03-11 | 2024-06-04 | 浪潮电子信息产业股份有限公司 | 一种待更新参数选择方法、装置、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113315604B (zh) | 一种联邦学习自适应梯度量化方法 | |
CN113067873B (zh) | 基于深度强化学习的边云协同优化方法 | |
CN111918339B (zh) | 移动边缘网络中基于强化学习的ar任务卸载和资源分配方法 | |
CN110460880B (zh) | 基于粒子群和神经网络的工业无线流媒体自适应传输方法 | |
CN111382844B (zh) | 一种深度学习模型的训练方法及装置 | |
CN113434212B (zh) | 基于元强化学习的缓存辅助任务协作卸载与资源分配方法 | |
CN113543156B (zh) | 基于多智能体深度强化学习的工业无线网络资源分配方法 | |
CN110084739A (zh) | 一种基于cnn的画质增强算法的fpga并行加速系统 | |
CN114285853B (zh) | 设备密集型工业物联网中基于端边云协同的任务卸载方法 | |
CN113225377A (zh) | 物联网边缘任务卸载方法及装置 | |
CN110795235B (zh) | 一种移动web深度学习协作的方法及系统 | |
CN113590232B (zh) | 一种基于数字孪生的中继边缘网络任务卸载方法 | |
CN112333234B (zh) | 分布式机器学习训练方法、装置、电子设备及存储介质 | |
CN110503194B (zh) | 一种分布式并行训练的方法和系统 | |
CN112884146B (zh) | 一种训练基于数据量化与硬件加速的模型的方法及系统 | |
CN113626104A (zh) | 边云架构下基于深度强化学习的多目标优化卸载策略 | |
CN114205353A (zh) | 一种基于混合动作空间强化学习算法的计算卸载方法 | |
CN115499441A (zh) | 超密集网络中基于深度强化学习的边缘计算任务卸载方法 | |
CN114090108B (zh) | 算力任务执行方法、装置、电子设备及存储介质 | |
CN116962176B (zh) | 一种分布式集群的数据处理方法、装置、系统及存储介质 | |
CN116489708B (zh) | 面向元宇宙的云边端协同的移动边缘计算任务卸载方法 | |
CN114925829A (zh) | 一种神经网络训练方法、装置、电子设备及存储介质 | |
CN115756873B (zh) | 一种基于联邦强化学习的移动边缘计算卸载方法和平台 | |
CN113128682B (zh) | 神经网络模型自动适配方法和装置 | |
CN113157344B (zh) | 移动边缘计算环境下基于drl的能耗感知任务卸载方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220819 |
|
RJ01 | Rejection of invention patent application after publication |