CN112598078B - 混合精度训练方法、装置、电子设备及存储介质 - Google Patents
混合精度训练方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112598078B CN112598078B CN202011606558.6A CN202011606558A CN112598078B CN 112598078 B CN112598078 B CN 112598078B CN 202011606558 A CN202011606558 A CN 202011606558A CN 112598078 B CN112598078 B CN 112598078B
- Authority
- CN
- China
- Prior art keywords
- training
- precision
- batch
- batches
- characterization
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000012512 characterization method Methods 0.000 claims abstract description 139
- 238000007667 floating Methods 0.000 claims description 18
- 238000002372 labelling Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 239000000203 mixture Substances 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000013136 deep learning model Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 208000031481 Pathologic Constriction Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 208000037804 stenosis Diseases 0.000 description 1
- 230000036262 stenosis Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
本公开关于一种混合精度训练方法、装置、电子设备及存储介质,该方法包括:获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征模型拟合的难易程度,所述训练数据集是由基于多媒体数据生成的多个训练样本所组成的;根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次;根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。本公开可以避免梯度的下溢出,解决了相关技术中在训练过程中梯度下溢出造成训练精度损失的问题,提高模型预测结果的准确性。
Description
技术领域
本公开涉及机器学习技术,尤其涉及一种混合精度训练方法、装置、电子设备及存储介质。
背景技术
混合精度训练方法已经广泛应用于深度学习网络的训练加速中,通过利用IEEE16位半精度值计算和存储权重和梯度,它能够充分利用GPU中的张量核硬件单元实现数学运算的加速,在近期的GPU中,半精度的计算吞吐量可以是单精度的2-8倍。同时它还能大幅降低训练时模型的内存占用,从而使得更大模型的训练成为可能。
与单精度浮点型使用四个字节相比,半精度浮点型只使用两个字节,使得它天然的存储空间是单精度浮点型的一半。这也使得半精度浮点型的数值表示范围只有2^(-24)~65504。在深度学习模型训练中,半精度浮点型狭窄的表示范围会使得训练中出现上溢出和下溢出现象。尤其在训练后期,网络的梯度乘以学习率会远小于半精度的表示范围从而使得梯度丢失,影响模型的训练。
相关技术中,可以通过比例因子对梯度进行等比放大使其落入半精度范围内。但是,比例因子scale的取值一般是通过经验选取的常量值。由于一个批次中不同样本对应的梯度差异很大,导致小梯度样本的梯度和大梯度样本的梯度仍然不能在半精度浮点数的表达范围内,出现上溢出或下溢出的情况,从而造成训练精度的损失。例如,在对多媒体数据进行属性预测时,如果采用上述混合精度训练,训练过程中会存在训练精度损失,这会使得模型的属性预测准确性降低。
发明内容
本公开提供一种混合精度训练方法、装置、电子设备及存储介质,以至少解决相关技术中在训练过程中梯度溢出造成训练精度损失的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种混合精度训练方法,包括:
获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征模型拟合的难易程度,所述训练数据集是由基于多媒体数据生成的多个训练样本所组成的;
根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次;
根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
可选的,所述表征因子包括梯度均值或损失值,同一批次中训练样本的表征因子与同一比例因子相乘后的结果在半精度浮点数表达范围内。
可选的,所述根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次,包括:
根据所述表征因子,对所述训练数据集中各个训练样本标识进行排序;
按照每个批次包含的预设样本数,从所述排序后的训练样本标识中获取连续预设样本数的训练样本标识作为一个批次,得到多个批次。
可选的,还包括:
在进行第一轮次的混合精度训练时,按照每个批次包含的预设样本数,将训练数据集划分为多个批次,并根据该多个批次和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
可选的,在根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练之前,还包括:
随机打乱所述多个批次的顺序,并将打乱顺序后得到的多个批次的顺序作为所述多个批次的训练顺序。
可选的,在根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练之前,还包括:
将每个批次中设定位置的训练样本所对应的表征因子作为该批次的表征因子;
根据多个批次的表征因子,确定所述多个批次的训练顺序。
可选的,根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测,包括:
将前一批次训练得到的模型的单精度权重转换为半精度权重;
基于所述半精度权重和所述模型的网络结构,对当前批次的训练样本中的多媒体数据进行属性预测,得到输出数据,并根据输出数据和训练样本中的标注数据确定单精度损失;
将所述单精度损失乘以当前批次的比例因子,得到半精度损失;
通过反向传播算法,根据所述半精度损失确定半精度梯度;
将所述半精度梯度除以当前批次的比例因子,得到单精度梯度;
根据所述单精度梯度更新所述单精度权重。
可选的,还包括:
若当前批次的训练样本对应的半精度梯度有溢出,则对所述比例因子进行调整。
可选的,所述对所述比例因子进行调整,包括:
根据当前批次训练样本对应的半精度梯度的最大绝对值,对所述比例因子进行调整;或者
将所述比例因子乘以或除以预设倍数因子。
可选的,还包括:
对训练数据集分批次进行混合精度训练时,根据每个训练样本对应的输出数据和训练样本中的标注数据更新训练样本标识对应的表征因子。
可选的,所述训练样本标识对应的表征因子通过键值对的数据结构进行保存。
根据本公开实施例的第二方面,提供一种混合精度训练装置,包括:
表征因子获取模块,被配置为获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征模型拟合的难易程度,所述训练数据集是由基于多媒体数据生成的多个训练样本所组成的;
批次划分模块,被配置为根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次;
混合精度训练模块,被配置为根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
可选的,所述表征因子包括梯度均值或损失值,同一批次中训练样本的表征因子与同一比例因子相乘后的结果在半精度浮点数表达范围内。
可选的,所述批次划分模块包括:
训练样本排序单元,被配置为根据所述表征因子,对所述训练数据集中各个训练样本标识进行排序;
批次划分单元,被配置为按照每个批次包含的预设样本数,从所述排序后的训练样本标识中获取连续预设样本数的训练样本标识作为一个批次,得到多个批次。
可选的,所述装置还包括:
初次训练模块,被配置为在进行第一轮次的混合精度训练时,按照每个批次包含的预设样本数,将训练数据集划分为多个批次,并根据该多个批次和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
可选的,所述装置还包括:
批次顺序打乱模块,被配置为随机打乱所述多个批次的顺序,并将打乱顺序后得到的多个批次的顺序作为所述多个批次的训练顺序。
可选的,所述装置还包括:
批次表征因子确定模块,被配置为将每个批次中设定位置的训练样本所对应的表征因子作为该批次的表征因子;
训练顺序确定模块,被配置为根据多个批次的表征因子,确定所述多个批次的训练顺序。
可选的,所述混合精度训练模块包括:
权重精度转换单元,被配置为将前一批次训练得到的模型的单精度权重转换为半精度权重;
属性预测单元,被配置为基于所述半精度权重和所述模型的网络结构,对当前批次的训练样本中的多媒体数据进行属性预测,得到输出数据,并根据输出数据和训练样本中的标注数据确定单精度损失;
半精度损失确定单元,被配置为将所述单精度损失乘以当前批次的比例因子,得到半精度损失;
反向传播单元,被配置为通过反向传播算法,根据所述半精度损失确定半精度梯度;
单精度梯度确定单元,被配置为将所述半精度梯度除以当前批次的比例因子,得到单精度梯度;
权重更新单元,被配置为根据所述单精度梯度更新所述单精度权重。
可选的,所述装置还包括:
比例因子调整模块,被配置为若当前批次的训练样本对应的半精度梯度有溢出,则对所述比例因子进行调整。
可选的,所述比例因子调整模块具体被配置为:
根据当前批次训练样本对应的半精度梯度的最大绝对值,对所述比例因子进行调整;或者
将所述比例因子乘以或除以预设倍数因子。
可选的,所述装置还包括:
表征因子更新模块,被配置为对训练数据集分批次进行混合精度训练时,根据每个训练样本对应的输出数据和训练样本中的标注数据更新训练样本标识对应的表征因子。
可选的,所述训练样本标识对应的表征因子通过键值对的数据结构进行保存。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的混合精度训练方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的混合精度训练方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如第一方面所述的混合精度训练方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开通过获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,根据各个训练样本标识对应的表征因子,将训练数据集中的训练样本划分为多个批次,根据多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过模型分别对每个批次的训练样本中的多媒体数据进行属性预测,由于按照上一轮次训练得到的各个训练样本标识对应的表征因子来将训练数据集划分为多个批次,每个批次中的训练样本的表征因子接近,从而一个批次中的训练样本使用同一比例因子可以避免梯度的下溢出,解决了相关技术中在训练过程中梯度下溢出造成训练精度损失的问题,从而在提高模型训练速度的基础上提高了模型的精度,减少了训练过程中对计算资源的占用,同时在训练过程中使得梯度在有限的计算资源的基础上能够保存有效数值,避免了由于梯度超过半精度表达范围而导致的溢出,即避免了梯度存储不正确的问题,而且在保证梯度不溢出的基础上可以进一步加快模型的训练速度,提高模型预测结果的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种混合精度训练方法的流程图;
图2是根据一示例性实施例示出的一种混合精度训练方法的流程图;
图3是根据一示例性实施例示出的一种混合精度训练方法的流程图;
图4是根据一示例性实施例示出的一种混合精度训练装置的框图;
图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
相关技术中,主要采用loss scale的方法来解决混合精度训练的溢出问题。由于很多梯度的值在半精度浮点型表示范围外,会通过比例因子对梯度进行等比放大使其落入半精度范围内。但是,比例因子scale的取值一般通过经验选取8到32000之间的常量值,也可以通过对上一轮次训练得到的梯度进行统计得到本轮次训练的比例因子的初值。在混合精度训练中,比例因子scale以一定初值直接进行计算,并根据当前批次中的最大梯度的绝对值进行调整,但是,一个批次中不同样本对应的梯度差异很大,若只由最大的梯度决定比例因子可能会导致比例因子过小,大量小梯度样本的梯度乘以该比例因子仍然小于半精度浮点数的表达范围,出现下溢出为零,从而造成训练精度的损失。本公开通过如下技术方案可以解决该技术问题。
图1是根据一示例性实施例示出的一种混合精度训练方法的流程图,如图1所示,该混合精度训练方法用于进行深度学习模型训练的电子设备中,可以应用于计算机视觉、自然语言处理或语音识别等领域中,包括以下步骤。
在步骤S11中,获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征模型拟合的难易程度,所述训练数据集是由基于多媒体数据生成的多个训练样本所组成的。
其中,所述模型为深度学习模型,用于对多媒体数据进行属性预测,所述属性预测例如可以是分类预测,或者,还可以是点击率预测,或者,在多媒体数据为图像数据时还可以是图像分割结果预测或者图像识别结果预测等。
深度学习模型往往需要在同一训练数据集上训练多个轮次,而在一个轮次中又需要分为多个批次进行训练。在进行当前轮次的训练前,可以使用前一轮次训练时得到的各个训练样本对应的表征因子来划分当前轮次的训练批次,这时首先获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,后续可以按照表征因子将训练数据集划分为多个批次。
其中,所述表征因子可以包括梯度均值或损失值。可以定义表征因子的绝对值代表模型拟合的难易程度,绝对值大的样本为难样本,绝对值小的样本为容易样本。所述训练数据集可以是由基于多媒体数据生成的多个训练样本所组成的,所述多媒体数据包括视频数据、图像数据、音频数据和文本数据中的至少一种数据。
在步骤S12中,根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次。
根据各个训练样本标识对应的表征因子,将训练数据集中的训练样本划分为多个批次,每个批次中可以包含相同数量的训练样本。其中,同一批次中训练样本的表征因子与同一比例因子相乘后的结果在半精度浮点数表达范围内。在对训练数据集中的训练样本划分批次时,可以将表征因子的绝对值相近的多个训练样本划分为一个批次,这样,一个批次中的训练样本的表征因子与同一比例因子相乘后的结果在半精度浮点数表达范围内,从而避免了梯度溢出的问题。
在一个示例性实施例中,所述根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次,包括:根据所述表征因子,对所述训练数据集中各个训练样本标识进行排序;按照每个批次包含的预设样本数,从所述排序后的训练样本标识中获取连续预设样本数的训练样本标识作为一个批次,得到多个批次。
可以按照表征因子的绝对值从小到大的顺序,对训练数据集中各个训练样本标识进行排序;也可以按照表征因子的绝对值从大到小的顺序,对训练数据集中各个训练样本标识进行排序。通过根据表征因子的绝对值对各个训练样本标识进行排序,得到按照训练样本难易程度排序的训练样本标识。
根据表征因子的绝对值,对训练数据集中各个训练样本标识进行排序时可以采用快速排序、堆排序或归并排序等排序方式。
在根据表征因子的绝对值对训练数据集中各个训练样本标识进行排序后,可以将训练样本标识划分为多个批次,即划分为多组,在进行批次的划分时,可以从排序后的训练样本标识的开始位置或结尾位置连续获取预设样本数的训练样本标识,将这连续的预设样本数的训练样本标识作为一个批次,之后再获取连续预设样本数的训练样本标识,作为下一个批次,这样循环获取不同批次的训练样本标识,得到多个批次。这样划分得到的多个批次,每个批次中训练样本标识对应的表征因子较为接近,使得批次内样本的难易程度相当,梯度均值grad的绝对值|grad|接近,从而使用一个比例因子可以避免梯度的下溢出。
在步骤S13中,根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
确定所述多个批次的训练顺序,并按照训练顺序对训练数据集分批次进行混合精度训练,即将一个训练批次的训练样本的数据输入模型,通过模型对训练样本进行属性预测,并基于模型的输出和训练样本的标注确定损失值,基于损失值确定梯度,并基于梯度对模型的权重进行更新,这个过程中需要进行单精度和半精度的转换,同时需要根据每个批次对应的比例因子对损失和梯度进行等比缩放,以避免梯度的溢出,这样可以提高训练速度,同时可以减少对计算资源的占用。每个批次对应的比例因子可以相同,也可以不同,具体可以在每个批次的训练过程中动态调整比例因子,这样可以避免梯度溢出。
在一个轮次中所有批次的训练样本均训练结束后,判断是否达到预先设定的精度指标或训练轮数,如果未达到,则循环执行步骤S11至步骤S13,如果已达到,则结束训练。模型训练完成后可以用于对多媒体数据进行属性预测,例如可以对多媒体数据中的图像数据进行图像识别预测、图像分割预测等,或者可以对多媒体数据中的语音数据进行语音识别预测等,或者还可以对多媒体数据进行点击率预测等。
本公开的技术方案可以应用于计算机视觉、自然语言处理、语音识别等算法的混合精度训练中,提高这些算法训练的精度和速度。以计算机视觉算法训练为例,模型需要在同一个数据集上训练多个轮次(一般大于一百轮)才能收敛,在每个轮次的训练中记录样本标识与对应的表征因子(如梯度均值)的绝对值(如|grad|),并基于表征因子的绝对值对样本进行排序,使得表征因子的绝对值接近的样本位于同一批次中供下一轮次的训练。
本示例性实施例提供的混合精度训练方法,通过获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,根据各个训练样本标识对应的表征因子,将训练数据集中的训练样本划分为多个批次,根据多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过模型分别对每个批次的训练样本中的多媒体数据进行属性预测,由于按照上一轮次训练得到的各个训练样本标识对应的表征因子来将训练数据集划分为多个批次,每个批次中的训练样本的表征因子接近,从而一个批次中的训练样本使用同一比例因子可以避免梯度的下溢出,解决了相关技术中在训练过程中梯度下溢出造成训练精度损失的问题,从而在提高模型训练速度的基础上提高了模型的精度,减少了训练过程中对计算资源的占用,同时在训练过程中使得梯度在有限的计算资源的基础上能够保存有效数值,避免了由于梯度超过半精度表达范围而导致的溢出,即避免了梯度存储不正确的问题,而且在保证梯度不溢出的基础上可以进一步加快模型的训练速度,提高模型预测结果的准确性。
在上述技术方案的基础上,所述方法还包括:
在进行第一轮次的混合精度训练时,按照每个批次包含的预设样本数,将训练数据集划分为多个批次,并根据该多个批次和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
在进行第一轮次的混合精度训练时,由于还无法获知训练数据集中每个训练样本标识对应的表征因子,这时可以按照混合精度训练的传统方式划分批次,即按照每个批次包含的预设样本数,将训练数据集随机划分为多个批次,或者将训练数据集按照训练样本标识的顺序划分为多个批次,并基于划分后的多个批次和每个批次对应的比例因子对训练数据集进行混合精度训练,在进行每个批次的训练时可以动态调整比例因子。在训练过程中可以记录训练样本标识和对应的梯度均值,或者在一轮次训练结束后使用训练得到的模型计算训练样本标识对应的损失值,得到训练数据集中所有训练样本标识对应的梯度均值或损失值,将训练样本标识对应的梯度均值或损失值作为训练样本标识对应的表征因子,从而在进行下一轮次的训练时可以使用该表征因子对将训练样本划分为多个批次。通过在进行第一轮次的混合精度训练时按照传统方式将训练数据集划分为多个批次并进行训练,从而训练结束后可以得到每个训练样本标识对应的表征因子,为后一轮次训练时划分批次提供依据。
在上述技术方案的基础上,在根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练之前,还包括:随机打乱所述多个批次的顺序,并将打乱顺序后得到的多个批次的顺序作为所述多个批次的训练顺序。
由于在将训练数据集划分为多个批次时,是按照表征因子来划分的多个批次,例如按照表征因子的绝对值进行排序后顺序获取的多个批次,从而各个批次存在着表征因子的大小顺序,这时为了增加训练样本的随机性,可以将不同批次的训练样本随机打乱顺序,并将打乱顺序后得到的多个批次的顺序作为多个批次的训练顺序,按照训练顺序将不同批次的训练数据输入模型进行混合精度训练。在随机打乱多个批次的顺序时可以采用洗牌算法来实现。通过随机打乱多个批次的顺序,可以增加训练样本的随机性。
在上述技术方案的基础上,在根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练之前,还包括:
将每个批次中设定位置的训练样本所对应的表征因子作为该批次的表征因子;根据多个批次的表征因子,确定所述多个批次的训练顺序。
由于在划分多个批次时,是按照表征因子进行划分的,所以每个批次的训练样本的表征因子接近,从而多个批次的训练样本的表征因子是有大小顺序的,这时可以将一个批次的第一个、最后一个或者其他设定位置的训练样本的表征因子作为该批次的表征因子,并根据该表征因子从小到大的顺序,确定多个批次的训练顺序,即将多个批次的表征因子从小到大的顺序,作为多个批次的训练顺序。通过这样的训练顺序可以按照从易到难的顺序先对容易样本进行混合精度训练,再对难样本进行混合精度训练。
在上述技术方案的基础上,根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测,包括:将前一批次训练得到的模型的单精度权重转换为半精度权重;基于所述半精度权重和所述模型的网络结构,对当前批次的训练样本中的多媒体数据进行属性预测,得到输出数据,并根据输出数据和训练样本中的标注数据确定单精度损失;将所述单精度损失乘以当前批次的比例因子,得到半精度损失;通过反向传播算法,根据所述半精度损失确定半精度梯度;将所述半精度梯度除以当前批次的比例因子,得到单精度梯度;根据所述单精度梯度更新所述单精度权重。
对训练数据集分批次进行混合精度训练时,将前一批次训练得到的模型的单精度权重转换为半精度权重;基于半精度权重和模型的网络结构,对当前批次的每个训练样本的数据进行正向的属性预测,得到每个训练样本对应的输出数据,基于输出数据和训练样本中的标注数据得到训练样本对应的单精度损失;将单精度损失乘以当前批次对应的比例因子,该比例因子可以是前一批次训练动态更新后的比例因子,得到半精度损失;通过反向传播算法,对半精度损失进行反向传播,确定半精度梯度;将半精度梯度除以比例因子,得到单精度梯度;将单精度梯度与学习率相乘得到单精度权重的更新值,并将单精度权重与所述更新值进行相加,得到更新后的单精度权重,这个过程中可以根据半精度梯度是否有溢出,来动态调整比例因子,调整后的比例因子可以用于下一批次的混合精度训练。
由于通过上一轮次中训练样本的表征因子来将训练样本划分为多个批次,将难易样本按照难易程度分组,难样本和难样本一组,容易样本和容易样本一组,使得每个批次内部样本表征因子的绝对值接近,从而使得每个批次内部样本梯度均值的绝对值接近。在loss scale方法中仍由该批次中梯度绝对值最大的训练样本决定比例因子scale的大小。由于一个批次内梯度绝对值最大的样本和梯度绝对值最小的样本的梯度大小非常接近,比例因子能将原本下溢出为零的样本梯度变换到足够大,从而充分利用半精度浮点数的表达范围,在混合精度训练中取得接近单精度训练的精度,同时实现单精度训练的两倍以上的加速,减少训练过程中对计算资源的占用。
在上述技术方案的基础上,所述方法还可选包括:若当前批次的训练样本对应的半精度梯度有溢出,则对所述比例因子进行调整。
其中,所述半精度梯度有溢出是指半精度梯度超出了半精度浮点数的表达范围。
如果当前批次的训练样本对应的半精度梯度有溢出,则可以对当前批次的比例因子进行调整,以使得半精度梯度与调整后的比例因子相乘后的结果在半精度浮点数的表达范围内,将调整后的比例因子作为下一批次对应的比例因子。通过动态调整比例因子可以使得每个批次的比例因子合适,以进一步避免梯度的溢出。
在一种可选的实施方式中,所述对所述比例因子进行调整,包括:
根据当前批次训练样本对应的半精度梯度的最大绝对值,对所述比例因子进行调整;或者
将所述比例因子乘以或除以预设倍数因子。
在对当前批次的训练样本进行训练的过程中,如果当前批次的训练样本对应的半精度梯度有溢出,则需要动态调整比例因子,这时,可以根据当前批次训练样本对应的半精度梯度的最大绝对值对比例因子进行调整,即可以通过scale=65504/|grad|计算得到调整后的比例因子,其中scale为比例因子,|grad|为半精度梯度的最大绝对值;在对比例因子进行调整时还可以通过将比例因子乘以或除以预设倍数因子,从而得到调整后的比例因子。
例如,若样本梯度|grad|*scale>65504则说明比例因子过大,需要缩小比例系数,这时可以将原比例因子除以N,得到调整后的比例因子,N为所选取的倍数因子,例如可以为2、4、6、8等。
最终的比例因子由当前批次数据中最大的梯度绝对值|grad|选取,使得比例因子scale为满足|grad|*scale<65504的最大值,从而使得梯度等比缩放后仍处于半精度浮点数的表达范围,并能够最大程度的利用该表达范围。
在上述技术方案的基础上,所述混合精度训练方法还包括:对训练数据集分批次进行混合精度训练时,根据每个训练样本对应的输出数据和训练样本中的标注数据更新训练样本标识对应的表征因子。
在对训练数据集分批次进行混合精度训练时,在一个批次的训练过程中,根据每个训练样本对应的输出数据和训练样本中的标注数据确定单精度损失,并根据单精度损失是确定单精度梯度,将所述单精度损失或单精度梯度作为所述表征因子,这时根据得到的表征因子对保存的训练样本标识对应的表征因子进行更新,以作为下一轮次训练时划分批次的依据。
其中,所述训练样本标识对应的表征因子通过键值对的数据结构进行保存。每个训练样本标识和对应的表征因子可以采用键值对(Key-value)的数据结构进行记录,如Hashmap等,这样便于对训练样本标识对应的表征因子进行更新。在实际使用中可以通过构建embedding server实现,也可以通过别的方式实现。
图2是根据一示例性实施例示出的一种混合精度训练方法的流程图,如图2所示,该混合精度训练方法应用于对图像识别模型进行混合精度训练的过程中,包括以下步骤:
在步骤S21中,获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征图像识别模型拟合的难易程度,所述训练数据集是由基于图像数据生成的多个训练样本所组成的。
在步骤S22中,根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次。
在步骤S23中,根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对图像识别模型进行混合精度训练,以通过所述图像识别模型分别对每个批次的训练样本中的图像数据进行识别。
在分批次对图像识别模型进行混合精度训练时,在每一批次的训练开始前,首先需要获取前一批次训练得到的图像识别模型的单精度权重,并将该单精度权重转换为半精度权重;基于半精度权重和图像识别模型的网络结构,对当前批次的训练样本中的图像数据进行特征提取,将提取到的图像特征进行拼接处理,并将拼接处理后的特征进行全连接处理,依据全连接处理结果得到图像识别结果,并根据图像识别结果和训练样本中的标注数据确定单精度损失;将所述单精度损失乘以当前批次的比例因子,得到半精度损失;通过反向传播算法,根据所述半精度损失确定半精度梯度;将所述半精度梯度除以当前批次的比例因子,得到单精度梯度;根据所述单精度梯度更新所述单精度权重,即得到当前批次训练的图像识别模型的单精度权重。
上述各步骤的具体实现方式,可参见上述示例性实施例,这里不再赘述。
图像识别模型训练完成后,可以用于对图像数据进行识别,通过图像识别模型首先对图像数据进行特征提取,将提取到的图像特征进行拼接处理,并将拼接处理后的特征进行全连接处理,依据全连接处理结果得到图像识别结果。
由于在对图像识别模型进行分批次混合精度训练时,是按照训练样本的表征因子来划分批次的,每个批次中的表征因子的绝对值接近,这样同一批次使用相同的比例因子可以避免梯度的下溢出,解决了相关技术中在训练过程中梯度下溢出造成训练精度损失的问题,从而在提高图像识别模型训练速度的基础上提高了图像识别模型的精度,提高图像识别模型的识别准确性,减少了训练过程中对计算资源的占用,同时在训练过程中使得梯度在有限的计算资源的基础上能够保存有效数值,避免了由于梯度超过半精度表达范围而导致的溢出,即避免了梯度存储不正确的问题。
图3是根据一示例性实施例示出的一种混合精度训练方法的流程图,如图3所示,该混合精度训练方法应用于对推荐模型进行混合精度训练的过程中,包括以下步骤:
在步骤S31中,获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征推荐模型拟合的难易程度,所述训练数据集是由基于多媒体数据生成的多个训练样本所组成的。
本示例性实施例中,所述训练数据集中的训练样本包括当前推荐信息、历史行为信息和标注数据,标注数据为用户是否点击当前推荐信息,如果用户点击当前推荐信息,则标注数据为1,如果用户未点击当前推荐信息,则标注数据为0,所述推荐信息是多媒体数据,例如可以是视频数据、图像数据、音频数据和文本数据中的至少一种数据。
在步骤S32中,根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次。
在步骤S33中,根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对推荐模型进行混合精度训练,以通过所述推荐模型分别对每个批次的训练样本中的推荐信息进行点击率预测。
在分批次对推荐模型进行混合精度训练时,在每一批次的训练开始前,首先需要获取前一批次训练得到的推荐模型的单精度权重,并将该单精度权重转换为半精度权重;基于半精度权重和推荐模型的网络结构,对当前批次的训练样本中的历史行为信息确定用户的偏好特征,并确定所述偏好特征与当前推荐信息的相似度,将该相似度作为推荐模型的点击率预测结果,并根据点击率预测结果和训练样本中的标注数据确定单精度损失;将所述单精度损失乘以当前批次的比例因子,得到半精度损失;通过反向传播算法,根据所述半精度损失确定半精度梯度;将所述半精度梯度除以当前批次的比例因子,得到单精度梯度;根据所述单精度梯度更新所述单精度权重,即得到当前批次训练的推荐模型的单精度权重。
上述各步骤的具体实现方式,可参见上述示例性实施例,这里不再赘述。
由于在对推荐模型进行分批次混合精度训练时,是按照训练样本的表征因子来划分批次的,每个批次中的表征因子的绝对值接近,这样同一批次使用相同的比例因子可以避免梯度的下溢出,解决了相关技术中在训练过程中梯度下溢出造成训练精度损失的问题,从而在提高推荐模型训练速度的基础上提高了推荐模型的精度,提高推荐模型的结果预测准确性,减少了训练过程中对计算资源的占用,同时在训练过程中使得梯度在有限的计算资源的基础上能够保存有效数值,避免了由于梯度超过半精度表达范围而导致的溢出,即避免了梯度存储不正确的问题。
图4是根据一示例性实施例示出的一种混合精度训练装置的框图。参照图4,该装置包括表征因子获取模块41、批次划分模块42和混合精度训练模块43。
该表征因子获取模块41被配置为获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征模型拟合的难易程度,所述训练数据集是由基于多媒体数据生成的多个训练样本所组成的;
该批次划分模块42被配置为根据各个训练样本标识对应的表征因子,将所述训练数据集中的训练样本划分为多个批次;
该混合精度训练模块43被配置为根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
可选的,所述表征因子包括梯度均值或损失值,同一批次中训练样本的表征因子与同一比例因子相乘后的结果在半精度浮点数表达范围内。
可选的,所述批次划分模块包括:
训练样本排序单元,被配置为根据所述表征因子,对所述训练数据集中各个训练样本标识进行排序;
批次划分单元,被配置为按照每个批次包含的预设样本数,从所述排序后的训练样本标识中获取连续预设样本数的训练样本标识作为一个批次,得到多个批次。
可选的,所述装置还包括:
初次训练模块,被配置为在进行第一轮次的混合精度训练时,按照每个批次包含的预设样本数,将训练数据集划分为多个批次,并根据该多个批次和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
可选的,所述装置还包括:
批次顺序打乱模块,被配置为随机打乱所述多个批次的顺序,并将打乱顺序后得到的多个批次的顺序作为所述多个批次的训练顺序。
可选的,所述装置还包括:
批次表征因子确定模块,被配置为将每个批次中设定位置的训练样本所对应的表征因子作为该批次的表征因子;
训练顺序确定模块,被配置为根据多个批次的表征因子,确定所述多个批次的训练顺序。
可选的,所述混合精度训练模块包括:
权重精度转换单元,被配置为将前一批次训练得到的模型的单精度权重转换为半精度权重;
属性预测单元,被配置为基于所述半精度权重和所述模型的网络结构,对当前批次的训练样本中的多媒体数据进行属性预测,得到输出数据,并根据输出数据和训练样本中的标注数据确定单精度损失;
半精度损失确定单元,被配置为将所述单精度损失乘以当前批次的比例因子,得到半精度损失;
反向传播单元,被配置为通过反向传播算法,根据所述半精度损失确定半精度梯度;
单精度梯度确定单元,被配置为将所述半精度梯度除以当前批次的比例因子,得到单精度梯度;
权重更新单元,被配置为根据所述单精度梯度更新所述单精度权重。
可选的,所述装置还包括:
比例因子调整模块,被配置为若当前批次的训练样本对应的半精度梯度有溢出,则对所述比例因子进行调整。
可选的,所述比例因子调整模块具体被配置为:
根据当前批次训练样本对应的半精度梯度的最大绝对值,对所述比例因子进行调整;或者
将所述比例因子乘以或除以预设倍数因子。
可选的,所述装置还包括:
表征因子更新模块,被配置为对训练数据集分批次进行混合精度训练时,根据每个训练样本对应的输出数据和训练样本中的标注数据更新训练样本标识对应的表征因子。
可选的,所述训练样本标识对应的表征因子通过键值对的数据结构进行保存。
本示例性实施例提供的混合精度训练装置,通过表征因子获取模块获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,批次划分模块根据各个训练样本标识对应的表征因子,将训练数据集中的训练样本划分为多个批次,混合精度训练模块根据多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过模型分别对每个批次的训练样本中的多媒体数据进行属性预测,由于按照上一轮次训练得到的各个训练样本标识对应的表征因子来将训练数据集划分为多个批次,每个批次中的训练样本的表征因子接近,从而一个批次中的训练样本使用同一比例因子可以避免梯度的下溢出,解决了相关技术中在训练过程中梯度下溢出造成训练精度损失的问题,从而在提高模型训练速度的基础上提高了模型的精度,减少了训练过程中对计算资源的占用,同时在训练过程中使得梯度在有限的计算资源的基础上能够保存有效数值,避免了由于梯度超过半精度表达范围而导致的溢出,即避免了梯度存储不正确的问题,而且在保证梯度不溢出的基础上可以进一步加快模型的训练速度,提高模型预测结果的准确性。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备500可以被提供为一服务器。参照图5,电子设备500包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理组件522的执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行上述混合精度训练方法。
电子设备500还可以包括一个电源组件526被配置为执行电子设备500的电源管理,一个有线或无线网络接口550被配置为将电子设备500连接到网络,和一个输入输出(I/O)接口558。电子设备500可以操作基于存储在存储器532的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器532,上述指令可由电子设备500的处理组件522执行以完成上述混合精度训练方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括可读性程序代码,该可读性程序代码可由电子设备500的处理组件522执行以完成上述混合精度训练方法。可选地,该程序代码可以存储在电子设备500的存储介质中,该存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (21)
1.一种混合精度训练方法,其特征在于,包括:
获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征模型拟合的难易程度,所述训练数据集是由基于多媒体数据生成的多个训练样本所组成的;所述多媒体数据包括视频数据、图像数据、音频数据和文本数据中的至少一种数据;
根据所述表征因子,对所述训练数据集中各个训练样本标识进行排序;
按照每个批次包含的预设样本数,从所述排序后的训练样本标识中获取连续预设样本数的训练样本标识作为一个批次,得到多个批次;
将前一批次训练得到的型的单精度权重转换为半精度权重;
基于所述半精度权重和所述模型的网络结构,对当前批次的训练样本中的多媒体数据进行属性预测,得到输出数据,并根据输出数据和训练样本中的标注数据确定单精度损失;
将所述单精度损失乘以当前批次的比例因子,得到半精度损失;
通过反向传播算法,根据所述半精度损失确定半精度梯度;
将所述半精度梯度除以当前批次的比例因子,得到单精度梯度;
根据所述单精度梯度更新所述单精度权重。
2.根据权利要求1所述的方法,其特征在于,所述表征因子包括梯度均值或损失值,同一批次中训练样本的表征因子与同一比例因子相乘后的结果在半精度浮点数表达范围内。
3.根据权利要求1所述的方法,其特征在于,还包括:
在进行第一轮次的混合精度训练时,按照每个批次包含的预设样本数,将训练数据集划分为多个批次,并根据该多个批次和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
4.根据权利要求1所述的方法,其特征在于,在根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练之前,还包括:
随机打乱所述多个批次的顺序,并将打乱顺序后得到的多个批次的顺序作为所述多个批次的训练顺序。
5.根据权利要求1所述的方法,其特征在于,在根据所述多个批次的训练样本和每个批次对应的比例因子,分批次对模型进行混合精度训练之前,还包括:
将每个批次中设定位置的训练样本所对应的表征因子作为该批次的表征因子;
根据多个批次的表征因子,确定所述多个批次的训练顺序。
6.根据权利要求1所述的方法,其特征在于,还包括:
若当前批次的训练样本对应的半精度梯度有溢出,则对所述比例因子进行调整。
7.根据权利要求6所述的方法,其特征在于,所述对所述比例因子进行调整,包括:
根据当前批次训练样本对应的半精度梯度的最大绝对值,对所述比例因子进行调整;或者
将所述比例因子乘以或除以预设倍数因子。
8.根据权利要求1-7任一项所述的方法,其特征在于,还包括:
对训练数据集分批次进行混合精度训练时,根据每个训练样本对应的输出数据和训练样本中的标注数据更新训练样本标识对应的表征因子。
9.根据权利要求8所述的方法,其特征在于,所述训练样本标识对应的表征因子通过键值对的数据结构进行保存。
10.一种混合精度训练装置,其特征在于,包括:
表征因子获取模块,被配置为获取前一轮次混合精度训练得到的训练数据集中各个训练样本标识对应的表征因子,所述表征因子用于表征模型拟合的难易程度,所述训练数据集是由基于多媒体数据生成的多个训练样本所组成的;所述多媒体数据包括视频数据、图像数据、音频数据和文本数据中的至少一种数据;
训练样本排序单元,被配置为根据所述表征因子,对所述训练数据集中各个训练样本标识进行排序;批次划分单元,被配置为按照每个批次包含的预设样本数,从所述排序后的训练样本标识中获取连续预设样本数的训练样本标识作为一个批次,得到多个批次;
权重精度转换单元,被配置为将前一批次训练得到的模型的单精度权重转换为半精度权重;
属性预测单元,被配置为基于所述半精度权重和所述模型的网络结构,对当前批次的训练样本中的多媒体数据进行属性预测,得到输出数据,并根据输出数据和训练样本中的标注数据确定单精度损失;
半精度损失确定单元,被配置为将所述单精度损失乘以当前批次的比例因子,得到半精度损失;
反向传播单元,被配置为通过反向传播算法,根据所述半精度损失确定半精度梯度;
单精度梯度确定单元,被配置为将所述半精度梯度除以当前批次的比例因子,得到单精度梯度;
权重更新单元,被配置为根据所述单精度梯度更新所述单精度权重。
11.根据权利要求10所述的装置,其特征在于,所述表征因子包括梯度均值或损失值,同一批次中训练样本的表征因子与同一比例因子相乘后的结果在半精度浮点数表达范围内。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
初次训练模块,被配置为在进行第一轮次的混合精度训练时,按照每个批次包含的预设样本数,将训练数据集划分为多个批次,并根据该多个批次和每个批次对应的比例因子,分批次对模型进行混合精度训练,以通过所述模型分别对每个批次的训练样本中的多媒体数据进行属性预测。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
批次顺序打乱模块,被配置为随机打乱所述多个批次的顺序,并将打乱顺序后得到的多个批次的顺序作为所述多个批次的训练顺序。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
批次表征因子确定模块,被配置为将每个批次中设定位置的训练样本所对应的表征因子作为该批次的表征因子;
训练顺序确定模块,被配置为根据多个批次的表征因子,确定所述多个批次的训练顺序。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括:
比例因子调整模块,被配置为若当前批次的训练样本对应的半精度梯度有溢出,则对所述比例因子进行调整。
16.根据权利要求15所述的装置,其特征在于,所述比例因子调整模块具体被配置为:
根据当前批次训练样本对应的半精度梯度的最大绝对值,对所述比例因子进行调整;或者
将所述比例因子乘以或除以预设倍数因子。
17.根据权利要求10-16任一项所述的装置,其特征在于,所述装置还包括:
表征因子更新模块,被配置为对训练数据集分批次进行混合精度训练时,根据每个训练样本对应的输出数据和训练样本中的标注数据更新训练样本标识对应的表征因子。
18.根据权利要求17所述的装置,其特征在于,所述训练样本标识对应的表征因子通过键值对的数据结构进行保存。
19.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的混合精度训练方法。
20.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至9中任一项所述的混合精度训练方法。
21.一种计算机程序介质,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1-9任一项所述的混合精度训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011606558.6A CN112598078B (zh) | 2020-12-28 | 2020-12-28 | 混合精度训练方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011606558.6A CN112598078B (zh) | 2020-12-28 | 2020-12-28 | 混合精度训练方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112598078A CN112598078A (zh) | 2021-04-02 |
CN112598078B true CN112598078B (zh) | 2024-04-19 |
Family
ID=75204159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011606558.6A Active CN112598078B (zh) | 2020-12-28 | 2020-12-28 | 混合精度训练方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112598078B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628509B (zh) * | 2023-07-21 | 2023-12-01 | 科大讯飞股份有限公司 | 模型训练方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018110947A1 (de) * | 2017-05-05 | 2018-11-08 | Jonah Alben | Verlustskalierung für tiefes neuronales netzwerktraining mit verringerter präzision |
CN109901814A (zh) * | 2019-02-14 | 2019-06-18 | 上海交通大学 | 自定义浮点数及其计算方法和硬件结构 |
CN110163368A (zh) * | 2019-04-18 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 基于混合精度的深度学习模型训练方法、装置及系统 |
CN110852434A (zh) * | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数的cnn量化方法、前向计算方法及装置 |
CN110852416A (zh) * | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 |
-
2020
- 2020-12-28 CN CN202011606558.6A patent/CN112598078B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018110947A1 (de) * | 2017-05-05 | 2018-11-08 | Jonah Alben | Verlustskalierung für tiefes neuronales netzwerktraining mit verringerter präzision |
CN109901814A (zh) * | 2019-02-14 | 2019-06-18 | 上海交通大学 | 自定义浮点数及其计算方法和硬件结构 |
CN110163368A (zh) * | 2019-04-18 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 基于混合精度的深度学习模型训练方法、装置及系统 |
CN110852434A (zh) * | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数的cnn量化方法、前向计算方法及装置 |
CN110852416A (zh) * | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 |
Non-Patent Citations (2)
Title |
---|
Mixed precision training with 8-bit floating point;Naveen Mellempudi et.al;arXiv:1905.12334[cs.LG];全文 * |
Mixed precision training;Sharan Narang et.al;ICLR2018;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112598078A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110210560B (zh) | 分类网络的增量训练方法、分类方法及装置、设备及介质 | |
CN108090470B (zh) | 一种人脸对齐方法及装置 | |
CN110222220B (zh) | 图像处理方法、装置、计算机可读介质及电子设备 | |
CN108121800B (zh) | 基于人工智能的信息生成方法和装置 | |
CN109284761B (zh) | 一种图像特征提取方法、装置、设备及可读存储介质 | |
EP3832475A1 (en) | Sentence processing method and system and electronic device | |
CN110009059B (zh) | 用于生成模型的方法和装置 | |
CN110929836B (zh) | 神经网络训练及图像处理方法和装置、电子设备、介质 | |
CN112949840A (zh) | 通道注意力引导的卷积神经网络动态通道剪枝方法和装置 | |
CN112434188B (zh) | 一种异构数据库的数据集成方法、装置及存储介质 | |
CN115147680B (zh) | 目标检测模型的预训练方法、装置以及设备 | |
CN114037003A (zh) | 问答模型的训练方法、装置及电子设备 | |
CN111738010A (zh) | 用于生成语义匹配模型的方法和装置 | |
CN114781650B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN115496970A (zh) | 图像任务模型的训练方法、图像识别方法以及相关装置 | |
CN112598078B (zh) | 混合精度训练方法、装置、电子设备及存储介质 | |
CN110188798B (zh) | 一种对象分类方法及模型训练方法和装置 | |
CN114936323A (zh) | 图表示模型的训练方法、装置及电子设备 | |
CN111385601A (zh) | 一种视频审核的方法及系统 | |
CN110708619B (zh) | 一种智能设备的词向量训练方法及装置 | |
CN113313246A (zh) | 用于确定模型压缩率的方法、设备和程序产品 | |
CN116230001A (zh) | 一种混合语音分离方法、装置、设备及存储介质 | |
CN110838021A (zh) | 转化率预估方法、装置、电子设备及存储介质 | |
CN115081630A (zh) | 多任务模型的训练方法、信息推荐方法、装置和设备 | |
CN112200275B (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 |