一种模型训练方法及装置制造方法及图纸

技术编号:29404201 阅读:19 留言:0更新日期:2021-07-23 22:42
本申请公开了一种模型训练方法,应用于人工智能领域,所述方法包括:第一处理器中的计算核获取用于进行模型训练的embedding,在完成模型训练后,将更新后的embedding写入第一处理器中的第一存储器,而不是传递至第二处理器中。本申请中,第一处理器在完成embedding的更新后,将更新后的embedding存储至第一处理器的第一存储器中,在保证了第一处理器可以获取到最新更新的embedding的前提下,使得第一处理器不需要等待第二处理器将第二目标embedding传递至GPU的过程完成,就可以直接获取到更新后的embedding,并基于更新后的embedding进行下一轮模型训练,本申请可以处理器在进行模型训练时的训练数据的处理速度。

【技术实现步骤摘要】
一种模型训练方法及装置
本申请涉及人工智能领域,尤其涉及一种模型训练方法及装置。
技术介绍
人工智能(artificialintelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。基于海量用户和推荐对象的交互行为信息,通过梯度下降等方法,训练推荐模型参数,当模型参数收敛后,可以对用户进行个性化推荐。以个性化推荐系统中的点击率为例,输入特征包括用户特征,商品特征,用户历史行为特征和上下文特征,其中特征又分为连续特征和离散特征。对于离散特征,使用one-hot进行稀疏编码,然后通过编码id从embeddingtable中取出embedding向量表达,将原始离散特征id进行向量化,然后输入推荐模型中训练学习,进行预测。训练模型规模的大小和数据量对模型在线服务的效果有直接影响。推荐系统中,为了使模型可以更为精准的预测用户兴趣,往往需要使用海量的特征和数据。海量特征带来了对应的海量参数,使模型规模达到数百GB甚至TB,而海量数据使得模型训练所需要算力增加。而且,为了更快速的捕捉用户兴趣,从而为用户提供更好的用户体验和推荐效果,深度模型需要频繁和快速更新,这些需求带来棘手的问题:需要基于海量特征和海量数据快速的完成推荐模型训练。研究人员提出embedding层将高维稀疏的one-hot向量压缩为低维稠密的向量,也称为embedding。推荐模型中主要的参数也位于embedding层(数百GB甚至TB)。此外,为提升模型预测精度,推荐模型一般会基于乘法网络和MLP网络构建特征组合挖掘模块,该模块一般比较复杂,需要比较大的计算量,可用于数据特征之间存在的特征交互和非线性映射。与视觉、自然语言处理(naturallanguageprocessing,NLP)模型不同,推荐模型有其独有特点。以点击率预测(clickthroughrate,CTR)CTR模型为例(如图4),推荐模型包括嵌入层embeddingLayer和多层感知机(muli-layerperception,MLP)两个部分。推荐任务的数据包含大量高维稀疏的id类特征,一般使用one-hot编码,这部分特征直接用于模型训练会导致深度部分参数学习困难。为解决该问题,研究人员提出embedding层将高维稀疏的one-hot向量压缩为低维稠密的向量,也称为嵌入特征embedding。在现有的实现中,在进行模型训练时,图形处理器(graphicsprocessingunit,GPU)的计算核在完成一批batch的模型训练后,需要将更新后的embedding回传至CPU(例如包括更新后的embedding1),CPU维护有一个embedding表table,其中embeddingtable可以包括部分或全部模型训练所需的embedding,如果接下来一批batch的模型训练同样需要(embedding1),为了保证关注参数的一致性,则需要CPU将更新后的embedding1传递至GPU,进而GPU的计算单元的计算核可以从缓存中获取到更新后的embedding1,并基于更新后的embedding1进行下一批batch的模型训练,因而,GPU需要等待CPU完成将更新后的embedding1传递至GPU的过程,这就会造成时间上的延迟,大大增加了训练的时长。
技术实现思路
第一方面,本申请提供了一种模型训练方法,其特征在于,应用于第一处理器,所述第一处理器与第二处理器通信连接,所述第一处理器包括计算核以及第一存储器,所述第二处理器包括第二存储器;所述第一处理器和所述第二处理器为不同类型的处理器,其中,所述第一处理器可以为图形处理器GPU、嵌入式神经网络处理器(neuralnetworkprocessingunit,NPU)或张量处理器(tensorprocessingunit,TPU),所述第一存储器可以为缓存,所述第二处理器可以为中央处理器(centralprocessingunit,CPU)。所述方法包括:所述计算核通过所述第二存储器获取第一目标嵌入特征embedding;所述计算核根据所述第一目标embedding,对待训练模型进行训练,以得到更新后的待训练模型以及第二目标embedding,所述第二目标embedding为更新后的所述第一目标embedding;本申请实施例中,计算核在获取到当前批batch模型训练所需的embedding(包括第一目标embedding)之后,可以根据当前批batch模型训练所需的embedding(包括第一目标embedding),对所述待训练模型进行训练,以得到更新后的待训练模型以及更新后的embedding(包括第二目标embedding)。所述计算核将所述第二目标embedding写入所述第一存储器。可见本申请实施例中,第一处理器在完成第一目标embedding的更新后,将第二目标embedding存储至第一处理器的第一存储器中,在保证了第一处理器可以获取到最新更新的目标embedding(第二目标embedding)的前提下,使得第一处理器不需要等待第二处理器将第二目标embedding传递至GPU的过程完成,就可以直接获取到第二目标embedding,并基于第二目标embedding进行模型训练。增加了训练数据的吞吐量,进而提高了模型训练的速度。在一种可能的实现中,所述计算核根据所述第一目标embedding,对所述待训练模型进行训练,包括:所述计算核根据所述第一目标embedding,对所述待训练模型进行第M批batch的模型训练;所述M为大于1的正整数;在所述计算核将所述第二目标embedding写入所述第一存储器之后,所述方法还包括:所述计算核从所述第一存储器中获取所述第二目标embedding;所述计算核根据所述第二目标embedding,对所述更新后的待训练模型进行第M+1批batch的模型训练。若所述第一目标embedding还为接下来一批batch模型训练所需的embedding,则计算核可以直接从第一存储器中获取更新后的第一目标embedding(也就是第二目标embedding)。若第一存储器中未存储有第M+1批batch的模型训练所需的一部分embedding,则第二处理器可以将这部分embedding传递至第一存储器。在一种可能的实现中,在所述计算核根据所述第二目标embedding,对所述更新后的待训练模型进行第M+1批batch的模型训练之后,得到第三目标embedding,所述第三目标embedding为更新后的所述第二目标embedding;所述计算核可以将所述第三目标e本文档来自技高网
...

【技术保护点】
1.一种模型训练方法,其特征在于,应用于第一处理器,所述第一处理器与第二处理器通信连接,所述第一处理器包括计算核以及第一存储器,所述第二处理器包括第二存储器;所述第一处理器和所述第二处理器为不同类型的处理器,所述方法包括:/n所述计算核通过所述第二存储器获取第一目标嵌入特征embedding;/n所述计算核根据所述第一目标embedding,对待训练模型进行训练,以得到更新后的待训练模型以及第二目标embedding,所述第二目标embedding为更新后的所述第一目标embedding;/n所述计算核将所述第二目标embedding写入所述第一存储器。/n

【技术特征摘要】
1.一种模型训练方法,其特征在于,应用于第一处理器,所述第一处理器与第二处理器通信连接,所述第一处理器包括计算核以及第一存储器,所述第二处理器包括第二存储器;所述第一处理器和所述第二处理器为不同类型的处理器,所述方法包括:
所述计算核通过所述第二存储器获取第一目标嵌入特征embedding;
所述计算核根据所述第一目标embedding,对待训练模型进行训练,以得到更新后的待训练模型以及第二目标embedding,所述第二目标embedding为更新后的所述第一目标embedding;
所述计算核将所述第二目标embedding写入所述第一存储器。


2.根据权利要求1所述的方法,其特征在于,所述计算核根据所述第一目标embedding,对所述待训练模型进行训练,包括:
所述计算核根据所述第一目标embedding,对所述待训练模型进行第M批batch的模型训练,所述M为大于1的正整数;
在所述计算核将所述第二目标embedding写入所述第一存储器之后,所述方法还包括:
所述计算核从所述第一存储器中获取所述第二目标embedding;
所述计算核根据所述第二目标embedding,对所述更新后的待训练模型进行第M+1批batch的模型训练。


3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述计算核根据所述第二目标embedding,对所述更新后的待训练模型进行第M+1批batch的模型训练之后,得到第三目标embedding,所述第三目标embedding为更新后的所述第二目标embedding;
所述计算核将所述第三目标embedding写入所述第一存储器。


4.根据权利要求1至3任一所述的方法,其特征在于,所述计算核通过所述第二存储器获取第一目标embedding,包括:
当所述第一目标embedding为所述第M批batch的模型训练所需的embedding,且所述第一存储器未存储有所述第一目标embedding,所述第一存储器从所述第二存储器中获取所述第一目标embedding;
所述计算核从所述第一存储器中获取第一目标embedding。


5.根据权利要求4所述的方法,其特征在于,所述第一存储器获取来自所述第二存储器中的所述第一目标embedding,包括:
在所述计算核对所述待训练模型进行第M-1批batch的模型训练的过程中,所述第一存储器从所述第二存储器中获取所述第一目标embedding。


6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
在所述计算核从所述第一存储器中获取第一目标embedding之前,所述计算核获取来自所述第二处理器的第一向量以及目标向量,其中,所述第一向量用于指示所述第M批batch的模型训练所需的embedding,所述第一向量中的每个元素用于指示一个embedding,且不同元素指示不同的embedding,所述目标向量用于指示在进行所述第M批batch的模型训练时所述第一向量中的每个元素指示的embedding的排列关系,所述每个元素指示的embedding在所述排列关系中出现至少一次;
所述计算核从所述第一存储器中获取第一目标embedding,包括:
所述计算核根据所述第一向量从所述第一存储器中获取所述第M批batch的模型训练时所需的embedding;
所述计算核根据所述目标向量以及所述第M批batch的模型训练时所需的embedding,确定在进行所述第M批batch的模型训练时所需的每个embedding的的排列关系。


7.根据权利要求1至6任一所述的方法,其特征在于,在所述计算核根据所述第一目标embedding,对所述待训练模型进行训练之前,所述方法还包括:
所述计算核获取来自第三处理器中第三存储器的第三目标embedding,所述第三目标embedding和所述第一目标embedding为所述第M批batch模型训练所需的embedding,所述第一处理器和所述第三处理器为相同类型的处理器;
所述计算核根据所述第一目标embedding,对所述待训练模型进行训练,包括:
所述计算核通过所述待训练模型,对所述第一目标embedding和所述第三目标embedding进行处理,以得到目标输出,并基于所述目标输出确定第一梯度;
所述计算核基于所述第一梯度更新所述待训练模型以及所述第一目标embedding。


8.根据权利要求7所述的方法,其特征在于,所述基于所述目标输出确定所述第一梯度,包括:基于所述目标输出确定所述第一梯度和第二梯度;
所述基于所述目标输出确定所述第一梯度和所述第二梯度之后,所述方法还包括:
将所述第二梯度传递至第三处理器的计算核,以便所述第三处理器的计算核根据所述第二梯度更新所述第三目标embedding。


9.根据权利要求1至8任一所述的方法,其特征在于,所述第一处理器为图形处理器GPU、嵌入式神经网络处理器NPU或张量处理器TPU,所述第一存储器为缓存,所述第二处理器为中央处理器CPU。


10.一种模型训练方法,其特征在于,应用于第二处理器,所述第二处理器与第一处理通信连接,所述第一处理器包括计算核以及第一存储器,所述第二处理器包括第二存储器,所述第一处理器和所述第二处理器为不同类型的处理器;所述方法包括:
所述第二处理器获取所述计算核在进行第M批batch模型训练所需的embedding信息以及所述第一存储器中存储的embedding信息,所述M为大于1的正整数;
所述第二处理器根据所述计算核在进行第M批batch模型训练所需的embedding信息以及所述第一存储器中存储的embedding信息,将第一目标embedding写入所述第一存储器,所述第一目标embedding为所述第M批batch的模型训练所需的且所述第一存储器未存储的embedding。


11.根据权利要求10所述的方法,其特征在于,所述将第一目标embedding写入所述第一存储器,包括:
在所述计算核对所述待训练模型进行第M-1批batch的模型训练的过程中,将所述第一目标embedding写入所述第一存储器。


12.根据权利要求10或11所述的方法,其特征在于,在将第一目标embedding写入所述第一存储器之前,所述方法还包括:
在所述第一存储器中可用的存储空间低于存储所述第一目标embedding所需的存储空间时,所述第二处理器将所述第一存储器中的至少一个embedding删除,并将所述至少一个embedding写入所述第二存储器,其中,所述至少一个embedding为不属于所述第M批batch的模型训练所需的embedding。


13.根据权利要求10至12任一所述的方法,其特征在于,所述方法还包括:
在所述将所述第一目标embedding写入所述第一存储器之前,所述第二处理器获取第一向量以及目标向量,其中,所述第一向量用于指示所述第M批batch的模型训练所需的embedding,所述第一向量中的每个元素用于指示一个embedding,且不同元素指示不同的embedding,所述目标向量用于指示在进行所述第M批batch的模型训练时所述第一向量中的每个元素指示的embedding的排列关系,所述每个元素指示的embedding在所述排列关系中出现至少一次;
所述第二处理器将所述第一向量以及所述目标向量传递至所述第一处理器。


14.根据权利要求10至13任一所述的方法,其特征在于,所述第一处理器为图形处理器GPU、嵌入式神经网络处理器NPU或张量处理器TPU,所述第一存储器为缓存,所述第二处理器为中央处理器CPU。


15.一种模型训练装置,其特征在于,应用于第一处理器,所述第一处理器与第二处理通信连接,所述第一处理器包括计算核以及第一...

【专利技术属性】
技术研发人员:郭巍郭慧丰高勇唐睿明刘文志何秀强
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1