CN114861911A - 深度学习模型的训练方法、装置、系统、设备和介质 - Google Patents
深度学习模型的训练方法、装置、系统、设备和介质 Download PDFInfo
- Publication number
- CN114861911A CN114861911A CN202210559489.0A CN202210559489A CN114861911A CN 114861911 A CN114861911 A CN 114861911A CN 202210559489 A CN202210559489 A CN 202210559489A CN 114861911 A CN114861911 A CN 114861911A
- Authority
- CN
- China
- Prior art keywords
- target
- parameter
- processor
- network
- memory
- 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.)
- Granted
Links
- 238000012549 training Methods 0.000 title claims abstract description 281
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000013136 deep learning model Methods 0.000 title claims abstract description 80
- 230000015654 memory Effects 0.000 claims abstract description 270
- 238000003860 storage Methods 0.000 claims abstract description 270
- 238000013507 mapping Methods 0.000 claims abstract description 85
- 238000012545 processing Methods 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 30
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims description 33
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 230000008030 elimination Effects 0.000 claims description 4
- 238000003379 elimination reaction Methods 0.000 claims description 4
- 230000001427 coherent effect Effects 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims 1
- 238000013135 deep learning Methods 0.000 abstract description 8
- 230000006854 communication Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种深度学习模型的训练方法,涉及人工智能领域,具体涉及深度学习和智能推荐领域。深度学习模型的训练方法的具体实现方案为:根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;其中,目标存储器为目标处理器所包括的存储器;根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位;以及响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,以使得目标处理器包括的计算核根据第一训练数据对第一网络参数进行调整。
Description
技术领域
本公开涉及人工智能领域,具体涉及深度学习和智能推荐领域,尤其涉及一种深度学习模型的训练方法、装置、系统、电子设备和存储介质。
背景技术
随着计算机技术、网络技术和通信技术的发展,深度学习等技术在智能推荐等领域的应用越来越普及。随着大数据浪潮的推动与深度学习技术的长足发展,深度学习技术的数据规模和模型规模都显著地增加。相应地,在模型训练中对硬件环境提出了较高的要求,且通常训练的时间成本也很高。
发明内容
本公开旨在提供一种利于降低硬件要求和利于实现大规模模型训练的深度学习模型的训练方法、装置、系统、电子设备和存储介质。
根据本公开的一个方面,提供了一种深度学习模型的训练方法,包括:根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;其中,目标存储器为目标处理器所包括的存储器;根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位;以及响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,以使得目标处理器包括的计算核根据第一训练数据对第一网络参数进行调整。
根据本公开的另一个方面,提供了一种深度学习模型的训练方法,包括:第一处理器根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;其中,目标存储器为第二处理器所包括的存储器;第一处理器根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位;第一处理器响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,并向第二处理器发送基于第一训练数据的训练任务信息;第二处理器的计算核响应于接收到训练任务信息,根据第一训练数据对第一网络参数进行调整。
根据本公开的另一个方面,提供了一种深度学习模型的训练装置,包括:目标参数确定模块,用于根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;其中,目标存储器为目标处理器所包括的存储器;剩余槽位确定模块,用于根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位;以及参数写入模块,用于响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,以使得目标处理器包括的计算核根据第一训练数据对第一网络参数进行调整。
根据本公开的另一个方面,提供了一种深度学习模型的训练系统,包括第一处理器和第二处理器,第二处理器包括目标存储器和计算核,其中,第一处理器被配置为:根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位;以及响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,并向第二处理器发送基于第一训练数据的训练任务信息;第二处理器被配置为:计算核响应于接收到训练任务信息,根据第一训练数据对第一网络参数进行调整。
根据本公开的另一个方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开提供的深度学习模型的训练方法。
根据本公开的另一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开提供的深度学习模型的训练方法。
根据本公开的另一个方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现本公开提供的深度学习模型的训练方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的深度学习模型的训练方法、装置和系统的应用场景架构图;
图2是根据本公开实施例的深度学习模型的训练方法的流程示意图;
图3是根据本公开另一实施例的深度学习模型的训练方法的流程示意图;
图4是根据本公开实施例的处理器缓存的结构示意图;
图5是根据本公开实施例的深度学习模型的训练方法的整体流程示意图;
图6是根据本公开实施例的处理器的单机多卡的通信拓扑结构图;
图7是根据本公开实施例以异步流水线形式训练模型的原理示意图;
图8是根据本公开实施例的深度学习模型的训练装置的结构框图;
图9是根据本公开实施例的深度学习模型的训练系统的结构框图;以及
图10是用来实施本公开实施例的深度学习模型的训练方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
随着大数据浪潮的推动与深度学习技术的发展,在工业推荐场景中,数据规模和模型规模都有显著地增长。例如,为了提高推荐模型的精度,通常需要根据亿级别的点击数据生成训练样本,以对该推荐模型进行训练。在推荐模型中,通常使用嵌入(Embedding)技术来将对象(用户及物品等)的高维稀疏特征向量转化为低维的稠密特征向量。如此,embedding技术涉及的参数量往往会达到千亿甚至万亿级别,且涉及的参数具有稀疏的特性。
为了实现对大规模的稀疏参数的训练,可以使用基于CPU或者GPU的参数服务器架构,以对大规模的稀疏参数进行分布式训练,以期提升训练效率。
参数服务器架构例如可以包括HugeCTR、Paddle-GPUPS和Persia等。
例如,HugeCTR是用GPU加速推荐模型训练的框架,该框架支持多机多卡加速,该框架支持对参数稀疏分布的嵌入层进行模型并行训练且对参数稠密分布的网络进行数据并行训练的混合训练方式。HugeCTR将嵌入层切分为多份,并分别分配给多机多卡,每个GPU上保存全局的嵌入层的一部分,同时每个GPU上都有完整的参数稠密分布的网络。在训练推荐模型时,可以将全局的样本数据进行随机打乱(shuffle)并切分,为每个GPU分配不同的样本数据以进行数据并行方式的训练。
对于HugeCTR,支持两种方式的嵌入层的存储,一种为将属于相同槽位(slot)的稀疏参数缓存在同一个GPU的显卡内存中;一种为将全量的稀疏参数打散后存储到不同GPU的显卡内存中。该些方式均存在一些稀疏参数被重复的缓存的情况,会对显卡内存带来一定程度的浪费。且HugeCTR需要多个CPU参与模型的训练,存在训练成本高的问题。
例如,Paddle-GPUPS的出现解决了上百台CPU服务器训练成本较高的问题。该架构在每个GPU上构建一个高带宽内存(High Bandwidth Memory,HBM)哈希表。在训练开始前,该架构先将对当前获取的一个pass中数据的特征进行嵌入处理时所需的稀疏参数从CPU内存加载至显卡内存中。在加载时,将相同特征组所需的稀疏参数打散后存储在不同的显卡内存。如此,在基于从一个pass中抽取的一个batch的数据来对模型进行训练时,每个GPU需要根据特征标识来从其他的显卡内存中拷贝所需的稀疏参数。该架构在训练过程中,GPU之间的通信开销较大,且由于每个GPU上构建存储有HBM哈希表,对显卡内存的大小要求较高。
例如,Persia为用于大规模异构集群训练的推荐模型训练框架。该框架通过在训练算法和训练系统两个维度上协同优化,使得最大可训练的模型参数量为百万亿级别。该框架对嵌入层进行异步更新,对参数稠密分布的网络进行同步更新,并通过系统的优化,可以使得部分的通信过程和计算过程在时间上重叠。该框架在传统框架中引入了EmbeddingWorker的角色,将嵌入层的训练更新任务从整体模型的训练任务中拆分出来并交由Embedding Worker执行。该框架为了引入Embedding Worker,需要较多的CPU,这会增加模型的训练成本。
另外,为了提升模型的训练效率,各种用于加速神经网络运算能力的人工智能(Artificial Intelligence,AI)芯片应运而生,例如,深度学习处理器(Deep learningProcessing Unit,DPU)、神经网络处理器(Neural Network Processing Unit,NPU)和张量处理器(Tensor Processing Unit,TPU)等。
例如,昆仑芯二代芯片是采用GDDR6显存的通用AI芯片。该芯片基于XPU-R架构运行,可以明显提升计算的核心算力,增强芯片的通用计算能力。
以下将结合图1对本公开提供的方法和装置的应用场景进行描述。
图1是根据本公开实施例的深度学习模型的训练方法、装置和系统的应用场景图。
如图1所示,该应用场景100包括电子设备,该电子设备可以为笔记本电脑、台式机或者服务器等。该电子设备中设置有处理器CPU110、人工智能芯片120、内存130和硬盘存储器140。
其中,内存130指内存存储器,是CPU110用来直接寻址和存储的空间。该内存可以暂时存放CPU中的运行数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来。内存130例如可以为随机存储器,如此CPU可以从中读取数据,也可以写入数据。
其中,硬盘处理器140例如可以为带有NVMe接口的固态硬盘(Solid State Disk,SSD)等,本公开对此不做限定。
人工智能芯片具有数据处理能力,可以协助CPU工作,提高整体的运行速度。人工智能芯片例如可以包括上文描述的DPU、NPU或者TPU等。该人工智能芯片120可以包括计算核、显存及其相关电路。显存即为显示内存150,即人工智能芯片的专用内存,作用是用来存储计算核处理过或者即将提取的渲染数据,与内存130类似,显示内存150是用来存储要处理的模型参数、训练样本等信息。
人工智能芯片120中的计算核无法直接读取内存130的数据,计算核只能从显示内存150里读取数据。CPU可以向计算核分配计算任务,计算核在执行计算任务的过程中,在CPU110的控制下,内存130与显示内存150之间可以进行数据交互,以将计算核执行计算任务时所需的数据从内存130拷贝到显示内存150,或者直接将内存130中的数据转移至显示内存150中。
在对基于深度学习技术构建的模型进行训练时,CPU110例如可以将训练任务分配给人工智能芯片120,并将模型从内存130中转移至显示内存150中。在一实施例中,可以将模型存储在硬盘存储器140提供的硬盘存储空间中。建立由显示内存150、内存130和硬盘存储器140构成的三级缓存空间。如此,在将模型存储在硬盘存储器140中时,在模型训练过程中,根据训练需要,CPU 110可以从硬盘存储器140中读取数据并缓存至内存,并在CPU 110向人工智能芯片120分配训练任务时,将计算核执行当前的计算任务时所涉及的模型参数由内存130转移至显示内存150,并将显示内存150中存储的计算核处理后的数据从显示内存150转移至内存130,以避免显示内存的存储空间不足的情形。
在一实施例中,电子设备例如可以设置有多个人工智能芯片,该多个人工智能芯片可以根据不同的训练样本并行地执行模型训练任务,以此提高模型的训练效率。
可以理解的是,本公开提供的深度学习模型的训练方法可以由电子设备执行,具体可以由CPU或者人工智能芯片调用相应的程序代码来实现。相应地,本公开提供的深度学习模型的训练装置、深度学习模型的训练系统可以设置于电子设备中。
以下将结合图2~图7对本公开提供的深度学习模型的训练方法进行详细描述。
图2是根据本公开实施例的深度学习模型的训练方法的流程示意图。
如图2所示,该实施例的深度学习模型的训练方法200可以包括操作S210~操作S230。该方法200例如可以由上文描述的电子设备中的CPU执行。
在操作S210,根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数。
在操作S220,根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位。
在操作S230,响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,以使得目标处理器包括的计算核根据第一训练数据对所述第一网络参数进行调整。
根据本公开的实施例,目标存储器例如可以为目标处理器所包括的存储器。其中,目标处理器例如可以为上文描述的人工智能芯片,还可以为图形处理器GPU等。该目标处理器可以接收CPU分配的计算任务,并根据目标存储器中存储的数据来执行分配得到的计算任务。该计算任务例如可以包括模型训练任务,以对深度学习模型进行训练。其中,深度学习模型例如可以包括图像处理模型、语音处理模型或者文本处理模型等。在一具体场景中,深度学习模型可以为推荐模型,该实施例可以基于海量用户对推荐对象的交互行为信息,通过梯度下降等方法来训练推荐模型。在推荐模型的模型参数收敛后,即可对用户进行个性化推荐。
在一实施例中,深度学习模型例如可以包括嵌入层和预测网络。其中,嵌入层用于对输入深度学习模型的数据进行嵌入处理,以将输入的数据从高维稀疏的空间投射到低维稠密的特征空间。本公开实施例中的对第一训练数据进行嵌入处理所需的第一网络参数为该嵌入层中的网络参数。该第一网络参数例如可以通过调用核函数来确定。
在一实施例中,可以将确定的第一网络参数与目标存储器中存储的网络参数进行比对,确定第一网络参数中未存入目标存储器的网络参数,作为需要写入目标存储器的第一目标参数。或者,该实施例中,还可以将第一网络参数与内存和/或硬盘处理器中存储的网络参数进行比对,将第一网络参数中存储在内存和/或硬盘处理器中的网络参数作为第一目标参数。可以理解的是,在比对网络参数时,可以根据基于网络参数进行嵌入处理的数据的特征标识Feature sign(简称为Feasign)来进行比对。
例如,一个训练样本可以包括多个对象的特征数据,每个对象可以包括多个特征数据,一个特征数据对应有一个特征标识。对于每个特征数据,需要采用固定的网络参数来进行嵌入处理。例如,本公开实施例可以根据网络参数与特征数据之间的对应关系来存储嵌入层的网络参数,并为网络参数添加对应的特征数据的特征标识。
在一实施例中,CPU可以在缓存或者内存中维护有特征数据的特征标识与目标存储器中存储的网络参数之间的映射关系表,该映射关系表以特征标识作为Key,以具有映射关系的网络参数的标识信息作为Value。该实施例可以根据第一训练数据中包括的特征数据的特征标识来查询映射关系表,并确定映射关系表中不存在的特征标识,将第一网络参数中用于对该不存在的特征标识所标识的特征数据进行嵌入处理的网络参数,作为第一目标参数。
可以理解的是,目标存储器中存储的网络参数例如可以按槽位(Slot)存储,每个槽位存储的网络参数为对应于一个特征数据的全部网络参数。即,网络参数可以按组存储,对应于一个特征数据的全部网络参数构成一个网络参数组。如此,可以将目标存储器划分为多个存储槽位,每个存储槽位用于存储一个网络参数组。
在确定了第一目标参数后,该实施例可以先确定目标存储器中的存储空间是否充足,仅在存储空间充足的情况下,将第一目标参数写入目标存储器。
例如,该实施例可以在CPU的缓存或内存中维护有存储槽位与网络参数之间的第一映射关系。该第一映射关系可以以映射表的形式存储,由于网络参数与特征数据一一对应,该实施例可以采用特征数据的特征标识来表示网络参数,并为目标存储器中的存储槽位编码。如此,第一映射关系可以以特征数据的特征标识为Key,以存储槽位的编码(设定为FId)为Value,表示为Feasign与FId之间的映射表。如此,该实施例可以通过根据该第一映射关系,来确定目标存储器中的剩余存储槽位。
例如,设定目标存储器的存储空间总计被划分为100个存储槽位,且该100个存储槽位的编码为0~99的整数,若第一映射关系中仅包括有编码为0~49的映射信息,则可以确定剩余存储槽位为50个。
在确定了剩余存储槽位后,该实施例可以将该剩余存储槽位与第一目标参数中的网络参数组数进行比对,若第一目标参数中网络参数的组数小于剩余存储槽位,则确定剩余存储槽位满足第一目标参数的存储需求,CPU即可将第一目标参数从内存中转移至目标存储器。在一实施例中,在向目标存储器中写入网络参数时,可以采用上文描述的按组写入方式。
本公开实施例通过由CPU中维护第一映射关系,并根据第一映射关系来确定目标存储器的剩余存储空间,并基于此来控制网络参数的写入,可以实现对显卡内存的存储空间的管理,避免在模型训练过程中因嵌入处理所需的网络参数过多而给显卡内存带来的巨大压力,利于降低大规模的模型训练对硬件条件的高要求,并利于实现大规模模型的训练。再者,由于该实施例中第一映射关系是维护在CPU可以访问的内存或缓存中的,相较于相关技术中将表示映射关系的哈希表存储在显卡内存中的技术方案,可以充分利用显卡内存来进行模型训练,也利于降低对显卡内存的压力,降低CPU与目标处理器之间的通信开销。
可以理解的是,在确定剩余存储槽位满足第一目标参数的存储需求时,该实施例还可以先为第一目标参数分配剩余存储槽位中的存储槽位,并将第一目标参数写入分配的存储槽位中。例如,若第一目标参数包括10个特征数据对应的网络参数,且目标存储器中编码为0~49的存储槽位已存储网络参数,则可以为第一目标参数分配编码为50~49的存储槽位。
在为第一目标参数分配存储槽位后,可以根据分配的存储槽位的编码(即作为存储槽位的标识信息)和第一目标参数的标识信息(即与第一目标参数对应的特征数据的标识信息)更新第一映射关系。如此,可以使得第一映射关系中维护有存储槽位与网络参数之间的对应关系。
可以理解的是,在每个轮次的训练中,该实施例还可以将对训练数据进行预测处理所需的第三网络参数也写入目标存储器中,以供目标处理器的计算核调用,并根据调用结果对该第三网络参数进行调整。这是由于通常预测处理所需的网络参数为稠密分布的参数,且参数量较少,将预测处理所需的全量的网络参数均写入目标存储器,通常不会带来明显的压力。其中,在推荐模型中,该第三网络参数例如可以为预测网络所包括的网络参数,预测网络例如可以包括多层感知器(Multilayer Perceptron,MLP)。
可以理解的是,深度学习模型的训练过程通常包括三部分。第一部分为前向计算的过程以计算得到深度学习模型的损失,第二部分为反向计算的过程以计算得到梯度,第三部分为根据梯度更新深度学习模型的网络参数的过程。计算核具体可以是根据反向计算得到的梯度来调整第一网络参数和第三网络参数,使得深度学习模型的网络参数逐渐收敛。
在一实施例中,在剩余存储槽位不满足第一目标参数的存储需求时,CPU例如还可以将目标存储器中暂时不需要的网络参数转出,以为第一目标参数留出充足的空间,以为深度学习模型的后续训练提供条件。通过该实施例,可以动态调整目标存储器中的缓存空间的大小,结合内存中第一映射关系等的维护,可以有效减少CPU与目标处理器之间的通信开销。
示例性地,CPU还可以在缓存或内存中维护有存储槽位与存储槽位存储的网络参数的参数状态之间的第二映射关系,以作为确定可转移网络参数的依据。
例如,网络参数的参数状态可以包括引用状态。在网络参数为当前训练轮次所需的网络参数时,将该引用状态置为被引用的状态,若当前训练轮次无需该网络参数,则将该引用状态置为未被引用的状态。例如,引用状态可以由引用计数(Reference Count,简称为RefCount)来表示,若引用计数的取值为1,则表示被引用的状态,若引用技术的取值为0,则表示未被引用的状态。
该实施例中,第二映射关系由上文描述的FId、FeaSign和RefCount之间的对应关系构成的映射表来表示,每个FeaSign对应有各自的RefCount,用于表示对FeaSign标识的特征数据进行嵌入处理时所需的网络参数是否被引用。该实施例可以将第二映射关系中RefCount的取值为0的FeaSign对应的网络参数作为可转移网络参数。
例如,网络参数的参数状态可以包括使用次数。在网络参数在一个训练轮次中被调动时,将该使用次数加1,该使用次数的初始值可以为0。例如,使用次数可以由频次(Frequency Count,简称为FreqCount)来表示。
该实施例中,第二映射关系由上文描述的FId、FeaSign和FreqCount之间的对应关系构成的映射表来表示,每个FeaSign对应有各自的FreqCount,用于表示对FeaSign标识的特征数据进行嵌入处理时所需的网络参数的使用次数。该实施例可以将第二映射关系中FreqCount的取值小于阈值的FeaSign对应的网络参数作为可转移网络参数。
例如,网络参数的参数状态可以不仅包括引用状态,还包括使用次数。第二映射关系由上文描述的FId、FeaSign、RefCount和FreqCount和之间的对应关系构成的映射表来表示,每个FeaSign对应有各自的RefCount和FreqCount。该实施例可以将引用状态为未被引用且使用次数小于阈值的FeaSign对应的网络参数作为可转移网络参数。
通过上述实施例的方法,可以根据需求及时地转出不需要的网络参数,为深度学习模型的训练留出足够的存储槽位,利于提高深度学习模型的训练效率。
示例性地,该实施例还可以将第一网络参数与目标存储器已存储的网络参数进行比对,将不属于第一网络参数,且引用状态为未被引用的网络参数作为可转移网络参数。例如,在确定可转移网络参数时,例如还可以根据第一目标参数对应的特征数据的个数,确定需要转出的网络参数的组数,作为目标组数。随后确定处于未被引用的状态且使用频率较低的目标组数个网络参数作为可转移网络参数。
在确定了可转移网络参数后,即可将可转移网络参数从目标存储器中转移至内存中。并在可转移网络参数被转出后,将第一目标参数写入目标存储器。可以理解的是,与上文描述的类似,在将第一目标参数写入目标存储器时,可以为第一目标参数分配目标存储器中的剩余存储槽位。可以理解的是,此处的剩余存储槽位包括有可转移网络参数所在的存储槽位。随后将第一目标参数写入分配的存储槽位中。在分配了存储槽位后,该实施例还可以根据第一目标参数对应的特征数据的标识信息和为第一目标参数分配的存储槽位的编码,对上文描述的第一映射关系和第二映射关系进行更新。
例如,在对第二映射关系进行更新时,除了需要更新FId与FeaSign之间的映射关系外,还需要更新第一网络参数的参数状态。例如,可以将第一网络参数的引用状态更改为被引用状态,即将第一网络参数对应的FeaSign的RefCount由0更改为1。例如,可以将第一网络参数的使用次数加1,即将第一网络参数对应的FeaSign的FreqCount加1。
在一实施例中,在计算核完成对第一网络参数的调整后,该实施例还可以对第二映射关系进行更新,以更新第一网络参数的引用状态。具体可以将第一网络参数对应的FeaSign的RefCount由1更改回0。
在一实施例中,可以采用由目标存储器、内存和硬盘处理器构成的三级缓存结构,以降低内存和目标存储器的存储压力。前述在将第一目标参数写入目标存储器时,可以从内存或者硬盘存储器中读取该第一目标参数。内存可以为硬盘存储器的缓存,在内存占用率较高时,CPU可以将内存中缓存的数据写入硬盘存储器中。通过该三级缓存结构的设置,可以加速模型训练过程中网络参数的查找和拉取,也利于实现大规模深度学习模型的训练,例如,支持的深度学习模型的模型参数量可以达到T级别。
例如,CPU在将可转移网络参数从目标存储器转至内存时,可以先确定内存的剩余存储空间是否小于空间阈值。若小于空间阈值,则将内存作为缓存,将可转移网络参数经由内存写入硬盘存储器。即,将可转移网络参数缓存至内存,并将内存中缓存的可转移网络参数写入硬盘存储器。
在一实施例中,在确定第一网络参数中的第一目标参数时,例如可以先采用如上描述的方式确定对第一训练数据进行嵌入处理所需的第一网络参数。具体可以先确定第一训练数据中包括的特征数据,将特征数据对应的所有网络参数作为第一网络参数。随后对第一网络参数进行去重处理,得到去重后网络参数。例如,可以根据特征数据的标识信息来对第一网络参数进行去重。随后再根据第一映射关系和去重后网络参数的标识信息,来确定去重后网络参数中未存储于目标存储器的网络参数,将确定的网络参数作为第一目标参数。
例如,还可以先根据特征数据的标识信息,来对第一训练数据中包括的特征数据进行去重。随后,将对去重后特征数据进行嵌入处理时所需的网络参数作为去重后网络参数。
由于第一训练数据通常包括多个训练数据,不同训练数据中可能包括有相同的特征数据。若将确定的所有第一网络参数均写入目标存储器,会存在相同的网络参数被写入目标存储器的多个槽的情况。而本公开实施例通过对第一网络参数进行去重,可以避免上述情况,并因此可以减少目标存储器的存储空间的浪费,利于提高目标存储器的存储空间的利用率,降低大规模模型训练时对目标存储器带来的压力,利于实现大规模模型的训练。
可以理解的是,在CPU将第一目标参数写入目标存储器后,例如还可以向目标处理器发送基于第一训练数据的训练任务信息,以使得目标处理器的计算核根据目标存储器中存储的第一网络参数对第一训练数据进行处理,并根据处理结果来调整第一网络参数。基于此,本公开还提供了另外一种模型处理方法。以下将结合图3对该另外一种模型训练方法进行详细描述。
图3是根据本公开另一实施例的深度学习模型的训练方法的流程示意图。
如图3所示,该实施例的深度学习模型的训练方法300可以包括操作S310~操作S340。该模型训练方法300可以由上文描述的电子设备执行。
在操作S310,第一处理器根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数。
根据本公开的实施例,第一处理器可以为上文描述的CPU,目标存储器为第二处理器所包括的存储器。其中,第二处理器与上文描述的目标处理器类似,该操作S310的实现方式与上文描述的操作S210类似,在此不再赘述。
在操作S320,第一处理器根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位。该操作S320与上文描述的操作S220类似,在此不再赘述。
在操作S330,第一处理器响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,并向第二处理器发送基于第一训练数据的训练任务信息。
在操作S340,第二处理器的计算核响应于接收到训练任务信息,根据第一训练数据对第一网络参数进行调整。
根据本公开的实施例,将第一目标参数写入目标存储器的实现方式与上文描述的操作S230的实现方式类似,在此不再赘述。
根据本公开的实施例,第一处理器可以在将第一目标参数写入目标存储器之后,再向第二处理器发送基于第一训练数据的训练任务信息。如此,第二处理器的计算核可以在接收到该训练任务信息后,直接调用目标存储器中存储的第一网络参数来对第一训练数据进行处理,并根据处理结果反向计算得到针对第一训练数据的梯度数据,以根据梯度数据对第一网络参数进行调整。
根据本公开的实施例,第一处理器还可以在将第一目标参数写入目标存储器的过程中,向第二处理器发送基于第一训练数据的训练任务信息。如此,第二处理器的计算核可以在接收到该训练任务信息后,逐步地调用目标存储器中存储的网络参数,在所需的网络参数还未被写入目标存储器时,则可以先暂定训练任务的执行,直至可以从目标存储器中读取到所需的网络参数。
根据本公开的实施例,在将第一目标参数写入目标存储器的同时,第一处理器还可以将第一训练数据写入第二处理器的缓存。训练任务信息中例如可以包括前向计算的任务信息、反向计算的任务信息和参数更新的任务信息等。其中,前向计算的任务信息例如可以包括第一训练数据的调用信息、网络参数的调用信息及损失loss的计算信息等。其中,网络参数的调用信息可以包括需要调用的网络参数的标识信息及网络参数的调用顺序信息等。反向计算的任务信息例如可以包括学习率等信息,参数更新的任务信息例如可以包括调整步长等。
本公开实施例通过由CPU中维护第一映射关系,并根据第一映射关系来确定目标存储器的剩余存储空间,并基于此来控制网络参数的写入,可以实现对显卡内存的存储空间的管理,避免在模型训练过程中因嵌入处理所需的网络参数过多而给显卡内存带来的巨大压力,利于降低大规模的深度学习模型训练对硬件条件的高要求,并利于实现大规模深度学习模型的训练。再者,由于该实施例中第一映射关系是维护在CPU可以访问的内存或缓存中的,相较于相关技术中将表示映射关系的哈希表存储在显卡内存中的技术方案,可以充分利用显卡内存来进行模型训练,也利于降低对显卡内存的压力,节省CPU与目标处理器之间的通信开销。
可以理解的是,如上文描述,在每个轮次的训练中,该实施例还可以将对训练数据进行预测处理所需的第三网络参数也写入目标存储器中,以供目标处理器的计算核调用,并根据调用结果对该第三网络参数进行调整。
为了更好地理解本公开,以下将结合图4对用来实现本公开提供的模型训练方法的处理器缓存的结构进行详细描述。
图4是根据本公开实施例的处理器缓存的结构示意图。
如图4所示,在实施例400中,为了实现本公开提供的深度学习模型的训练方法,处理器缓存的结构可以包括内存410和目标存储器420。该实施例以目标存储器420为显卡内存为例进行描述。可以理解的是,目标存储器420可以为任意的高带宽存储器(HighBandwidth Memory,HBM)。
其中,内存410中可以维护有第一哈希表411和第二哈希表412。其中,第一哈希表411用于表示上文描述的第一映射关系,第二哈希表412用于表示上文描述的第二映射关系。具体地,第一哈希表中的Key为特征数据的标识信息FeaSign,第一哈希表中的Value为显卡内存420中存储槽位的编号。第二哈希表中的Key为显卡内存420中存储槽位的编号,Value为特征数据的标签信息(Feature Meta,简称为FeaMeta),该标签信息可以包括特征数据的标识信息FeaSign,对特征数据进行嵌入处理时所需的网络参数的引用状态RefCount和使用次数FreqCount。
例如,设定该实施例中显卡内存420最多允许存储对100个特征数据进行嵌入处理的100组网络参数,则显卡内存420中的存储槽位包括100个,该100个存储槽位的编号分别为0、1、2、......、98、99。其中,每个存储槽位缓存的数据可以包括一组嵌入层网络参数和对该一组嵌入层网络参数进行调整时所需的超参数。
处理器CPU 430可以在执行如上文描述的深度学习模型的训练方法的相应操作时,通过查询第一映射表来确定显卡内存420中可用的存储槽位的数量,并为对训练数据进行嵌入处理时需要的待写入显卡内存420的目标参数分配存储槽位,并根据需求对内存410中存储的第一哈希表411和第二哈希表412中的信息进行查询、增加、删除等操作。
CPU 430还可以在执行深度学习模型的训练方法中的相应操作时,将需要缓存至显卡内存420的数据拷入分配的存储槽位,并在GPU等目标处理器完成对网络参数的调整及需要腾出存储槽位时,从显卡内存420中拷出相关的网络参数。在模型训练过程中,CPU 430实质上扮演了缓存管理者的角色。
在一实施例中,显卡内存420可以为人工智能芯片中的存储器。具体还可以为昆仑二代芯片中的存储器。如此,该实施例在执行深度学习模型的训练方法时,可以充分利用昆仑二代芯片的计算能力,利于实现大规模推荐模型的训练。
在一实施例中,可以在一个电子设备中设置多个目标处理器,以使得目标处理器根据不同的训练数据对深度学习模型进行并行训练,以此提高模型训练效率。
例如,上文描述的目标处理器包括多个处理器,在一个轮次的训练中,可以获取多批(batch)数据,该多个batch的数据构成第一训练数据。该实施例可以仅将对每个batch的数据进行嵌入处理所需的网络参数写入与该每个batch对应的处理器的目标存储器中,以此减小目标处理器中目标存储器的缓存压力。
例如,该实施例还可以在将第一目标参数写入目标存储器时,先确定第一目标参数中对与每个处理器对应的一批数据进行嵌入处理所需的参数,作为针对该每个处理器的指定参数。随后采用预定参数替换第一目标参数中除指定参数外的其他参数,从而得到针对该每个处理器的待写入参数。该待写入参数中的参数个数与第一目标参数的参数个数相同。随后根据为第一目标参数分配的存储槽位,将待写入参数写入每个处理器包括的目标存储器中。通过该方式,可以使得多个目标处理器所包括的多个目标存储器所存储的网络参数的个数及网络参数的分布相同。其中,预定参数可以为空值。如此,可以在减小目标处理器中目标存储器的缓存压力外,利于经由多个目标处理器彼此之间的通信来同步网络参数。
例如,多个目标处理器可以根据其目标存储器中存储的网络参数及网络参数所在槽位,对计算得到的网络参数的梯度数据进行同步。如此,可以减少目标处理器与CPU之间的通信开销。
具体地,每个处理器的计算核可以根据该每个处理器对应的一个batch的训练数据和网络参数进行前向计算和反向计算,得到针对第一网络参数的梯度数据。例如,计算核可以根据对应的一个batch的训练数据中的特征数据,从目标存储器中获取对特征数据进行嵌入处理和预测处理的网络参数,并根据网络参数对特征数据进行处理,得到处理结果。随后根据处理结果确定深度学习模型针对该一个batch的数据的损失loss,从而完成前向计算的任务。随后,根据该损失和对特征数据进行嵌入处理和预测处理的网络参数,采用反向传播算法计算得到针对第一网络参数的梯度数据,从而完成反向计算的任务。最后,依据第一网络参数所在的存储槽位与其他目标处理器的通信,以获取到其他目标处理器得到的针对第一网络参数的梯度数据。同时,还可以通过与其他目标处理器的通信,获取其他目标处理器得到的针对用于预测处理的第三网络参数的梯度数据。最后汇总所有的梯度数据,根据汇总结果来对第一网络参数和第三网络参数进行调整,从而完成参数更新的任务。
以下将结合图5对深度学习模型的训练方法的整体流程进行详细描述。
图5是根据本公开实施例的深度学习模型的训练方法的整体流程示意图。
如图5所示,该实施例的深度学习模型的训练方法500可以包括操作S501~操作S518。其中,除操作S509~操作S512由上文描述的目标处理器执行外,其他操作均由CPU执行。
在操作S501,获取批量的数据。具体可以从硬盘存储器或者外置的数据库中获取预定数量个样本数据,以对深度学习模型进行训练。
在操作S502,将数据全局打乱,以提高分批得到的训练数据的随机性。
在操作S503,获取当前训练轮次的数据。例如,可以从批量的数据中随机获取batch_size*卡数个训练数据,作为上文描述的第一训练数据。其中,卡数是指电子设备中设置的目标处理器的个数。batch_size可以根据实际需求进行设定。例如,该batch_size可以根据目标处理器中目标存储器的存储容量来定。例如,对batch_size个训练数据进行嵌入处理所需的网络参数的个数可以与目标存储器的存储容量相关。具体地,目标存储器中存储槽位的个数可以为嵌入处理所需的网络参数的组数的两倍。
在操作S504,确定目标存储器的剩余存储槽位是否充足。若充足,则执行操作S505~操作S513,否则执行操作S514~操作S516。可以理解的是,可以设定多个目标处理器为相同型号的处理器,多个目标处理器包括的多个目标存储器的存储容量的大小相等。
在操作S505,根据第一训练数据包括的特征数据的FeaSign,针对第一训练数据的嵌入处理所需的网络参数进行去重处理,得到上文描述去重后网络参数。
在操作S506,确定相对于目标存储器中缓存参数的增量。即根据第一映射关系将去重后网络参数与目标存储器中存储网络参数进行比较,确定需要写入目标存储器的网络参数,得到上文描述的第一目标参数。
在操作S507,为需要写入目标存储器的网络参数分配存储槽位,并根据分配结果更新第一映射关系和第二映射关系,具体可以在第一映射关系中添加FId和FeaSign的映射关系,在第二映射关系中添加FId与FeaMeta的映射关系,并将第一网络参数中每组网络参数对应的特征数据的FeaMeta数据进行更新,具体将RefCount和FreqCount均加1。
在操作S508,向目标存储器中拷入(Pull)新增的网络参数,具体可以采用如上文描述的根据预定参数的方式确定针对每个目标存储器的待写入参数,并将待写入参数写入分配的存储槽位中。如此,每个目标处理器即可调用目标存储器中的网络参数,依据一个batch的训练样本,执行操作S509~操作S512。可以理解的是,还可以将预测网络的第三网络参数拷入多个目标处理器中每个目标处理器包括的目标存储器。
在操作S509,执行前向计算任务,以得到深度学习模型针对该一个batch的训练样本的损失loss。
在操作S510,执行反向计算任务,以根据损失loss计算得到针对一个batch的训练样本的梯度数据。该梯度数据应包括第一网络参数的梯度数据和第三网络参数的梯度数据。
在操作S511,采用全局归约算法(AllReduce算法)来汇聚多个目标处理器得到的梯度数据。可以理解的是,在对第一网络参数的梯度数据进行汇聚时,应以第一网络参数所在的存储槽位作为参考,这是由于不同的目标存储器中存储的第一网络参数的值存在差异。
在操作S512,根据汇聚结果来更新目标存储器中存储的网络参数的取值。汇聚结果例如可以包括对针对每个网络参数的所有梯度数据计算平均值,得到最终梯度,并根据最终梯度更新每个网络参数的取值。
在操作S513,将当前batch所用到的网络参数所对应的特征数据的RefCount值减1。至此,目标处理器完成根据第一训练数据对网络参数的调整。
在操作S514,滤出RefCount为0且FreqCount低的可转移网络参数。其中,可转移网络参数对应的特征数据的RefCount为0,FreqCount的取值低于次数阈值。
在操作S515,从目标存储器中拷出该可转移网络参数,并将拷出的可转移网络参数缓存至内存中。
在操作S516,删除第一映射关系中可转移网络参数对应的特征数据的FeaSign与FId的映射关系。在执行完操作S516后,可以返回执行操作S504,以重新确定剩余存储槽位是否充足。
根据本公开的实施例,在目标处理器完成根据第一训练数据对网络参数的调整后,CPU例如可以执行操作S517,确定获取的批量数据是否均被训练完。即获取的批量数据是否均被作为训练数据进行了深度学习模型的训练。若是,则执行操作S518,将目标存储器(例如HMB)中存储的更新后的网络参数拷出并写入内存或者硬盘存储器。若否,则返回执行操作S503,以开始下一训练轮次的训练。
为了更好地理解本公开提供的深度学习模型的训练方法,以下将结合图6提供的处理器的单机多卡的通信拓扑进行详细描述。
图6是根据本公开实施例的处理器的单机多卡的通信拓扑结构图。
如图6所示,在实施例600中,单机多卡结构的电子设备可以包括一个CPU和四个XPU,例如可以包括XPU#0~XPU#3。其中,CPU例如可以通过PCIe(Peripheral ComponentInterconnect Express)接口与四个XPU通信连接。网络接口控制器(Network InterfaceController,NIC)用于使得电子设备与局域网连接。其中,NIC例如可以通过以太网与接入交换机(TOR Switch)连接,以使得电子设备接入局域网。其中,XPU可以指昆仑芯片,具体例如可以指昆仑二代芯片。
其中,四个XPU中,XPU#0与XPU#1之间、XPU#0与XPU#3之间、XPU#1与XPU#2之间以及XPU#2与XPU#3之间可以经由缓存一致性互联协议(CCIX)连接形成处理器环。其中,CCIX能够将两个或两个以上器件通过缓存一致性的方式来共享数据的片间互联。该片间互联的结构为全局归约算法的使用提供了基础。可以理解的是,图6所示的拓扑结构可以为昆仑二代芯片的通信拓扑,通过该拓扑结构,可以达到支持部分稀疏参数(进行嵌入处理的网络参数)的AllReduce通信。可以理解的是,该实施例也可以采用每个XPU将全部梯度数据广播给其他XPU,并接收其他XPU的全部梯度数据的方式来进行网络参数的调整。在该方式中,XPU#0广播的梯度数据例如可以经由XPU#3、XPU#1或者CPU#1转发给XPU#2。
在一实施例中,如图6所示,在训练深度学习模型时,还可以采用量个电子设备或者更多个电子设备,该多个电子设备之间可以经由局域网连接,多个电子设备中的CPU可以经由公共系统接口(Common System Interface,QPI)通信连接,其中,QPI是一种实现芯片间之间互联的架构。
基于本公开提供的网络架构,由于可以实现Sparse参数的AllReduce通信,因此可以实现多个目标处理器对深度学习模型的同步训练,还可以实现对大规模深度学习模型的训练,并因此可以减小通信开销。
根据本公开的实施例,还可以采用异步流水线方式来对深度学习模型进行训练,以此提高模型训练效率。
图7是根据本公开实施例以异步流水线形式训练模型的原理示意图。
如图7所示,在实施例700中,在对深度学习模型进行训练时,可以进行异步化的流水线(Pipeline)设计。例如,在目标处理器的计算核执行当前训练轮次的训练任务730时,CPU可以对下一训练轮次的训练数据进行预处理710,并在完成预处理后,为需要写入目标存储器的目标参数分配槽位,并将目标参数拷贝至目标存储器,即执行分配槽位并拷贝数据的任务720。如此,在计算核执行完当前训练轮次的训练任务730后,即可直接执行下一训练轮次的训练任务。通过该方式,可以有效提高模型训练效率,减小相邻两轮迭代训练之间的间隔等待世家你,提升目标处理器的利用率。
具体地,在该实施例700中,CPU可以响应于计算核根据第一训练数据对第一网络参数进行训练,根据下一训练轮次的第二训练数据,确定对第二训练数据进行嵌入处理所需的第二网络参数中需要写入目标存储器的第二目标参数。随后根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位。随后在剩余存储槽位满足第二目标参数的存储需求时,为第二目标参数分配存储槽位并将第二目标参数写入目标存储器。
基于本公开提供的深度学习模型的训练方法,本公开还提供了一种深度学习模型的训练装置,以下将结合图8对该装置进行详细描述。
图8是根据本公开实施例的深度学习模型的训练装置的结构框图。
如图8所示,该实施例的深度学习模型的训练装置800可以包括目标参数确定模块810、剩余槽位确定模块820和参数写入模块830。
目标参数确定模块810用于根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数。其中,目标存储器为目标处理器所包括的存储器。在一实施例中,目标参数确定模块810可以用于执行上文描述的操作S210,在此不再赘述。
剩余槽位确定模块820用于根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位。在一实施例中,剩余槽位确定模块820可以用于执行上文描述的操作S220,在此不再赘述。
参数写入模块830用于响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,以使得目标处理器包括的计算核根据第一训练数据对第一网络参数进行调整。在一实施例中,参数写入模块830可以用于执行上文描述的操作S230,在此不再赘述。
根据本公开的实施例,上述装置800还可以包括:槽位分配模块,用于响应于剩余存储槽位满足第一目标参数的存储需求,为第一目标参数分配剩余存储槽位中的存储槽位;以及第一关系更新模块,用于根据为第一目标参数分配的存储槽位的标识信息和第一目标参数的标识信息,更新第一映射关系。其中,参数写入模块830用于将第一目标参数写入为第一目标参数分配的存储槽位处。
根据本公开的实施例,上述目标参数确定模块810可以包括:所需参数确定子模块,用于确定对第一训练数据进行嵌入处理所需的第一网络参数;去重子模块,用于对第一网络参数进行去重处理,得到去重后网络参数;以及目标参数确定子模块,用于根据第一映射关系和去重后网络参数的标识信息,确定去重后网络参数中未存储于目标存储器的网络参数,作为第一目标参数。
根据本公开的实施例,上述装置800还可以包括:转移参数确定模块,用于响应于剩余存储槽位不满足第一目标参数的存储需求,确定已存储于目标存储器的网络参数中的可转移网络参数;以及参数转移模块,用于将可转移网络参数从目标存储器转移至内存中。其中,参数写入模块830还用于响应于可转移网络参数被转移至内存,将第一目标参数写入目标存储器。
根据本公开的实施例,转移参数确定模块用于根据目标存储器的存储槽位与存储槽位存储的网络参数的参数状态之间的第二映射关系,确定参数状态为目标状态的网络参数为可转移网络参数。其中,参数状态包括以下至少之一:引用状态、使用次数;目标状态包括以下至少之一:引用状态为未被引用的状态;使用次数小于次数阈值。上述装置800还可以包括:槽位分配模块,用于响应于可转移网络参数被转移至内存,为第一目标参数分配目标存储器中的剩余存储槽位;以及第二关系更新模块,用于根据为第一目标参数分配的存储槽位和第一网络参数中除第一目标参数外其他参数所在的存储槽位,对第二映射关系进行更新,以更新第一网络参数的参数状态。
根据本公开的实施例,第二关系更新模块还可以用于响应于计算核完成对第一网络参数的调整,对第二映射关系进行更新,以更新第一网络参数的引用状态。
根据本公开的实施例,上述参数转移模块具体可以用于响应于内存的剩余存储空间小于空间阈值,将可转移网络参数经由内存写入硬盘存储器。
根据本公开的实施例,上述目标参数确定模块810还用于:响应于计算核根据第一训练数据对第一网络参数进行训练,根据下一训练轮次的第二训练数据,确定对第二训练数据进行嵌入处理所需的第二网络参数中需要写入目标存储器的第二目标参数。上述剩余槽位确定模块820还用于:根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位。上述参数写入模块830还用于:响应于剩余存储槽位满足第二目标参数的存储需求,将第二目标参数写入目标存储器。
根据本公开的实施例,目标处理器包括多个处理器;第一训练数据包括与多个处理器分别对应的多批数据。上述参数写入模块830可以包括:指定参数确定子模块,用于针对多个处理器中的每个处理器,确定第一目标参数中对与每个处理器对应的一批数据进行嵌入处理所需的指定参数;参数替换子模块,用于采用预定参数值替换第一目标参数中除指定参数外的其他参数,得到针对每个处理器的待写入参数;以及写入子模块,用于将待写入参数写入每个处理器包括的目标存储器,以使得每个处理器包括的计算核根据与每个处理器对应的一批数据对指定参数进行训练。
根据本公开的实施例,针对多批数据中的每批数据,对每批数据进行嵌入处理所需的网络参数的个数与每批数据对应的处理器中目标存储器的存储容量相关。
根据本公开的实施例,上述参数写入模块830还用于将对多批数据进行预测处理所需的第三网络参数写入每个处理器中的目标存储器,以使得每个处理器包括的计算核根据每个处理器对应的一批数据对第三网络参数进行调整。
基于本公开另一实施例提供的深度学习模型的训练方法,本公开还提供了一种深度学习模型的训练系统,以下将结合图9对该系统进行详细描述。
图9是根据本公开实施例的深度学习模型的训练系统的结构框图。
如图9所示,该实施例的深度学习模型的训练系统900可以包括第一处理器910和第二和处理器920,其中第二处理器包括目标存储器和计算核。
第一处理器910被配置为:根据当前训练轮次的第一训练数据,确定对第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;根据目标存储器的存储槽位和网络参数之间的第一映射关系,确定目标存储器中的剩余存储槽位;以及响应于剩余存储槽位满足第一目标参数的存储需求,将第一目标参数写入目标存储器,并向第二处理器发送基于第一训练数据的训练任务信息。可以理解的是,第一处理器可以被配置为执行上文描述的操作S310~操作S330,在此不再赘述。
第二处理器920被配置为:计算核响应于接收到训练任务信息,根据第一训练数据对第一网络参数进行调整。
根据本公开的实施例,第二处理器包括多个处理器;第一训练数据包括与多个处理器分别对应的多批数据。上述第一处理器910被配置为通过以下方式将第一目标参数写入目标存储器:针对多个处理器中的每个处理器,确定第一目标参数中对与每个处理器对应的一批数据进行嵌入处理所需的指定参数;采用预定参数替换第一目标参数中除指定参数外的其他参数,得到针对每个处理器的待写入参数;以及将待写入参数写入每个处理器包括的目标存储器。
根据本公开的实施例,多个处理器经由缓存一致性互联协议连接形成处理器环。多个处理器中的每个处理器被配置为通过以下方式对第一网络参数进行调整:计算核根据与每个处理器对应的一批数据和指定参数进行前向计算和反向计算,得到针对第一网络参数的梯度数据;以及依据第一网络参数所在的存储槽位,采用全局归约算法来根据针对第一网络参数的梯度数据与多个处理器中其他处理器得到的梯度数据,对第一网络参数进行调整。
根据本公开的实施例,第二处理器包括人工智能芯片;人工智能芯片包括昆仑芯二代芯片。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图10示出了可以用来实施本公开实施例的深度学习模型的训练方法的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如深度学习模型的训练方法。例如,在一些实施例中,深度学习模型的训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的深度学习模型的训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行深度学习模型的训练方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (33)
1.一种深度学习模型的训练方法,包括:
根据当前训练轮次的第一训练数据,确定对所述第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;其中,所述目标存储器为目标处理器所包括的存储器;
根据所述目标存储器的存储槽位和网络参数之间的第一映射关系,确定所述目标存储器中的剩余存储槽位;以及
响应于所述剩余存储槽位满足所述第一目标参数的存储需求,将所述第一目标参数写入所述目标存储器,以使得所述目标处理器包括的计算核根据所述第一训练数据对所述第一网络参数进行调整。
2.根据权利要求1所述的方法,还包括:
响应于所述剩余存储槽位满足所述第一目标参数的存储需求,为所述第一目标参数分配所述剩余存储槽位中的存储槽位;以及
根据为所述第一目标参数分配的存储槽位的标识信息和所述第一目标参数的标识信息,更新所述第一映射关系,
其中,将所述第一目标参数写入所述目标存储器包括:将所述第一目标参数写入为所述第一目标参数分配的存储槽位处。
3.根据权利要求1所述的方法,其中,确定对所述第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数包括:
确定对所述第一训练数据进行嵌入处理所需的第一网络参数;
对所述第一网络参数进行去重处理,得到去重后网络参数;以及
根据所述第一映射关系和所述去重后网络参数的标识信息,确定所述去重后网络参数中未存储于所述目标存储器的网络参数,作为所述第一目标参数。
4.根据权利要求1所述的方法,还包括:
响应于所述剩余存储槽位不满足所述第一目标参数的存储需求,确定已存储于所述目标存储器的网络参数中的可转移网络参数;
将所述可转移网络参数从所述目标存储器转移至内存中;以及
响应于所述可转移网络参数被转移至所述内存,将所述第一目标参数写入所述目标存储器。
5.根据权利要求4所述的方法,其中,确定已存储于所述目标存储器的网络参数中的可转移网络参数包括:
根据所述目标存储器的存储槽位与存储槽位存储的网络参数的参数状态之间的第二映射关系,确定参数状态为目标状态的网络参数为所述可转移网络参数,
其中,所述参数状态包括以下至少之一:引用状态、使用次数;所述目标状态包括以下至少之一:引用状态为未被引用的状态;使用次数小于次数阈值;
所述方法还包括:
响应于所述可转移网络参数被转移至所述内存,为所述第一目标参数分配所述目标存储器中的剩余存储槽位;以及
根据为所述第一目标参数分配的存储槽位和所述第一网络参数中除所述第一目标参数外其他参数所在的存储槽位,对所述第二映射关系进行更新,以更新所述第一网络参数的参数状态。
6.根据权利要求5所述的方法,还包括:
响应于所述计算核完成对所述第一网络参数的调整,对所述第二映射关系进行更新,以更新所述第一网络参数的引用状态。
7.根据权利要求4所述的方法,其中,所述将所述可转移网络参数从所述目标存储器转移至内存中包括:
响应于所述内存的剩余存储空间小于空间阈值,将所述可转移网络参数经由所述内存写入硬盘存储器。
8.根据权利要求1所述的方法,还包括:
响应于所述计算核根据所述第一训练数据对所述第一网络参数进行训练,根据下一训练轮次的第二训练数据,确定对所述第二训练数据进行嵌入处理所需的第二网络参数中需要写入目标存储器的第二目标参数;
根据所述目标存储器的存储槽位和网络参数之间的第一映射关系,确定所述目标存储器中的剩余存储槽位;以及
响应于所述剩余存储槽位满足所述第二目标参数的存储需求,将所述第二目标参数写入所述目标存储器。
9.根据权利要求1所述的方法,其中,所述目标处理器包括多个处理器;所述第一训练数据包括与所述多个处理器分别对应的多批数据;将所述第一目标参数写入所述目标存储器包括:
针对所述多个处理器中的每个处理器,确定所述第一目标参数中对与所述每个处理器对应的一批数据进行嵌入处理所需的指定参数;
采用预定参数值替换所述第一目标参数中除所述指定参数外的其他参数,得到针对所述每个处理器的待写入参数;以及
将所述待写入参数写入所述每个处理器包括的目标存储器,以使得所述每个处理器包括的计算核根据与所述每个处理器对应的一批数据对所述指定参数进行训练。
10.根据权利要求9所述的方法,其中:
针对所述多批数据中的每批数据,对所述每批数据进行嵌入处理所需的网络参数的个数与所述每批数据对应的处理器中目标存储器的存储容量相关。
11.根据权利要求9所述的方法,还包括:
将对所述多批数据进行预测处理所需的第三网络参数写入所述每个处理器中的目标存储器,以使得所述每个处理器包括的计算核根据所述每个处理器对应的一批数据对所述第三网络参数进行调整。
12.一种深度学习模型的训练方法,包括:
第一处理器根据当前训练轮次的第一训练数据,确定对所述第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;其中,所述目标存储器为第二处理器所包括的存储器;
第一处理器根据所述目标存储器的存储槽位和网络参数之间的第一映射关系,确定所述目标存储器中的剩余存储槽位;
第一处理器响应于所述剩余存储槽位满足所述第一目标参数的存储需求,将所述第一目标参数写入所述目标存储器,并向所述第二处理器发送基于所述第一训练数据的训练任务信息;以及
所述第二处理器的计算核响应于接收到所述训练任务信息,根据所述第一训练数据对所述第一网络参数进行调整。
13.根据权利要求12所述的方法,其中,所述第二处理器包括多个处理器;所述第一训练数据包括与所述多个处理器分别对应的多批数据;将所述第一目标参数写入所述目标存储器包括:
针对所述多个处理器中的每个处理器,确定所述第一目标参数中对与所述每个处理器对应的一批数据进行嵌入处理所需的指定参数;
采用预定参数替换所述第一目标参数中除所述指定参数外的其他参数,得到针对所述每个处理器的待写入参数;以及
将所述待写入参数写入所述每个处理器包括的目标存储器。
14.根据权利要求13所述的方法,其中,所述多个处理器经由缓存一致性互联协议连接形成处理器环;根据所述第一训练数据对所述第一网络参数进行调整包括:
所述多个处理器中每个处理器的计算核根据与所述每个处理器对应的一批数据和所述指定参数进行前向计算和反向计算,得到针对所述第一网络参数的梯度数据;以及
所述每个处理器依据所述第一网络参数所在的存储槽位,采用全局归约算法来根据针对所述第一网络参数的梯度数据与所述多个处理器中其他处理器得到的梯度数据,对所述第一网络参数进行调整。
15.根据权利要求12~14中任一项所述的方法,其中,所述第二处理器包括人工智能芯片;所述人工智能芯片包括昆仑芯二代芯片。
16.一种深度学习模型的训练装置,包括:
目标参数确定模块,用于根据当前训练轮次的第一训练数据,确定对所述第一训练数据进行嵌入处理所需的第一网络参数中需要写入目标存储器的第一目标参数;其中,所述目标存储器为目标处理器所包括的存储器;
剩余槽位确定模块,用于根据所述目标存储器的存储槽位和网络参数之间的第一映射关系,确定所述目标存储器中的剩余存储槽位;以及
参数写入模块,用于响应于所述剩余存储槽位满足所述第一目标参数的存储需求,将所述第一目标参数写入所述目标存储器,以使得所述目标处理器包括的计算核根据所述第一训练数据对所述第一网络参数进行调整。
17.根据权利要求16所述的装置,还包括:
槽位分配模块,用于响应于所述剩余存储槽位满足所述第一目标参数的存储需求,为所述第一目标参数分配所述剩余存储槽位中的存储槽位;以及
第一关系更新模块,用于根据为所述第一目标参数分配的存储槽位的标识信息和所述第一目标参数的标识信息,更新所述第一映射关系,
其中,所述参数写入模块用于将所述第一目标参数写入为所述第一目标参数分配的存储槽位处。
18.根据权利要求16所述的装置,其中,所述目标参数确定模块包括:
所需参数确定子模块,用于确定对所述第一训练数据进行嵌入处理所需的第一网络参数;
去重子模块,用于对所述第一网络参数进行去重处理,得到去重后网络参数;以及
目标参数确定子模块,用于根据所述第一映射关系和所述去重后网络参数的标识信息,确定所述去重后网络参数中未存储于所述目标存储器的网络参数,作为所述第一目标参数。
19.根据权利要求16所述的装置,还包括:
转移参数确定模块,用于响应于所述剩余存储槽位不满足所述第一目标参数的存储需求,确定已存储于所述目标存储器的网络参数中的可转移网络参数;以及
参数转移模块,用于将所述可转移网络参数从所述目标存储器转移至内存中,
其中,所述参数写入模块还用于响应于所述可转移网络参数被转移至所述内存,将所述第一目标参数写入所述目标存储器。
20.根据权利要求19所述的装置,其中,所述转移参数确定模块用于:
根据所述目标存储器的存储槽位与存储槽位存储的网络参数的参数状态之间的第二映射关系,确定参数状态为目标状态的网络参数为所述可转移网络参数,
其中,所述参数状态包括以下至少之一:引用状态、使用次数;所述目标状态包括以下至少之一:引用状态为未被引用的状态;使用次数小于次数阈值;
所述装置还包括:
槽位分配模块,用于响应于所述可转移网络参数被转移至所述内存,为所述第一目标参数分配所述目标存储器中的剩余存储槽位;以及
第二关系更新模块,用于根据为所述第一目标参数分配的存储槽位和所述第一网络参数中除所述第一目标参数外其他参数所在的存储槽位,对所述第二映射关系进行更新,以更新所述第一网络参数的参数状态。
21.根据权利要求20所述的装置,其中,所述第二关系更新模块还用于:
响应于所述计算核完成对所述第一网络参数的调整,对所述第二映射关系进行更新,以更新所述第一网络参数的引用状态。
22.根据权利要求19所述的装置,其中,所述参数转移模块用于:
响应于所述内存的剩余存储空间小于空间阈值,将所述可转移网络参数经由所述内存写入硬盘存储器。
23.根据权利要求16所述的装置,其中:
所述目标参数确定模块还用于:响应于所述计算核根据所述第一训练数据对所述第一网络参数进行训练,根据下一训练轮次的第二训练数据,确定对所述第二训练数据进行嵌入处理所需的第二网络参数中需要写入目标存储器的第二目标参数;
所述剩余槽位确定模块还用于:根据所述目标存储器的存储槽位和网络参数之间的第一映射关系,确定所述目标存储器中的剩余存储槽位;以及
所述参数写入模块还用于:响应于所述剩余存储槽位满足所述第二目标参数的存储需求,将所述第二目标参数写入所述目标存储器。
24.根据权利要求16所述的装置,其中,所述目标处理器包括多个处理器;所述第一训练数据包括与所述多个处理器分别对应的多批数据;所述参数写入模块包括:
指定参数确定子模块,用于针对所述多个处理器中的每个处理器,确定所述第一目标参数中对与所述每个处理器对应的一批数据进行嵌入处理所需的指定参数;
参数替换子模块,用于采用预定参数值替换所述第一目标参数中除所述指定参数外的其他参数,得到针对所述每个处理器的待写入参数;以及
写入子模块,用于将所述待写入参数写入所述每个处理器包括的目标存储器,以使得所述每个处理器包括的计算核根据与所述每个处理器对应的一批数据对所述指定参数进行训练。
25.根据权利要求24所述的装置,其中:
针对所述多批数据中的每批数据,对所述每批数据进行嵌入处理所需的网络参数的个数与所述每批数据对应的处理器中目标存储器的存储容量相关。
26.根据权利要求24所述的装置,其中,所述参数写入模块还用于:
将对所述多批数据进行预测处理所需的第三网络参数写入所述每个处理器中的目标存储器,以使得所述每个处理器包括的计算核根据所述每个处理器对应的一批数据对所述第三网络参数进行调整。
27.一种深度学习模型的训练系统,包括第一处理器和第二处理器,所述第二处理器包括目标存储器和计算核;其中:
所述第一处理器被配置为:
根据当前训练轮次的第一训练数据,确定对所述第一训练数据进行嵌入处理所需的第一网络参数中需要写入所述目标存储器的第一目标参数;
根据所述目标存储器的存储槽位和网络参数之间的第一映射关系,确定所述目标存储器中的剩余存储槽位;以及
响应于所述剩余存储槽位满足所述第一目标参数的存储需求,将所述第一目标参数写入所述目标存储器,并向所述第二处理器发送基于所述第一训练数据的训练任务信息;以及
所述第二处理器被配置为:所述计算核响应于接收到所述训练任务信息,根据所述第一训练数据对所述第一网络参数进行调整。
28.根据权利要求27所述的系统,其中,所述第二处理器包括多个处理器;所述第一训练数据包括与所述多个处理器分别对应的多批数据;所述第一处理器被配置为通过以下方式将所述第一目标参数写入所述目标存储器:
针对所述多个处理器中的每个处理器,确定所述第一目标参数中对与所述每个处理器对应的一批数据进行嵌入处理所需的指定参数;
采用预定参数替换所述第一目标参数中除所述指定参数外的其他参数,得到针对所述每个处理器的待写入参数;以及
将所述待写入参数写入所述每个处理器包括的目标存储器。
29.根据权利要求28所述的系统,其中,所述多个处理器经由缓存一致性互联协议连接形成处理器环;所述每个处理器被配置为通过以下方式对所述第一网络参数进行调整:
计算核根据与所述每个处理器对应的一批数据和所述指定参数进行前向计算和反向计算,得到针对所述第一网络参数的梯度数据;以及
依据所述第一网络参数所在的存储槽位,采用全局归约算法来根据针对所述第一网络参数的梯度数据与所述多个处理器中其他处理器得到的梯度数据,对所述第一网络参数进行调整。
30.根据权利要求27~29中任一项所述的系统,其中,所述第二处理器包括人工智能芯片;所述人工智能芯片包括昆仑芯二代芯片。
31.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~15中任一项所述的方法。
32.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1~15中任一项所述的方法。
33.一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现根据权利要求1~15中任一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210559489.0A CN114861911B (zh) | 2022-05-19 | 2022-05-19 | 深度学习模型的训练方法、装置、系统、设备和介质 |
KR1020247009547A KR20240046596A (ko) | 2022-05-19 | 2022-09-27 | 딥러닝 모델의 훈련 방법, 장치, 시스템, 기기, 매체 및 컴퓨터 프로그램 |
PCT/CN2022/121697 WO2023221360A1 (zh) | 2022-05-19 | 2022-09-27 | 深度学习模型的训练方法、装置、系统、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210559489.0A CN114861911B (zh) | 2022-05-19 | 2022-05-19 | 深度学习模型的训练方法、装置、系统、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114861911A true CN114861911A (zh) | 2022-08-05 |
CN114861911B CN114861911B (zh) | 2023-04-07 |
Family
ID=82639886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210559489.0A Active CN114861911B (zh) | 2022-05-19 | 2022-05-19 | 深度学习模型的训练方法、装置、系统、设备和介质 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR20240046596A (zh) |
CN (1) | CN114861911B (zh) |
WO (1) | WO2023221360A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115965074A (zh) * | 2022-11-28 | 2023-04-14 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、数据处理方法、装置和设备 |
CN116187426A (zh) * | 2022-11-09 | 2023-05-30 | 北京百度网讯科技有限公司 | 深度学习模型的模型参数多流广播方法及其装置 |
CN116185307A (zh) * | 2023-04-24 | 2023-05-30 | 之江实验室 | 一种模型数据的存储方法、装置、存储介质及电子设备 |
CN116934571A (zh) * | 2023-07-20 | 2023-10-24 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备和存储介质 |
WO2023221360A1 (zh) * | 2022-05-19 | 2023-11-23 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、装置、系统、设备和介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743973B (zh) * | 2024-02-19 | 2024-05-28 | 北京搜狐新媒体信息技术有限公司 | 一种参数处理方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015083B1 (en) * | 2012-03-23 | 2015-04-21 | Google Inc. | Distribution of parameter calculation for iterative optimization methods |
CN108053029A (zh) * | 2017-12-27 | 2018-05-18 | 宁波山丘电子科技有限公司 | 一种基于存储阵列的神经网络的训练方法 |
CN112257844A (zh) * | 2020-09-29 | 2021-01-22 | 浙江大学 | 一种基于混合精度配置的卷积神经网络加速器及其实现方法 |
CN112650443A (zh) * | 2019-10-11 | 2021-04-13 | 三星电子株式会社 | 控制非易失性存储器装置的存储控制器的操作方法 |
CN113159284A (zh) * | 2021-03-31 | 2021-07-23 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN113408696A (zh) * | 2021-05-17 | 2021-09-17 | 珠海亿智电子科技有限公司 | 深度学习模型的定点量化方法及装置 |
CN113505887A (zh) * | 2021-09-12 | 2021-10-15 | 浙江大学 | 一种针对忆阻器误差的忆阻器存储器神经网络训练方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017212459A1 (en) * | 2016-06-09 | 2017-12-14 | Sentient Technologies (Barbados) Limited | Content embedding using deep metric learning algorithms |
CN109656722B (zh) * | 2019-01-04 | 2021-05-11 | Oppo广东移动通信有限公司 | 内存优化方法、装置、移动终端及存储介质 |
CN110532198B (zh) * | 2019-09-09 | 2023-08-08 | 成都西山居互动娱乐科技有限公司 | 一种存储空间分配的方法及装置 |
CN113885691B (zh) * | 2021-09-30 | 2024-06-11 | 上海阡视科技有限公司 | 芯片功耗调整、神经网络训练方法、装置以及芯片系统 |
CN114492794A (zh) * | 2022-01-28 | 2022-05-13 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置、设备、介质和产品 |
CN114861911B (zh) * | 2022-05-19 | 2023-04-07 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、装置、系统、设备和介质 |
-
2022
- 2022-05-19 CN CN202210559489.0A patent/CN114861911B/zh active Active
- 2022-09-27 KR KR1020247009547A patent/KR20240046596A/ko unknown
- 2022-09-27 WO PCT/CN2022/121697 patent/WO2023221360A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015083B1 (en) * | 2012-03-23 | 2015-04-21 | Google Inc. | Distribution of parameter calculation for iterative optimization methods |
CN108053029A (zh) * | 2017-12-27 | 2018-05-18 | 宁波山丘电子科技有限公司 | 一种基于存储阵列的神经网络的训练方法 |
CN112650443A (zh) * | 2019-10-11 | 2021-04-13 | 三星电子株式会社 | 控制非易失性存储器装置的存储控制器的操作方法 |
CN112257844A (zh) * | 2020-09-29 | 2021-01-22 | 浙江大学 | 一种基于混合精度配置的卷积神经网络加速器及其实现方法 |
CN113159284A (zh) * | 2021-03-31 | 2021-07-23 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN113408696A (zh) * | 2021-05-17 | 2021-09-17 | 珠海亿智电子科技有限公司 | 深度学习模型的定点量化方法及装置 |
CN113505887A (zh) * | 2021-09-12 | 2021-10-15 | 浙江大学 | 一种针对忆阻器误差的忆阻器存储器神经网络训练方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023221360A1 (zh) * | 2022-05-19 | 2023-11-23 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、装置、系统、设备和介质 |
CN116187426A (zh) * | 2022-11-09 | 2023-05-30 | 北京百度网讯科技有限公司 | 深度学习模型的模型参数多流广播方法及其装置 |
CN116187426B (zh) * | 2022-11-09 | 2024-04-19 | 北京百度网讯科技有限公司 | 深度学习模型的模型参数多流广播方法及其装置 |
CN115965074A (zh) * | 2022-11-28 | 2023-04-14 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、数据处理方法、装置和设备 |
CN115965074B (zh) * | 2022-11-28 | 2023-11-10 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、数据处理方法、装置和设备 |
CN116185307A (zh) * | 2023-04-24 | 2023-05-30 | 之江实验室 | 一种模型数据的存储方法、装置、存储介质及电子设备 |
CN116934571A (zh) * | 2023-07-20 | 2023-10-24 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20240046596A (ko) | 2024-04-09 |
WO2023221360A1 (zh) | 2023-11-23 |
CN114861911B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114861911B (zh) | 深度学习模型的训练方法、装置、系统、设备和介质 | |
CN112860695B (zh) | 监控数据查询方法、装置、设备、存储介质及程序产品 | |
CN106302780B (zh) | 集群设备批量传输数据的方法、装置及系统、服务器 | |
CN104102693A (zh) | 对象处理方法和装置 | |
US20230333764A1 (en) | Method and apparatus for compressing data of storage system, device, and readable storage medium | |
CN113656176B (zh) | 云设备的分配方法、装置、系统、电子设备、介质及产品 | |
WO2022142478A1 (zh) | 一种模型计算方法及系统 | |
CN114911596B (zh) | 针对模型训练的调度方法、装置、电子设备和存储介质 | |
CN114548426A (zh) | 异步联邦学习的方法、业务服务的预测方法、装置及系统 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN115129621A (zh) | 一种内存管理方法、设备、介质及内存管理模块 | |
CN115604269A (zh) | 一种服务器的负载均衡方法、装置、电子设备及存储介质 | |
CN111857992A (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
CN112671892B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN113347238A (zh) | 基于区块链的消息分区方法及系统、设备、存储介质 | |
CN113590329A (zh) | 资源处理方法及装置 | |
CN112615795A (zh) | 流量控制方法、装置、电子设备、存储介质及产品 | |
CN116540938A (zh) | 数据读取方法、装置、分布式存储系统、设备和存储介质 | |
CN116594563A (zh) | 分布式存储扩容方法、装置、电子设备和存储介质 | |
CN115438007A (zh) | 一种文件合并方法、装置、电子设备及介质 | |
CN113641688A (zh) | 节点更新方法、相关装置及计算机程序产品 | |
CN111538487A (zh) | 分布式并行网格生成软件框架 | |
WO2023222113A1 (zh) | 稀疏参数的更新方法、训练节点、设备和存储介质 | |
CN115454344A (zh) | 一种数据存储方法、装置、电子设备及存储介质 | |
CN112560936B (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 |