CN110163368B - 基于混合精度的深度学习模型训练方法、装置及系统 - Google Patents

基于混合精度的深度学习模型训练方法、装置及系统 Download PDF

Info

Publication number
CN110163368B
CN110163368B CN201910313866.0A CN201910313866A CN110163368B CN 110163368 B CN110163368 B CN 110163368B CN 201910313866 A CN201910313866 A CN 201910313866A CN 110163368 B CN110163368 B CN 110163368B
Authority
CN
China
Prior art keywords
data
training
deep learning
learning model
precision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910313866.0A
Other languages
English (en)
Other versions
CN110163368A (zh
Inventor
裴建国
侯金龙
刘伟
黄俊洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910313866.0A priority Critical patent/CN110163368B/zh
Publication of CN110163368A publication Critical patent/CN110163368A/zh
Application granted granted Critical
Publication of CN110163368B publication Critical patent/CN110163368B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于混合精度的深度学习模型训练方法、装置及系统,该方法包括:基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理,获得数据精度为第一数据精度的设定数量个第一权重梯度数据;根据设定数量个第一权重梯度数据和第二数据精度,确定数据精度为第二数据精度的缩放系数,第一数据精度高于第二数据精度;基于样本数据集和缩放系数,对深度学习模型进行训练以更新深度学习模型的权重参数,获得本次训练的深度学习模型,缩放系数用于在训练深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大处理,以提高了训练效率和训练精度。

Description

基于混合精度的深度学习模型训练方法、装置及系统
技术领域
本发明涉及模型训练技术领域,尤其涉及一种基于混合精度的深度学习模型训练方法、装置及系统。
背景技术
深度学习模型已经广泛应用到各个领域,如机器人、语音识别、图像识别和自然语言处理等领域。实际应用中,在深度学习模型投入到应用之前,需要利用大量的样本数据对深度学习模型进行训练,如何提高深度学习模型的训练效率、降低训练成本显得尤为重要。目前,各大硬件芯片厂商推出了在低精度数值范围内计算能力超强的AI加速芯片,以V100芯片为例,其半精度数据处理单元的计算能力是单精度数据处理单元的10倍。为了利用V100芯片强大的半精度计算能力,提出了利用半精度数据处理单元和单精度数据处理单元进行混合精度训练的方法,并通过引入用于放大损失函数输出的损失值(loss)的缩放系数,来解决训练过程中对损失值求导后得到的权重梯度数据可能会超出半精度数可表示的数值范围的问题。在此基础上,为了获得合理的缩放系数,又提出了缩放系数自动搜索方法,通过判断训练过程中的损失值是否为非法值来调整缩放系数。
然而,现有的缩放系数自动搜索方法,实际上是先设定一个缩放系数,当训练过程中发现loss为非法值时,再调整缩放系数,通过不断试错来搜索到合适的缩放系数。但是,调整缩放系数前的多次迭代计算得到的权重参数的更新结果是无效的,这浪费了模型训练过程中使用的计算资源和时间。因此,如何提高搜索缩放系数的效率是目前需要考虑的问题。
发明内容
本发明实施例提供一种基于混合精度的深度学习模型训练方法、装置、电子设备、系统及存储介质,以解决现有技术中如何提高搜索缩放系数的效率的问题。
第一方面,本发明一实施例提供了一种基于混合精度的深度学习模型训练方法,包括:
基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理,获得数据精度为第一数据精度的设定数量个第一权重梯度数据;
根据所述设定数量个第一权重梯度数据和第二数据精度,确定数据精度为第二数据精度的缩放系数,所述第一数据精度高于所述第二数据精度;
基于所述样本数据集和所述缩放系数,对所述深度学习模型进行训练以更新所述深度学习模型的权重参数,获得本次训练的深度学习模型,所述缩放系数用于在训练所述深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大处理。
可选地,所述基于所述样本数据集和所述缩放系数,对所述深度学习模型进行训练以更新所述深度学习模型的权重参数,获得本次训练的深度学习模型,具体包括:
基于所述样本数据集和所述缩放系数,对所述深度学习模型进行训练以对所述深度学习模型的权重参数进行N次更新,所述N为每次进行模型训练时的权重参数更新次数;
当第N次对权重参数的更新完成时,获得本次训练的深度学习模型并结束本次训练。
可选地,每一次对所述深度学习模型的权重参数进行更新,具体包括:
基于所述深度学习模型,得到所述样本数据集中的一组样本数据组中每个训练数据对应的预测值,所述预设值的数据精度为第二数据精度;
基于损失函数确定所述样本数据组中每个训练数据对应的标注信息和预测值之间的损失值;
将所述样本数据组中所有训练数据对应的损失值的均值乘上所述缩放系数,得到放大后的损失值的均值;
对放大后的损失值的均值进行求导处理,得到所述样本数据组对应的第二权重梯度数据,所述第二权重梯度数据的数据精度为第二数据精度;
将所述样本数据组对应的第二权重梯度数据除以所述缩放系数,得到数据精度为第一数据精度的第三权重梯度数据;
基于所述第三权重梯度数据对所述深度学习模型的权重参数进行一次更新。
可选地,所述方法还包括:
每获得一个第一权重梯度数据时,基于获得的第一权重梯度数据对所述深度学习模型的权重参数进行一次更新,即分别基于每一个第一权重梯度数据,对所述深度学习模型的权重参数进行一次更新。
可选地,所述方法还包括:
在每次训练结束时,就自动转入基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理的步骤以实现自动循环,即在所述基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理之前,需要确定上次训练已经结束。
可选地,根据针对所述缩放系数设定的生命周期,周期性执行本发明提供的训练方法,也就是每一次基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理之前,需要确定当前生命周期已经开始,当前生命周期的开始意味着上一个生命周期的结束。
可选地,所述根据所述设定数量个第一权重梯度数据和第二数据精度,确定数据精度为第二数据精度的缩放系数,包括:
确定所述设定数量个第一权重梯度数据的对数分布范围;
确定所述对数分布范围的第一中轴线;
确定所述第二数据精度的可表示数值范围的第二中轴线;
确定所述第一中轴线和所述第二中轴线之间的偏移值;
将与所述偏移值的差值在设定误差以内的数值作为所述缩放系数。
第二方面,本发明一实施例提供了一种基于混合精度的深度学习模型训练装置,包括:
第一处理模块,用于基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理,获得数据精度为第一数据精度的设定数量个第一权重梯度数据;
缩放系数确定模块,用于根据设定数量个第一权重梯度数据和第二数据精度,确定数据精度为第二数据精度的缩放系数,第一数据精度高于第二数据精度;
第二处理模块,用于基于样本数据集和缩放系数,对深度学习模型进行训练以更新深度学习模型的权重参数,获得本次训练的深度学习模型,缩放系数用于在训练深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大处理。
可选地,所述第一处理模块具体用于:基于所述样本数据集和所述缩放系数,对所述深度学习模型进行训练以对所述深度学习模型的权重参数进行N次更新,所述N为每次进行模型训练时的权重参数更新次数;当第N次对权重参数的更新完成时,获得本次训练的深度学习模型并结束本次训练。
可选地,所述第一处理模块具体用于通过以下步骤对所述深度学习模型的权重参数进行一次更新:
基于所述深度学习模型,得到所述样本数据集中的一组样本数据组中每个训练数据对应的预测值,所述预设值的数据精度为第二数据精度;
基于损失函数确定所述样本数据组中每个训练数据对应的标注信息和预测值之间的损失值;
将所述样本数据组中所有训练数据对应的损失值的均值乘上所述缩放系数,得到放大后的损失值的均值;
对放大后的损失值的均值进行求导处理,得到所述样本数据组对应的第二权重梯度数据,所述第二权重梯度数据的数据精度为第二数据精度;
将所述样本数据组对应的第二权重梯度数据除以所述缩放系数,得到数据精度为第一数据精度的第三权重梯度数据;
基于所述第三权重梯度数据对所述深度学习模型的权重参数进行一次更新。
可选地,在对权重参数进行N次更新的基础上,所述第一处理模块还用于:分别基于每一个第一权重梯度数据,对所述深度学习模型的权重参数进行一次更新。
可选地,还包括监控模块,用于确定上次训练已经结束时,触发所述第一处理模块。或者,用于根据针对所述缩放系数设定的生命周期,确定当前生命周期已经开始时触发所述第一处理模块;其中,所述上次训练得到的深度学习模型为上一个生命周期中训练得到的深度学习模型,所述本次训练的深度学习模型为当前生命周期中训练得到的深度学习模型。
可选地,所述缩放系数确定模块具体用于:
确定所述设定数量个第一权重梯度数据的对数分布范围;
确定所述对数分布范围的第一中轴线;
确定所述第二数据精度的可表示数值范围的第二中轴线;
确定所述第一中轴线和所述第二中轴线之间的偏移值;
将与所述偏移值的差值在设定误差以内的数值作为所述缩放系数。
第三方面,本发明一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种方法的步骤。
第四方面,本发明一实施例提供了一种基于混合精度的深度学习模型训练系统,包括:至少一个第一数据处理单元、至少一个第二数据处理单元、至少一个控制单元和至少一个存储单元;所述第一数据处理单元的数据处理精度高于所述第二数据处理单元的数据处理精度,且所述第二数据处理单元的数据处理能力高于所述第一数据处理单元的数据处理能力;
所述存储单元用于存储深度学习模型和样本数据集;
所述控制单元用于执行上述任一种方法的步骤。
可选地,所述系统包括至少一个芯片,所述芯片中包括至少一个所述第一数据处理单元和至少一个所述第二数据处理单元。
第五方面,本发明一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
本发明实施例提供的技术方案,在每次对深度学习模型进行训练之前,先调用第一数据处理单元基于上次训练得到的深度学习模型,对一定数量的样本数据进行处理,从而得到更新权重参数时使用的权重梯度数据,该权重梯度数据的数据精度为第一数据精度,再根据上述权重梯度数据以及第二数据精度,来确定本次训练过程中使用的缩放系数,确保在本次训练过程中,能够通过该缩放系数对损失值进行放大,从而保证放大后的损失值的求导结果(即权重梯度数据)落入第二数据精度可表示的数值范围内,即能够通过数据处理精度为第二数据精度的第二数据处理单元得到准确的权重梯度数据,确保在本次训练中能够使用第二数据处理单元对深度学习模型进行训练,且保证训练结果的准确性和有效性。然后,调用第二数据处理单元和第一数据处理单元基于样本数据集和确定的缩放系数,对深度学习模型进行混合精度的训练以更新深度学习模型的权重参数,获得本次训练的深度学习模型。由于与第一数据处理单元相比,第二数据处理单元的数据处理能力更高且成本更低,因此,使用第二数据处理单元对深度学习模型进行训练,能够提高训练效率、降低训练成本,且基于第二数据处理单元预测缩放系数的机制,能够在训练过程中自适应地调整缩放系数,搜索到合理的缩放系数,保证了每一次训练得到的深度学习模型的有效性和准确定,避免大量无效训练,进一步提高了训练效率和训练精度。此外,本发明实施例的方法,在进行第一次训练时,即可自动调用第一数据处理单元来确定缩放系数,不需要用户设置缩放系数的初始值,避免了因初始值设置过大导致大量的无效计算,或因初始值设置过小导致深度学习模型无法收敛的情况,这既方便了用户,又提高了训练效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于混合精度的深度学习模型训练方法的应用场景示意图;
图2为本发明一实施例提供的基于混合精度的深度学习模型训练方法的流程示意图;
图3为本发明一实施例提供的基于混合精度的深度学习模型训练方法的流程示意图;
图4为本发明一实施例提供的基于混合精度的深度学习模型训练方法的流程示意图;
图5为本发明一实施例提供的基于混合精度的深度学习模型训练方法的流程示意图;
图6为本发明一实施例提供的确定缩放系数的流程示意图;
图7为本发明一实施例提供的基于单精度的数据处理单元得到的权重梯度数据的对数分布范围的柱状图;
图8A为本发明一实施例提供的基于混合精度的深度学习模型训练装置的结构示意图;
图8B为本发明一实施例提供的基于混合精度的深度学习模型训练装置的结构示意图;
图9为本发明一实施例提供的电子设备的结构示意图;
图10为本发明一实施例提供的基于混合精度的深度学习模型训练系统的结构示意图;
图11为本发明一实施例提供的基于混合精度的深度学习模型训练系统的结构示意图;
图12为深度学习模型训练过程中权重梯度数据的变化情况。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例中,“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本发明实施例不做限制。
为了方便理解,下面对本发明实施例中涉及的名词进行解释:
深度学习,深度学习的概念源于人工神经网络的研究,含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,通过模仿人脑的机制来解释数据,例如图像,声音和文本等。常用的深度学习模型包括:卷积神经网络(Convolutional NeuralNetworks,CNN)、循环神经网络(Recurrent Neural Network,RNN)、是长短期记忆网络(Long Short-Term Memory,LSTM)、深度神经网络(Deep Neural Network,DNN)、深度置信网(Deep Belief Nets,DBNs)等神经网络。数据在神经网络中的传播有两种方式,一种是沿着输入到输出的路径,被称为前向传播(Forwardpropagation),另一种是从输出返回到输入,被成为反向传播(Backpropagation)。在正向传播过程中,输入信息通过神经网络逐层处理并传向输出层,通过损失函数描述输出值与期望之间的误差,转入反向传播,逐层求出损失函数对各神经元的权重的偏导数,构成损失函数对权值向量的权重梯度数据,作为更新权重参数的依据,在不断更新权重参数的过程中完成神经网络的训练。
损失函数(loss function),是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。例如,在机器学习中,损失函数被用于模型的参数估计(parameteric estimation),基于损失函数得到的损失值可用来描述模型的预测值与实际值的差异程度。常见的损失函数有均方误差损失函数、SVM(Support Vector Machine,支持向量机)合页损失函数、交叉熵损失函数等。
缩放系数,在训练深度学习模型的过程中,在对损失值进行求导计算前,用来对损失值进行放大的系数。
半精度数,即半精度浮点数,是一种计算机使用的二进制浮点数数据类型,半精度数使用2字节(16位)存储。在IEEE 754-2008中,半精度浮点数被称作binary16。半精度数适合用来存储对精度要求不高的数据。
单精度数,即双精度浮点数(single),也是一种计算机使用的二进制浮点数数据类型,其在计算机内存储为IEEE 32位(4个字节)浮点数值的形式,单精度数的数值范围在负数的时候是从-3.402823E38到-1.401298E-45,而在正数的时候是从1.401298E-45到3.402823E38。
双精度数,即双精度浮点数(double),同样是一种计算机使用的二进制浮点数数据类型,使用64位(8字节)来存储一个浮点数。双精度数可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是:2.23×10-308~1.79×10308
附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
目前,各大硬件芯片厂商已推出了数据处理能力更高、成本更低的低精度数据处理单元,以V100芯片为例,相同晶体管面积可以容纳的半精度数据处理单元的数量远远超过单精度数据处理单元的数量,半精度数据处理单元的计算能力是单精度数据处理单元的10倍。将这些低精度的数据处理单元应用到深度学习模型的训练中,可大大提高训练效率、降低训练成本。
为了利用V100芯片强大的半精度计算能力,提出了利用半精度数据处理单元和单精度数据处理单元进行混合精度训练的方法,在深度学习模型训练过程中,利用半精度数据处理单元进行前向传播计算以获得损失函数的损失值(loss),对乘上缩放系数后的损失值进行求导计算以获得半精度的权重梯度数据,通过缩放系数变相将权重梯度数据放大到半精度可表示的数值范围内,然后,将半精度的权重梯度数据除以缩放系数,得到单精度的权重梯度数据,再使用单精度数据处理单元基于单精度的权重梯度数据对深度学习模型进行权重更新。上述方法需要先设置缩放系数的初始值,然后判断训练过程中产生的损失值是否为非法值,如果损失值为非法值,表明权重梯度数据已经超出半精度可表示的范围,此时,放弃权重参数的更新结果,调整缩放系数后,再基于调整后的缩放系数重新进行训练。一旦缩放系数的初始值设置过大,需要经历很多迭代计算后,才会发生损失值出现非法值的情况,进而对缩放系数进行调整,而这之前获得的权重参数都是不正确的,这浪费了大量的计算资源和时间。此外,若缩放系数的初始值过小,则会损失很多权重梯度信息,导致深度学习模型无法收敛。
因此,现有的方法通过不断试错来搜索到合适的缩放系数,导致训练过程中的多次迭代计算得到的权重参数的更新结果是无效的,这浪费了模型训练过程中使用的计算资源和时间。尤其是很多深度学习模型可能需要多次的优化训练,这样更是极大的加剧了计算资源和时间的浪费。
为此,本发明的发明人在模型训练过程中引入了利用高精度的数据处理单元来获得缩放系数的机制。具体来说,在每次对深度学习模型进行训练之前,先调用高精度的数据处理单元基于上次训练得到的深度学习模型,对一定数量的样本数据进行处理,从而得到更新权重参数时使用的设定数量个权重梯度数据,再根据上述设定数量个权重梯度数据以及低精度的数据处理单元的数据处理精度,来确定本次训练过程中使用的缩放系数,确保在本次训练过程中,能够通过该缩放系数对损失值进行放大,从而保证放大后的损失值的求导结果(即权重梯度数据)落入低精度的数据处理单元的数据处理精度可表示的数值范围内,即能够通过低精度的数据处理单元得到准确的权重梯度数据,确保在本次训练中能够使用低精度的数据处理单元对深度学习模型进行训练,且保证训练结果的准确性和有效性。在上述过程中,用于确定缩放系数所需的权重梯度数据的数量,本领域技术人员根据模型训练的精度和速度并结合自己的经验具体确定。然后,调用低精度的数据处理单元和高精度的数据处理单元基于样本数据集和确定的缩放系数,采用混合精度的训练方法对深度学习模型进行训练,获得本次训练的深度学习模型。由于与高精度的数据处理单元相比,低精度的数据处理单元的数据处理能力更高且成本更低,因此,使用低精度的数据处理单元对深度学习模型进行训练,能够提高训练效率、降低训练成本,且基于高精度的数据处理单元预测缩放系数的机制,能够在训练过程中自适应地调整缩放系数,搜索到合理的缩放系数,保证了每一次训练中得到的深度学习模型的有效性和准确定,避免大量无效训练,进一步提高了训练效率和训练精度。此外,本发明在模型训练过程中,周期性地对缩放系数进行重新预测,基于重新预测的缩放系数,对深度学习模型进行训练,保证整个训练过程中,都能使用合理的缩放系数对深度学习模型进行训练。
在介绍完本发明实施例的设计思想之后,下面对本发明实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本发明实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本发明实施例提供的技术方案。
首先参考图1,其为本发明实施例提供的基于混合精度的深度学习模型训练方法的应用场景示意图。该应用场景包括模型训练系统10和终端设备20,终端设备20和模型训练系统10之间通过网络进行通信连接,终端设备20为用户侧设备,需要进行模型训练的用户可以通过终端设备20登录模型训练系统10。模型训练系统10中包括多个数据处理单元101,例如图1所示的数据处理单元101-1、数据处理单元101-2、……数据处理单元101-N等。模型训练系统10中还需要设置至少一个控制单元102,例如图1所示的控制单元102-1、控制单元102-2、……控制单元102-M等,以及至少一个用于存储数据的存储单元103,例如存储单元103-1、……存储单元103-X等。模型训练系统10通过网络接口单元105和终端设备20通信,网络接口单元105例如图1所示的网络接口单元105-1、网络接口单元105-2。模型训练系统10中还包括至少一个处理单元106,各单元之间可以通过总线104通信连接。图1所示的应用场景中,各单元距离较近,可以通过总线方式连接,如果各单元分布在不同地域,各单元之间也可以通过网络实现异地通信连接。图1所示的应用场景中,处理单元106可以通过总线104对模型训练系统10中的其它单元(包括数据处理单元101、控制单元102、网络接口单元105和存储单元103等)进行控制。一个控制单元102可执行处理单元106下达的一个训练任务,一个控制单元102可同时调用多个数据处理单元101,以协调多个数据处理单元101共同完成一个训练任务,处理单元106和多个控制单元102可以合并设置。存储单元103用于存储样本数据和深度学习模型,还可以用来存储模型训练系统10中需要存储的其它数据,如训练过程中产生的一些中间数据、用户信息、用户对应的训练任务以及系统参数等等。
用户可通过终端设备20登录模型训练系统10,模型训练系统10通过终端设备20向用户展示可选购的模型训练的在线服务,展示内容包括各项在线服务可调用的计算资源数量、训练精度、训练速度和服务价格等信息,用户可根据自身需求购买合适的在线服务。终端设备20将用户购买的一项在线服务通过网络接口单元105发送给处理单元106,处理单元106根据用户购买的在线服务生成对应的训练任务,为该训练任务配置相应数量的数据处理单元101和控制单元102,用户可使用为其配置的数据处理单元101和控制单元102进行模型训练。
用户购买在线服务后,模型训练系统10通过终端设备20向用户提供上传深度学习模型和样本数据的接口,以使用户通过终端设备20上显示的接口将需要训练的深度学习模型和训练用的样本数据上传到模型训练系统10,处理单元106将上传的深度学习模型和样本数据存储入存储单元103中。同时,用户还可以通过终端设备20设置购买的在线服务对应的训练任务的配置参数等。当然,模型训练系统10的存储单元103中还可以预先存储共享的样本数据和一些通用的深度学习模型,供用户使用,用户可以选择使用模型训练系统10提供的样本数据和深度学习模型。处理单元106还需要为训练任务配置用户上传或选择的样本数据和深度学习模型的存储地址。当然,样本数据以及配置参数也可以由训练系统10提供,不需要用户输入。
处理单元106配置好训练任务的各项参数后,将配置参数导入对应的控制单元102中,由控制单元102调用相应的数据处理单元101,并控制数据处理单元101利用样本数据对深度学习模型进行训练。具体地,数据处理单元101根据配置的存储地址,从对应的存储单元103中读取深度学习模型和样本数据,利用样本数据对深度学习模型进行训练。完成训练后,将训练好的深度学习模型存储到对应的存储单元103中,同时,处理单元106结束该训练任务,释放对应的数据处理单元101和控制单元102。完成训练后,处理单元106可通过网络向终端设备20发送完成训练的提示信息,用户可通过终端设备20再次登录模型训练系统10,通过网络接口单元105访问用户账号对应的存储单元103,获取训练好的深度学习模型。
本发明实施例中,数据处理单元的数据处理精度可以是半精度、单精度或双精度等,以满足不同用户的不同训练精度的要求。模型训练系统10可以配置不同数据处理精度的数据处理单元,例如,可配置一部分半精度的数据处理单元,一部分单精度的数据处理单元,模型训练系统10包含的各类型的数据处理单元的具体数量可根据实际需求进行配置,本发明实施例不作限定。
在上述应用场景下,终端设备20和模型训练系统10之间通过网络进行通信连接,该网络可以为局域网、广域网等。终端设备20可以是手机、平板电脑、掌上电脑(PersonalDigital Assistant,PDA)、笔记本电脑、个人计算机,等等,无论是哪种类型的终端设备,用户均可以通过在该终端设备20中安装的登录模型训练系统10的客户端进行登录,或者可通过终端设备20中的浏览器访问模型训练系统20的主页,并通过模型训练系统20的主页登录模型训练系统10。模型训练系统10可以部署在一台服务器、若干台服务器组成的服务器集群或云计算中心。
需要说明的是,实际应用中,一个数据处理单元可以对应一块芯片,或者,设定数量个数据处理单元可集成在同一芯片中,集成在同一芯片中的各个数据处理单元间可相互独立地执行不同的计算任务。同一芯片中可集成同种数据处理精度的数据处理单元,同一芯片也可以集成多种数据处理精度的数据处理单元。以V100芯片为例,其集成有多个半精度的数据处理单元和多个单精度的数据处理单元。本发明实施例中,集成有数据处理单元101的芯片不限于V100芯片,还可以是任意一种具备训练深度学习模型的计算能力的芯片,如Vota、NPU(Neural network Processing Unit,神经网络处理器)、TPU(TensorProcessing Unit,张量处理器)或FPGA(Field-Programmable Gate Array,现场可编程逻辑门阵列)等。
实际应用中,控制单元102和处理单元106可以是CPU(中央处埋器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable LogicDevice,复杂可编程逻辑器件)等。控制单元102也可以是处理单元106中设置的多个独立的进程,处理单元106为每个训练任务分配一个进程,以控制多个数据处理单元101执行训练任务。
当然,本发明实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其它可能的应用场景,本发明实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
为进一步说明本发明实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本发明实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本发明实施例提供的执行顺序。
下面结合图1所示的应用场景,对本发明实施例提供的技术方案进行说明。
参考图2,本发明实施例提供一种基于混合精度的深度学习模型训练方法,该方法用于图1所示的控制单元102中,其中一次的训练过程包括以下步骤:
S201、基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理,获得数据精度为第一数据精度的设定数量个第一权重梯度数据。
具体实施时,控制单元可调用第一数据处理单元执行步骤S201,第一数据处理单元的数据处理精度为第一数据精度,即第一数据处理单元能够处理第一数据精度的数据,经第一数据处理单元获得的数据的数据精度为第一数据精度。
具体实施时,可根据预先设置的数据组长度,将样本数据集中的样本数据划分成多个样本数据组。例如,预设的数据组长度为10,则10个样本数据划分为一个样本数据组,假设样本数据集中有1000个样本数据,则该样本数据集可划分为100个样本数据组。其中,数据组长度可由用户预先配置,或者由模型训练系统自动配置。第一数据处理单元可从样本数据集中获取多个样本数据组,基于上次训练得到的深度学习模型对多个样本数据组的样本数据进行数据处理,得到多个第一权重梯度数据。每一次训练过程中,第一数据处理单元获取的样本数据组的数量x是可配置的,x越大,基于该x个样本数据组确定的缩放系数越可靠,但随之付出的计算资源和时间也越多。x的具体取值,本领域技术人员根据模型训练的精度和速度并结合自己的经验具体确定,本发明实施例不作限定。x可以是用户预先配置的,也可以由模型训练系统自动配置。每一次训练过程中,第一数据处理单元可从样本数据集中随机获取x个样本数据组,也可以按顺序获取x个样本数据组。
具体地,样本数据包括训练数据和对应的标注信息,标注信息用于描述该训练数据属于的类别。针对x个样本数据组中每个样本数据组,第一数据处理单元将该样本数据组中的每个训练数据作为输入值输入深度学习模型,得到该样本数据组中的每个训练数据对应的预测值,根据损失函数确定每个训练数据的标注信息和预测值之间的损失值,损失值用于描述标注信息和预测值之间的差异程度,对该样本数据组中所有训练数据对应的损失值的均值进行求导运算,得到该样本数据组对应的第一权重梯度数据。通过上述方式得到x个样本数据组对应的x个第一权重梯度数据。
具体实施时,控制单元可控制多个第一数据处理单元协同执行步骤S201,以提高处理效率。
S202、根据设定数量个第一权重梯度数据和第二数据精度确定缩放系数,第一数据精度高于第二数据精度。
本发明实施例中,第二数据精度即训练深度学习模型时使用的第二数据处理单元的数据处理精度,经第二数据处理单元获得的数据的数据精度为第二数据精度。
具体实施时,控制单元可根据设定数量个第一权重梯度数据和第二数据精度确定缩放系数,以使基于该确定的缩放系数对设定数量个第一权重梯度数据进行放大后得到的值均在第二数据精度对应的数值范围内。
本发明实施例中,第一数据处理单元、第二数据处理单元分别对应两种具有不同的数据处理精度的数据处理单元。第一数据处理单元的数据处理精度高于第二数据处理单元的数据处理精度,例如,当第一数据处理单元的数据处理精度为半精度时,第二数据处理单元的数据处理精度高于半精度,具体可以为单精度或双精度等,当第一数据处理单元的数据处理精度为单精度时,第二数据处理单元的数据处理精度可以为双精度或更高的精度等。第二数据处理单元的数据处理能力高于第一数据处理单元的数据处理能力,数据处理能力即计算能力,用于衡量芯片的处理速度。例如,第一数据处理单元可以是V100芯片中的半精度数据处理单元,第二数据处理单元可以是V100芯片中的单精度数据处理单元,V100芯片中的半精度数据处理单元的计算能力为112Tflops(Floating-point operations persecond,每秒浮点运算次数),单精度数据处理单元是14Tflops,半精度数据处理单元的数据处理能力是单精度数据处理单元的数据处理能力的10倍。第一数据处理单元和第二数据处理单元可集成在同一芯片(如V100)中,也可以设置在不同的芯片中,具体可根据实际需求选择合适的芯片来实现第一数据处理单元和第二数据处理单元对应的功能,本发明实施例不作限定。
需要说明的是,在使用第二数据处理单元对深度学习模型进行训练时,本发明实施例中的缩放系数用于对训练过程中的损失值进行放大,以使基于放大后的损失值得到的权重梯度数据在第二数据处理单元的数据处理精度对应的数值范围内,缩放系数还用于对求导运算后得到的权重梯度数据进行缩小,以将权重梯度数据映射回第一数据处理单元的数据处理精度对应的数值范围内,从而得到真实的权重梯度数据。假设缩放系数等于K,则损失值乘上缩放系数后,被放大了K倍,对放大后的损失值求导后得到的权重梯度数据也被放大了K倍,然后,将权重梯度数据除以K,即可得到真实的权重梯度数据。
S203、基于样本数据集和缩放系数,对深度学习模型进行训练以更新深度学习模型的权重参数,获得本次训练的深度学习模型,缩放系数用于在训练深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大处理。
具体实施时,控制单元可调用第二数据处理单元和第一数据处理单元执行步骤S203。
本发明实施中,对深度学习模型进行训练,即利用样本数据集中的样本数据和缩放系数对深度学习模型的权重参数进行更新。其中,权重参数的一次更新过程包括以下步骤:首先,调用第二数据处理单元从样本数据集中获取一个样本数据组,将该本数据组中的训练数据逐一作为输入值输入深度学习模型,得到该样本数据组中每个训练数据对应的预测值,根据损失函数确定每个训练数据对应的标注信息和预测值之间的损失值,再计算该样本数据组中所有训练数据对应的损失值的平均值,得到该样本数据组对应的损失值,将该样本数据组对应的损失值乘上缩放系数,得到放大后的损失值,对该样本数据组得到的放大后的损失值,进行求导处理,得到该样本数据组对应的第二权重梯度数据,其中,预设值、损失值和第二权重梯度数据的数据精度均为第二数据精度;然后,调用第一数据处理单元将该样本数据组对应的第二权重梯度数据除以缩放系数,得到数据精度为第一数据精度的第三权重梯度数据,基于第三权重梯度数据对深度学习模型的权重参数进行更新。
具体实施时,在一次训练过程中,可以仅更新一次权重参数,也可以更新多次权重参数。
具体实施时,先确定第一次训练中使用的缩放系数,再基于确定的缩放系数对深度学习模型进行训练,直到完成第一次训练;然后,再确定第二次训练中使用的缩放系数,再基于第二次训练中使用的缩放系数对深度学习模型进行训练,直到完成第二次训练;如此循环,直到得到满足要求的深度学习模型。其中,在每一次训练中,均是对上一次训练得到深度学习模型进行进一步地训练,历经多次训练过程的迭代计算,获得满足要求的深度学习模型。
参考图12,其为深度学习模型训练过程中权重梯度数据的变化情况。图12中一个训练周期(epoch)等于使用样本数据集中的全部样本数据训练一次的过程,第1个训练周期中随着权重更新次数的增加,权重梯度数据在一个训练周期内的变化范围为0~100,到第10个训练周期后,权重梯度数据在一个训练周期内的变化范围缩小至0~60,到第25个训练周期后,权重梯度数据在一个训练周期内的变化范围已缩小至20~25,可见,随着训练周期的增加,权重梯度数据的大小差别很大。此外,第1个训练周期中权重梯度数据的波动幅度较大,即相邻的多次更新得到的权重梯度数据的大小变化较大,比如权重梯度数据更新到5000次左右时,权重梯度数据的波动幅度超过了10,而第25个训练周期中权重梯度数据的波动幅度就已经很小了。因此,从图12展示的数据可发现,训练过程中不同阶段获得的权重梯度数据的大小差别很大。基于上述情况,当采用现有的基于混合精度的深度学习模型训练方法来训练深度学习模型时,由于第1个训练周期内的权重梯度数据的变化范围很大,在第1个训练周期就可能发生权重梯度数据超出第二数据精度可表示范围的情况,并将深度学习模型带入局部最优解,导致训练得到的深度学习模型的精度较低。而采用本发明实施例提供的方法,在每一次训练前,通过调用第一数据处理单元得到第一数据精度的权重梯度数据,然后基于第一数据精度的权重梯度数据和第二数据精度,确定出合适的缩放系数,保证在一次训练过程中,防止出现第二数据处理单元无法处理权重梯度数据的情况,避免在训练过程中将深度学习模型带入局部最优解,提高深度学习模型的精度。
本发明实施例的基于混合精度的深度学习模型训练方法,在每次对深度学习模型进行训练之前,先调用第一数据处理单元基于上次训练得到的深度学习模型,对一定数量的样本数据进行处理,从而得到更新权重参数时使用的权重梯度数据,再根据上述权重梯度数据以及第二数据处理单元的数据处理精度,来确定本次训练过程中使用的缩放系数,确保在本次训练过程中,能够通过该缩放系数对数据精度为第二数据精度的损失值进行放大,从而保证放大后的损失值的求导结果(即权重梯度数据)落入第二数据处理单元的数据处理精度可表示的数值范围内,即能够通过第二数据处理单元得到准确的权重梯度数据,确保在本次训练中能够使用第二数据处理单元对深度学习模型进行训练,且保证训练结果的准确性和有效性。然后,调用第二数据处理单元和第一数据处理单元基于样本数据集和确定的缩放系数,对深度学习模型进行混合精度的训练,获得本次训练的深度学习模型。由于与第一数据处理单元相比,第二数据处理单元的数据处理能力更高且成本更低,因此,使用第二数据处理单元对深度学习模型进行训练,能够提高训练效率、降低训练成本,且基于第二数据处理单元预测缩放系数的机制,能够在训练过程中自适应地调整缩放系数,搜索到合理的缩放系数,保证了每一次训练得到的深度学习模型的有效性和准确定,避免大量无效训练,进一步提高了训练效率和训练精度。此外,本发明实施例的方法,在进行第一次训练时,即可自动调用第一数据处理单元来确定缩放系数,不需要用户设置缩放系数的初始值,避免了因初始值设置过大导致大量的无效计算,或因初始值设置过小导致深度学习模型无法收敛的情况,这既方便了用户,又提高了训练效率。
参考图3,本发明实施例提供另一种基于混合精度的深度学习模型训练方法,通过设定的每次训练时权重参数的更新次数,当最后一次权重参数更新后,就结束本次训练并自动触发下次训练过程,从而实现自动循环的自适应地调整缩放系数并进行模型训练的过程,整个训练过程具体包括以下步骤:
S301、基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理,得到设定数量个数据精度为第二数据精度的第一权重梯度数据。
上述步骤S301的具体实施方式可参考步骤S201,不再赘述。
S302、根据设定数量个第一权重梯度数据和第二数据精度,确定数据精度为第二数据精度的缩放系数,其中,第一数据精度高于第二数据精度。
S303、基于样本数据集和缩放系数,对深度学习模型进行训练以对深度学习模型的权重参数进行N次更新,其中,N为每次进行模型训练时的权重参数更新次数。
上述步骤S303的具体实施方式可参考步骤S203的具体实施方式,不再赘述。
S304、当第N次对权重参数的更新完成时,获得本次训练的深度学习模型并结束本次训练。
S305、当本次训练结束后,返回步骤S301,进行下一次训练,即每次训练开始之前,确认上次训练已经结束。
本发明实施例中,权重参数更新次数N可以由用户预先配置,也可以由模型训练系统自动配置。权重参数更新次数N表示一次训练过程中对深度学习模型的权重参数进行更新的最大次数,例如,N=10,则在一次训练过程中,对深度学习模型的权重参数更新10次后,本次训练结束,进入下一次训练,此时,需要调用第一数据处理单元重新确定缩放系数。N最小可以是1,当N=1时,每更新一次权重参数后,本次训练结束,进入下一次训练,调用第一数据处理单元重新确定缩放系数。N越小,缩放系数更新的越频繁,一次训练过程中,权重梯度数据超出第二数据处理单元的数据处理精度的概率越小,但是,频繁调用第一数据处理单元会增加使用的资源,降低训练效率。而N越大,一次训练过程中,权重梯度数据超出第二数据处理单元的数据处理精度的概率越大。N的具体取值可根据实际情况配置,本发明实施例不作限定。
通过预先配置的权重参数更新次数N,可控制一次训练过程中权重参数更新的次数,当完成对权重参数的N次更新后,即完成了本次训练,进入下一次训练,并重新确定缩放系数,基于重新确定的缩放系数对深度学习模型进行训练,保证每次训练都能使用合理的缩放系数。
具体实施时,用户可直接设置N,例如,用户可直接设置N为10。此外,还可以根据样本数据集包含的样本数据组的总数量的q倍确定N,用户可通过设置q来确定N,q的具体取值可根据实际情况配置,例如,q可以取1/8、1/4、1/2、1、1.5等值,本发明实施例不作限定。假设样本数据集包含的样本数据组的总数量为100,当q为1/4时,N为25,当q为1/2时,N为50。当然,q的具体取值也可以由模型训练系统自动配置。
具体地,可通过如下方式判断第N次对权重参数的更新是否完成:第一数据处理单元每更新一次权重参数,就向控制单元反馈一次完成更新的数据,控制单元记录本次训练过程中接收到的完成更新的数据的次数,若完成更新的数据的次数达到N,则确定第N次对权重参数的更新已经完成,即表明本次训练已经结束。在确定本次训练已经结束后,对记录的完成更新的数据的次数进行清零处理。或者,还可通过如下方式判断第N次对权重参数的更新是否完成:控制单元可记录第二数据处理单元获取的样本数据组的数量,当第二数据处理单元获取的样本数据组的数量达到N,且第二数据处理单元和第一数据处理单元已经处理完这N个样本数据组,则确定第N次对权重参数的更新是否完成。实际应用时,第二数据处理单元可以一次从存储单元中获取N个样本数据组,也可以一次获取一个样本数据组,处理完该样本数据组后,再获取下一个样本数据组。
在基于第一数据处理单元确定缩放系数的过程中,已经得到了设定数量个第一权重梯度数据,而基于这设定数量个第一权重梯度数据,只需做简单的运算即可对深度学习模型的权重参数进行更新。因此,为了进一步提高训练效率,可在每获得一个第一权重梯度数据时,基于获得的第一权重梯度数据对深度学习模型的权重参数进行一次更新,在确定好缩放系数后,再调用第二数据处理单元和第一数据处理单元,对基于第一权重梯度数据更新权重参数后的深度学习模型进行训练。为此,在上述任一实施例的基础上,本发明实施例还提供了另一种基于混合精度的深度学习模型训练方法,如图4所示,具体包括以下步骤:
S401、根据设定的更新次数M,基于样本数据集对上次训练得到的深度学习模型的权重参数进行M次更新,并获得M次更新过程中的M个数据精度为第一数据精度的第一权重梯度数据。
具体实施时,控制单元可调用第一数据处理单元执行步骤S401。步骤S401中,权重参数的一次更新过程包括以下步骤:首先,调用第一数据处理单元将一个本数据组中的训练数据逐一作为输入值输入深度学习模型,得到该样本数据组中每个训练数据对应的预测值;然后,根据损失函数确定每个训练数据对应的标注信息和预测值之间的损失值,对该样本数据组中所有训练数据对应的损失值的均值进行求导处理,得到该样本数据组对应的第一权重梯度数据;最后,基于第一权重梯度数据对深度学习模型的权重参数进行更新。完成一次权重参数的更新后,基于下一个样本数据组对上一次更新权重参数后得到的深度学习模型的权重参数进行更新,并获得本次更新过程中的第一权重梯度数据。如此循环更新M次后,获得进行M次更新后的深度学习模型和M个第一权重梯度数据。
本发明实施例中,更新次数M可以由用户预先配置,也可以由模型训练系统自动配置。M表示基于第一权重梯度数据进行权重参数更新的次数,也表示需要确定缩放系数需要的第一权重梯度数据的个数。M越大,得到的缩放系数越可靠,但随之付出的计算资源和时间也越多。例如,M可以取100、200或1000等数值,M的具体取值可根据训练精度、训练效率等实际需求进行配置,本发明实施例不作限定。需要说明的是,一般M不会超过整个样本数据集中样本数据组的总数量。
S402、根据步骤S401中获得的M个第一权重梯度数据和第二数据精度确定缩放系数,缩放系数用于在训练深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大。
S403、根据设定的权重参数更新次数N,基于样本数据集和缩放系数,对深度学习模型的权重参数进行N次更新。
上述步骤S403的具体实施方式可参考步骤S203的具体实施方式,不再赘述。
S404、当第N次对权重参数的更新完成时,获得本次训练的深度学习模型并结束本次训练。
S405、当本次训练结束后,返回步骤S401,进行下一次训练。
本发明实施例的方法,利用确定缩放系数过程中的第一权重梯度数据,预先对深度学习模型的权重参数进行更新,再调用第二数据处理单元和第一数据处理单元对基于第一权重梯度数据更新后的深度学习模型进行训练,获得本次训练的深度学习模型。通过复用确定缩放系数过程中的第一权重梯度数据,来更新深度学习模型,可进一步提高处理训练效率。
作为另一种可能的实施方式,可针对缩放系数设定生命周期,根据生命周期来判断一次训练是否结束,从而周期性、自适应地调整缩放系数并进行模型训练。为此,在步骤S201之前,本发明实施例的方法还包括以下步骤:根据针对缩放系数设定的生命周期,确定当前生命周期已经结束。为此,本发明实施例还提供了另一种基于混合精度的深度学习模型训练方法,如图5所示,具体包括以下步骤:
S501、当前生命周期开始时,基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理,得到设定数量个数据精度为第一数据精度的第一权重梯度数据。
上述步骤S501的具体实施方式可参考步骤S201,不再赘述。
S502、根据设定数量个第一权重梯度数据和第二数据精度确定缩放系数,缩放系数用于在训练深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大。
S503、基于样本数据集和缩放系数,对深度学习模型进行训练以更新深度学习模型的权重参数。
上述步骤S503的具体实施方式可参考步骤S203的具体实施方式,不再赘述。
S504、若根据针对缩放系数设定的生命周期,确定当前生命周期已经结束,获得本次训练的深度学习模型,返回步骤S501,进行下一次训练。
在一个生命周期内,可对深度学习模型的权重参数进行一次或多次更新,直至当前生命周期结束。
本发明实施例中的生命周期是可配置的。生命周期可以由用户预先配置,也可以由模型训练系统自动配置。具体实施时,生命周期可以是时间,例如,10分钟为一个生命周期。也可以将更新N次权重参数视为一个生命周期。
当生命周期为时间时,作为一种可能的实施方式,生命周期的起始时刻可以是确定完缩放系数的时刻,即执行完步骤S502的时刻。此时,生命周期不小于单位训练时长,单位训练时长为基于一个样本数据组对深度学习模型进行训练所需要的时间,生命周期可以是整数倍的单位训练时长。具体实施时,首先,确定第一个生命周期内使用的缩放系数,确定好缩放系数后,开始第一个生命周期,基于确定的缩放系数,利用样本数据对深度学习模型进行训练,直到第一个生命周期结束;然后,确定第二个生命周期内使用的缩放系数,确定好缩放系数后,开始二个生命周期,基于第二个生命周期内使用的缩放系数,利用样本数据对深度学习模型进行训练,直到第二个生命周期结束;如此循环多个生命周期,直到得到满足要求的深度学习模型。其中,在每个生命周期中,均是对上一个生命周期结束时得到深度学习模型进行进一步地训练,通过历经多个生命周期的迭代计算,获得满足要求的深度学习模型。
当生命周期为时间时,作为另一种可能的实施方式,生命周期的起始时刻也可以是上一个生命周期结束的时刻。此时,生命周期不小于执行步骤S501-S504的总时长。具体实施时,开始第一个生命周期,先确定第一个生命周期内使用的缩放系数,再基于确定的缩放系数,利用样本数据对深度学习模型进行训练,直到第一个生命周期结束;然后,开始第二个生命周期,确定第二个生命周期内使用的缩放系数,再基于第二个生命周期内使用的缩放系数,利用样本数据对深度学习模型进行训练,直到第二个生命周期结束;如此循环多个生命周期,直到得到满足要求的深度学习模型。
实际应用中,基于不同的样本数据组对深度学习模型进行训练所需要的时间不完全相同,因此,若当前生命周期已经结束,且基于当前的样本数据组还未完成训练,可立即停止训练,并放弃基于当前的样本数据组获得的中间结果,或者,继续基于当前的样本数据组完成对深度学习模型的训练。具体地,若当前生命周期已经结束,且基于当前的样本数据组还未完成训练,可预估基于当前的样本数据组完成训练的还需要花费的时间t,若t超过预设的时间阈值,则立即停止训练,并放弃基于当前的样本数据组获得的中间结果;若t没有超过预设的时间阈值,则继续基于当前的样本数据组完成对深度学习模型的训练。
本发明实施例的基于混合精度的深度学习模型训练方法,基于针对缩放系数设定的生命周期,能够自适应地调整缩放系数,保证每个生命周期都能搜索到合适的缩放系数,保证了训练结果的有效性和准确定,避免大量无效训练,进一步提高了训练效率和训练精度,降低用户的成本。此外,本发明实施例的方法,在第一个生命周期内,即可自动调用高精度的数据处理单元来确定缩放系数,不需要用户设置缩放系数的初始值,避免了因初始值设置过大导致大量的无效计算,或因初始值设置过小导致深度学习模型无法收敛的情况,这既方便了用户,也提高了训练效率。
进一步地,为了进一步提高训练效率,可在每获得一个第一权重梯度数据时,基于获得的第一权重梯度数据对深度学习模型的权重参数进行一次更新,在确定好缩放系数后,再调用第二数据处理单元和第一数据处理单元,对基于第一权重梯度数据更新权重参数后的深度学习模型进行训练。上述步骤中的基于获得的第一权重梯度数据对深度学习模型的权重参数进行一次更新的具体实施方式可参考图4所示的方案,不再赘述。
参考图6,在上述任一实施例的基础上,步骤S202中,根据设定数量个第一权重梯度数据和第二数据处理单元的数据处理精度确定缩放系数,具体包括如下步骤:
S601、确定设定数量个第一权重梯度数据的对数分布范围。
S602、确定对数分布范围的第一中轴线。
S603、确定第二数据精度的可表示数值范围的第二中轴线。
S604、确定第一中轴线和第二中轴线之间的偏移值。
S605、将与偏移值的差值在设定误差以内的数值作为缩放系数。
步骤S605中,设定误差可根据实际情况进行设置,本发明实施例不作限定。需要说明的是,设定误差的取值,需要保证取与偏移值的差值在设定误差以内的任一数值作为缩放系数,均可以使基于该缩放系数对设定数量个第一权重梯度数据进行放大后得到的值均在第二数据处理单元的数据处理精度对应的数值范围内,或超过预设比例的第一权重梯度数据被放大后的值在第二数据处理单元的数据处理精度对应的数值范围内。其中,预设比例可根据实际情况确定,本发明实施例不作限定,一般预设比例可选取较高的比例值,如99%、90%等。
实际应用中,为方便计算,可选取与偏移值的差值在设定误差以内的整数作为缩放系数,例如,偏移值为2.003498,设定误差为0.01,缩放系数的取值范围为1.9934898~2.013498,则缩放系数可以取2。或者,在取不到整数时,可以尽可能的减少缩放系数的位数,例如,偏移值为2.003498,设定误差为0.001,缩放系数的取值范围为2.002498~2.004498,则缩放系数可以取2.003。
参考图7,其为通过单精度的数据处理单元得到的权重梯度数据的对数分布范围的柱状图,柱状图的横轴为第一权重梯度数据的对数,柱状图的纵轴为单位分布范围内的第一权重梯度数据的数量占第一权重梯度数据的总数量的百分比,纵轴的单位为%。图7中还标出了半精度数可表示的数值范围,从图7中可明显看出,左边部分的第一权重梯度数据超出了半精度数可表示的数值范围,若左边部分的第一权重梯度数据用半精度数进行表示,则只能表示为“0”,这样会导致损失掉左边部分的第一权重梯度数据,进而影响深度学习模型的权重参数的更新。为此,针对图7所示的情况,可确定第一权重梯度数据的对数分布范围的第一中轴线,计算该第一中轴线和半精度数对应的数值范围的第二中轴线之间的偏移值,将偏移值确定为缩放系数。假设用A表示第二数据处理单元的数据处理精度对应的数值范围的第二中轴线对应的值,当选用的第二数据处理单元确定好后,A的值就可以预先确定好,在确定缩放系数的过程中,假设统计得到第一权重梯度数据的对数分布范围的第一中轴线对应的值为B,则缩放系数K=A-B。以图7中的数据为例,将图7中的权重梯度数据乘上K,相当于将图7中的权重梯度数据向右平移到半精度数可表示的数值范围内,也就是说,当权重梯度数据乘上K后,即可用半精度数表示,这样就避免损失左边部分的权重梯度数据,有助于提高模型训练的精度和准确度。
图7所示的方案仅是以通过统计对数分布范围来确定半精度数和单精度数之间的缩放系数为例,实际应用过程中,不限于图7所示的方案,还可以通过其他的方法来确定缩放系数,本发明实施例不作限定。例如,以确定半精度数和单精度数之间的缩放系数为例,可统计获得设定数量个单精度数的第一权重梯度数据的最小值和最大值,确定缩放系数,使得该最小值乘上缩放系数后大于半精度数对应的数值范围的最小值,且该最大值乘上缩放系数后大于半精度数对应的数值范围的最大值。
本发明实施例中的深度学习模型包括但不限于以下几种类型:CNN、RNN、LSTM、DNN、DBNs等神经网络。本发明实施例的方法可应用于各个领域的深度学习模型的训练,如图像识别、声纹识别、语音识别、自然语言处理等。
如图8A所示,基于与上述基于混合精度的深度学习模型训练方法相同的发明构思,本发明实施例还提供了一种基于混合精度的深度学习模型训练装置80,包括:第一处理模块801、缩放系数确定模块802和第二处理模块803。
第一处理模块801,用于调用第一数据处理单元基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理,得到设定数量个第一权重梯度数据。
缩放系数确定模块802,用于根据设定数量个第一权重梯度数据和第二数据处理单元的数据处理精度确定缩放系数,第二数据处理单元的数据处理精度低于第一数据处理单元的数据处理精度,且第二数据处理单元的数据处理能力高于第一数据处理单元的数据处理能力。
第二处理模块803,用于调用第二数据处理单元和第一数据处理单元基于样本数据集和缩放系数,对深度学习模型进行训练,获得本次训练的深度学习模型,缩放系数用于在训练深度学习模型的过程中对损失值进行放大处理。
可选地,第一处理模块801具体用于:根据设定的权重参数更新次数N,调用第二数据处理单元和第一数据处理单元基于样本数据集和缩放系数,对深度学习模型的权重参数进行N次更新;当第N次对权重参数的更新完成时,获得本次训练的深度学习模型并结束本次训练。
可选地,第一处理模块801还用于:分别基于每一个第一权重梯度数据,对深度学习模型的权重参数进行一次更新。
可选地,本发明实施例的基于混合精度的深度学习模型训练装置80还包括监控模块,用于确定上次训练已经结束时,触发第一处理模块;或者,用于根据针对缩放系数设定的生命周期,确定当前生命周期已经开始时触发第一处理模块;其中,上次训练得到的深度学习模型为上一个生命周期中训练得到的深度学习模型,本次训练的深度学习模型为当前生命周期中训练得到的深度学习模型。
可选地,缩放系数确定模块802具体用于:确定设定数量个第一权重梯度数据的对数分布范围;确定对数分布范围的第一中轴线;确定第二数据处理单元的数据处理精度的可表示数值范围的第二中轴线;确定第一中轴线和第二中轴线之间的偏移值;确定缩放系数为与偏移值的差值在设定误差以内的任一数值。
本发明实施例提的基于混合精度的深度学习模型训练装置与上述基于混合精度的深度学习模型训练方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
如图8B所示,基于与上述基于混合精度的深度学习模型训练方法相同的发明构思,本发明实施例还提供了一种基于混合精度的深度学习模型训练装置81,包括:第一处理模块811、缩放系数确定模块812和第二处理模块813。
第一处理模块811,用于基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理,得到设定数量个第一权重梯度数据。
缩放系数确定模块812,用于根据设定数量个第一权重梯度数据和第二数据精度,确定数据精度为第二数据精度的缩放系数,第一数据精度高于第二数据精度。
第二处理模块813,用于基于样本数据集和缩放系数,对深度学习模型进行训练以更新深度学习模型的权重参数,获得本次训练的深度学习模型,缩放系数用于在训练深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大处理。
可选地,第一处理模块811具体用于:基于样本数据集和缩放系数,对深度学习模型进行训练以对深度学习模型的权重参数进行N次更新,N为每次进行模型训练时的权重参数更新次数;当第N次对权重参数的更新完成时,获得本次训练的深度学习模型并结束本次训练。
可选地,第一处理模块具体用于通过如下步骤对深度学习模型的权重参数进行一次更新:
基于深度学习模型,得到样本数据集中的一组样本数据组中每个训练数据对应的预测值,预设值的数据精度为第二数据精度;
基于损失函数确定样本数据组中每个训练数据对应的标注信息和预测值之间的损失值;
将样本数据组中所有训练数据对应的损失值的均值乘上缩放系数,得到放大后的损失值的均值;
对放大后的损失值的均值进行求导处理,得到样本数据组对应的第二权重梯度数据,第二权重梯度数据的数据精度为第二数据精度;
将样本数据组对应的第二权重梯度数据除以缩放系数,得到数据精度为第一数据精度的第三权重梯度数据;
基于第三权重梯度数据对深度学习模型的权重参数进行一次更新。
可选地,第一处理模块811还用于:分别基于每一个第一权重梯度数据,对深度学习模型的权重参数进行一次更新。
可选地,本发明实施例的基于混合精度的深度学习模型训练装置80还包括监控模块,用于确定上次训练已经结束时,触发第一处理模块811;或者,用于根据针对缩放系数设定的生命周期,确定当前生命周期已经开始时触发第一处理模块811,其中,上次训练得到的深度学习模型为上一个生命周期中训练得到的深度学习模型,本次训练的深度学习模型为当前生命周期中训练得到的深度学习模型。
可选地,缩放系数确定模块812具体用于:确定设定数量个第一权重梯度数据的对数分布范围;确定对数分布范围的第一中轴线;确定第二数据精度的可表示数值范围的第二中轴线;确定第一中轴线和第二中轴线之间的偏移值;确定缩放系数为与偏移值的差值在设定误差以内的任一数值。
本发明实施例提的基于混合精度的深度学习模型训练装置与上述基于混合精度的深度学习模型训练方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
前述基于混合精度的深度学习模型训练方法的实施例涉及的各步骤的所有相关内容均可以援引到本发明实施例中的视频处理装置对应的功能模块的功能描述,在此不再赘述。
本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于与上述基于混合精度的深度学习模型训练方法相同的发明构思,本发明实施例还提供了一种电子设备,该电子设备具体可以为服务器内部的控制设备或控制系统。如图9所示,该电子设备90可以包括处理器901和存储器902。
处理器901可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
如图10所示,基于与上述基于混合精度的深度学习模型训练方法相同的发明构思,本发明实施例还提供了一种基于混合精度的深度学习模型训练系统100,具体包括:至少一个第一数据处理单元1001、至少一个第二数据处理单元1002、至少一个控制单元1003和至少一个存储单元1004。其中,第一数据处理单元1001的数据处理精度高于第二数据处理单元1002的数据处理精度,且第二数据处理单元1002的数据处理能力高于第一数据处理单元1001的数据处理能力。存储单元1004用于存储深度学习模型和样本数据集。控制单元1003用于执行本发明实施例中公开任一基于混合精度的深度学习模型训练方法。
本发明实施例中,存储单元1004还可以用来存储深度学习模型训练系统100中需要存储的其它数据,如训练过程中产生的一些中间数据、用户信息、用户对应的训练任务以及系统参数等等。控制单元1003可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)等处理器,多个控制单元1003可以集成在一个处理器内。在图10中,第一数据处理单元1001、第二数据处理单元1002、控制单元1003和存储单元1004之间通过总线1005连接,总线1005在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线1005可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
具体实施时,如图11所示,深度学习模型训练系统100中的第一数据处理单元1001和第二数据处理单元1002可集成在同一个芯片1006中。深度学习模型训练系统100中可设置多个芯片1006,一个芯片1006中集成至少一个第一数据处理单元1001和至少一个第二数据处理单元1002。
本发明实施例提供了一种计算机可读存储介质,用于储存为上述电子设备所用的计算机程序指令,其包含用于执行上述基于混合精度的深度学习模型训练方法的程序。
上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。

Claims (12)

1.一种基于混合精度的深度学习模型训练方法,其特征在于,包括:
在对象通过终端设备登录之后,通过终端设备向所述对象展示多个模型训练服务;
响应于所述对象针对一个模型训练服务的选择操作,通过所述终端设备向所述对象提供上传深度学习模型和样本数据集的接口;
通过所述接口接收对象上传的深度学习模型和样本数据集,并采用如下方式利用所述样本数据集对所述深度学习模型进行训练:
调用第一数据处理单元,基于上次训练得到的深度学习模型对所述样本数据集中的样本数据进行数据处理,获得数据精度为第一数据精度的设定数量个第一权重梯度数据;
根据所述设定数量个第一权重梯度数据和第二数据处理单元的第二数据精度,确定数据精度为第二数据精度的缩放系数,所述第一数据精度高于所述第二数据精度;
基于所述样本数据集和所述缩放系数,对所述深度学习模型进行训练以更新所述深度学习模型的权重参数,获得本次训练的深度学习模型,所述缩放系数用于在训练所述深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述样本数据集和所述缩放系数,对所述深度学习模型进行训练以更新所述深度学习模型的权重参数,获得本次训练的深度学习模型,具体包括:
基于所述样本数据集和所述缩放系数,对所述深度学习模型进行训练以对所述深度学习模型的权重参数进行N次更新,所述N为每次进行模型训练时的权重参数更新次数;
当第N次对权重参数的更新完成时,获得本次训练的深度学习模型并结束本次训练。
3.根据权利要求2所述的方法,其特征在于,每一次对所述深度学习模型的权重参数进行更新,具体包括:
基于所述深度学习模型,得到所述样本数据集中的一组样本数据组中每个训练数据对应的预测值,所述预测值的数据精度为第二数据精度;
基于损失函数确定所述样本数据组中每个训练数据对应的标注信息和预测值之间的损失值;
将所述样本数据组中所有训练数据对应的损失值的均值乘上所述缩放系数,得到放大后的损失值的均值;
对放大后的损失值的均值进行求导处理,得到所述样本数据组对应的第二权重梯度数据,所述第二权重梯度数据的数据精度为第二数据精度;
将所述样本数据组对应的第二权重梯度数据除以所述缩放系数,得到数据精度为第一数据精度的第三权重梯度数据;
基于所述第三权重梯度数据对所述深度学习模型的权重参数进行一次更新。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
分别基于每一个第一权重梯度数据,对所述深度学习模型的权重参数进行一次更新。
5.根据权利要求2所述的方法,其特征在于,所述基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理之前,还包括:
确定上次训练已经结束。
6.根据权利要求1所述的方法,其特征在于,所述基于上次训练得到的深度学习模型对样本数据集中的样本数据进行数据处理之前,还包括:
根据针对所述缩放系数设定的生命周期,确定当前生命周期已经开始;其中,所述上次训练得到的深度学习模型为上一个生命周期中训练得到的深度学习模型,所述本次训练的深度学习模型为当前生命周期中训练得到的深度学习模型。
7.根据权利要求1至6任一所述的方法,其特征在于,所述根据所述设定数量个第一权重梯度数据和第二数据精度,确定数据精度为第二数据精度的缩放系数,具体包括:
确定所述设定数量个第一权重梯度数据的对数分布范围;
确定所述对数分布范围的第一中轴线;
确定第二数据精度的可表示数值范围的第二中轴线;
确定所述第一中轴线和所述第二中轴线之间的偏移值;
将与所述偏移值的差值在设定误差以内的数值作为所述缩放系数。
8.一种基于混合精度的深度学习模型训练装置,其特征在于,包括:
第一处理模块,用于在对象通过终端设备登录之后,通过终端设备向所述对象展示多个模型训练服务,响应于所述对象针对一个模型训练服务的选择操作,通过所述终端设备向对象提供上传深度学习模型和样本数据集的接口,通过所述接口接收所述对象上传的深度学习模型和样本数据集,并执行如下操作:调用第一数据处理单元,基于上次训练得到的深度学习模型对所述样本数据集中的样本数据进行数据处理,获得数据精度为第一数据精度的设定数量个第一权重梯度数据;
缩放系数确定模块,用于根据所述设定数量个第一权重梯度数据和第二数据处理单元的第二数据精度,确定数据精度为第二数据精度的缩放系数,所述第一数据精度高于所述第二数据精度;
第二处理模块,用于基于所述样本数据集和所述缩放系数,对所述深度学习模型进行训练以更新所述深度学习模型的权重参数,获得本次训练的深度学习模型,所述缩放系数用于在训练所述深度学习模型的过程中对数据精度为第二数据精度的损失值进行放大处理。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
10.一种基于混合精度的深度学习模型训练系统,其特征在于,包括:至少一个第一数据处理单元、至少一个第二数据处理单元、至少一个控制单元和至少一个存储单元;所述第一数据处理单元的数据处理精度高于所述第二数据处理单元的数据处理精度,且所述第二数据处理单元的数据处理能力高于所述第一数据处理单元的数据处理能力;
所述存储单元用于存储深度学习模型和样本数据集;
所述控制单元用于执行权利要求1至7中任一项所述方法的步骤。
11.根据权利要求10所述的系统,其特征在于,所述系统包括至少一个芯片,所述芯片中包括至少一个所述第一数据处理单元和至少一个所述第二数据处理单元。
12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN201910313866.0A 2019-04-18 2019-04-18 基于混合精度的深度学习模型训练方法、装置及系统 Active CN110163368B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910313866.0A CN110163368B (zh) 2019-04-18 2019-04-18 基于混合精度的深度学习模型训练方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910313866.0A CN110163368B (zh) 2019-04-18 2019-04-18 基于混合精度的深度学习模型训练方法、装置及系统

Publications (2)

Publication Number Publication Date
CN110163368A CN110163368A (zh) 2019-08-23
CN110163368B true CN110163368B (zh) 2023-10-20

Family

ID=67639607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910313866.0A Active CN110163368B (zh) 2019-04-18 2019-04-18 基于混合精度的深度学习模型训练方法、装置及系统

Country Status (1)

Country Link
CN (1) CN110163368B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110782043B (zh) * 2019-10-29 2023-09-22 腾讯科技(深圳)有限公司 模型优化方法、装置、存储介质及服务器
CN110851581B (zh) * 2019-11-19 2022-11-11 东软集团股份有限公司 一种模型参数确定方法、装置、设备及存储介质
CN113139650A (zh) * 2020-01-20 2021-07-20 阿里巴巴集团控股有限公司 深度学习模型的调优方法和计算装置
CN111291886B (zh) * 2020-02-28 2022-02-18 支付宝(杭州)信息技术有限公司 神经网络模型的融合训练方法及装置
CN111274406A (zh) * 2020-03-02 2020-06-12 湘潭大学 一种基于深度学习混合模型的文本分类方法
WO2022007879A1 (zh) * 2020-07-09 2022-01-13 北京灵汐科技有限公司 权重精度配置方法和装置、计算机设备、存储介质
CN111831356B (zh) * 2020-07-09 2023-04-07 北京灵汐科技有限公司 权重精度配置方法、装置、设备及存储介质
CN111967608A (zh) * 2020-08-06 2020-11-20 北京灵汐科技有限公司 数据处理方法、装置、设备及存储介质
CN111915195B (zh) * 2020-08-06 2023-12-01 南京审计大学 一种结合区块链及大数据的公共电力资源调配方法
CN112508191A (zh) * 2020-12-14 2021-03-16 北京地平线信息技术有限公司 训练深度学习模型的方法及装置、电子设备及存储介质
CN112598078B (zh) * 2020-12-28 2024-04-19 北京达佳互联信息技术有限公司 混合精度训练方法、装置、电子设备及存储介质
CN112908446B (zh) * 2021-03-20 2022-03-22 张磊 一种内分泌科药液自动混合控制方法
TWI810602B (zh) * 2021-07-07 2023-08-01 友達光電股份有限公司 基於機械學習的關鍵因子自動尋找方法
CN114245140B (zh) * 2021-11-30 2022-09-02 慧之安信息技术股份有限公司 一种基于深度学习的码流预测方法和装置
CN114266944B (zh) * 2021-12-23 2022-08-12 安徽中科锟铻量子工业互联网有限公司 快速模型训练结果检验系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018184224A1 (en) * 2017-04-07 2018-10-11 Intel Corporation Methods and systems for boosting deep neural networks for deep learning
CN108734266A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质
CN109034365A (zh) * 2018-07-06 2018-12-18 电子科技大学 深度学习模型的训练方法及装置
CN109145854A (zh) * 2018-08-31 2019-01-04 东南大学 一种基于级联卷积神经网络结构的人脸检测方法
CN109271522A (zh) * 2018-11-20 2019-01-25 深圳大学 基于深度混合模型迁移学习的评论情感分类方法及系统
CN109598344A (zh) * 2018-12-14 2019-04-09 北京字节跳动网络技术有限公司 模型生成方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160127402A1 (en) * 2014-11-04 2016-05-05 Patternex, Inc. Method and apparatus for identifying and detecting threats to an enterprise or e-commerce system
US11501139B2 (en) * 2017-05-03 2022-11-15 Intel Corporation Scaling half-precision floating point tensors for training deep neural networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018184224A1 (en) * 2017-04-07 2018-10-11 Intel Corporation Methods and systems for boosting deep neural networks for deep learning
CN108734266A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质
CN109034365A (zh) * 2018-07-06 2018-12-18 电子科技大学 深度学习模型的训练方法及装置
CN109145854A (zh) * 2018-08-31 2019-01-04 东南大学 一种基于级联卷积神经网络结构的人脸检测方法
CN109271522A (zh) * 2018-11-20 2019-01-25 深圳大学 基于深度混合模型迁移学习的评论情感分类方法及系统
CN109598344A (zh) * 2018-12-14 2019-04-09 北京字节跳动网络技术有限公司 模型生成方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于压缩卷积神经网络的人脸检测方法;朱越;中国优秀硕士学位论文全文数据库 信息科技辑(第08期);全文 *

Also Published As

Publication number Publication date
CN110163368A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
CN110163368B (zh) 基于混合精度的深度学习模型训练方法、装置及系统
US20230252327A1 (en) Neural architecture search for convolutional neural networks
EP3446260B1 (en) Memory-efficient backpropagation through time
US20190370659A1 (en) Optimizing neural network architectures
CN110728317A (zh) 决策树模型的训练方法、系统、存储介质及预测方法
US10984319B2 (en) Neural architecture search
CN111444009A (zh) 一种基于深度强化学习的资源分配方法及装置
US20120011087A1 (en) Methods and systems for replaceable synaptic weight storage in neuro-processors
JP2019528502A (ja) パターン認識に適用可能なモデルを最適化するための方法および装置ならびに端末デバイス
US11455523B2 (en) Risk evaluation method, computer-readable recording medium, and information processing apparatus
CN112990444B (zh) 一种混合式神经网络训练方法、系统、设备及存储介质
CN110309918A (zh) 神经网络在线模型的验证方法、装置和计算机设备
CN110874626A (zh) 一种量化方法及装置
CN105659260A (zh) 动态地指派和检查突触延迟
US11188454B2 (en) Reduced memory neural network training
CN111738407B (zh) 一种基于深度学习的钟差预测方法、装置、介质及终端
CN110738318B (zh) 网络结构运行时间评估及评估模型生成方法、系统和装置
CN113159926A (zh) 贷款业务的还款日期确定方法及装置
CN109840790B (zh) 用户流失的预测方法、装置及计算机设备
CN115481562B (zh) 多并行度优化方法、装置、识别方法和电子设备
CN114969636B (zh) 一种模型推荐的方法、装置和计算机设备
US11514981B1 (en) Programming devices and weights in hardware
CN115618221A (zh) 模型训练方法、装置、存储介质及电子设备
CN117952695A (zh) 一种资源消耗量的确定方法和装置
CN115688893A (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
GR01 Patent grant
GR01 Patent grant