一种神经网络训练方法以及装置制造方法及图纸

技术编号:30348451 阅读:28 留言:0更新日期:2021-10-16 16:42
本申请公开了人工智能领域的一种神经网络训练方法以及装置,用于通过在资源约束条件的约束下进行同质搜索,减少搜索空间的大小,高效地搜索得到符合需求的模型。该方法包括:获取超预训练语言模型;获取资源约束条件以及超参数搜索空间,资源约束条件指示针对模型占用的资源的约束,超参数搜索空间指示模型的超参数的范围;在资源约束条件的约束下从超参数搜索空间中搜索出目标模型的结构,目标模型的至少两层网络层的超参数相同;对目标模型进行训练,得到训练后的目标模型。得到训练后的目标模型。得到训练后的目标模型。

【技术实现步骤摘要】
一种神经网络训练方法以及装置


[0001]本申请涉及人工智能领域,尤其涉及一种神经网络训练方法以及装置。

技术介绍

[0002]目前大规模预训练语言模型成为了神经网络训练领域的主导模型,在几乎所有的自然语言理解任务上大大超越了之前的模型。这类模型基于先进的转化器Transformer的结构,在大规模语料(如10G到100G)中通过自监督预训练任务训练得到。但由于这些模型需要庞大的计算资源且推断时间慢,如何将它部署到实际生产环境成为目前的技术挑战。
[0003]通常,可以通过模型搜索的方法去构建预训练语言模型或者神经翻译模型,这些方式将改变Transformer的结构,引入结构不同的组件,因此搜索空间和训练代价都巨大,得到最终模型的效率低。

技术实现思路

[0004]本申请提供一种神经网络训练方法以及装置,用于通过在资源约束条件的约束下进行同质搜索,减少搜索空间的大小,高效地搜索得到符合需求的模型。
[0005]有鉴于此,第一方面,本申请提供一种神经网络训练方法,包括:获取超预训练语言模型;获取资源约束条件以及超参数搜索空间,资源约束条件指示针对模型占用的资源的约束,超参数搜索空间指示模型的超参数的范围;在资源约束条件的约束下从超参数搜索空间中搜索出目标模型的结构,目标模型的至少两层网络层的超参数相同;对目标模型进行训练,得到训练后的目标模型。
[0006]因此,本申请实施方式中,搜索得到的子模型的至少两层网络层的超参数相同,从而需要构建的超参数搜索空间更小,搜索子模型的效率也更高,从而可以高效地搜索得到符合需求的目标模型。且搜索得到的目标模型为同质结构,即至少两层网络层的超参数相同,结构简单,可以在更多的场景中部署该模型,即本申请提供的方法可以应用于多种场景中,泛化能力强。
[0007]在一种可能的实施方式中,目标模型的每一层网络层的超参数相同。因此,本申请实施方式中,最终得到的目标模型的各个网络层具有相同的超参数,得到了同质的模型,进而所需的超参数搜索空间的范围也就更小,可以高效地搜索得到满足资源约束条件的模型。
[0008]在一种可能的实施方式中,前述的获取超预训练语言模型,可以包括:首先构建神经网络,得到未训练的初始模型;将训练集分为多个子集;从初始模型中采集子模型,得到多个第一子模型;使用多个子集并行对多个第一子模型进行训练,得到超预训练语言模型。
[0009]因此,在本申请实施方式中,可以使用训练集并行对初始模型中的子模型进行训练,从而可以提高初始模型的训练效率,更高效地得到超预训练语言模型。
[0010]在一种可能的实施方式中,前述的使用多个子集并行对多个第一子模型进行训练,得到超预训练语言模型,可以包括:将多个子集和多个第一子模型分发至多个计算节
点,以在多个计算节点中计算多个第一子模型的梯度;根据多个第一子模型的梯度更新初始模型的参数,得到超预训练语言模型。
[0011]因此,本申请实施方式中,可以将多个子集和对应的子模型分发至多个计算节点,从而使多个计算节点可以并行计算各个子模型的梯度,从而提高对初始模型的训练效率,高效地得到训练后的模型。
[0012]可选地,前述的计算节点可以包括服务器、个人电脑、处理器、进程或者线程等具有处理能力的节点。
[0013]在一种可能的实施方式中,前述的根据多个子模型的梯度更新初始模型的参数,得到超预训练语言模型,可以包括:融合多个第一子模型的梯度,得到融合梯度;根据融合梯度更新初始模型的参数,得到超预训练语言模型。
[0014]本申请实施方式中,在分别计算得到多个子模型的梯度之后,可以融合该多个子模型的梯度,并根据融合梯度对初始模型进行更新。因此,可以通过并行的方式高效地计算出各个子模型的梯度,然后基于融合梯度对完整的初始模型进行更新,从而可以高效地完成对初始模型的训练,并得到输出效果更好的模型。
[0015]可选地,融合多个第一子模型的梯的方式具体可以包括加权融合、求和或者求平均等方式。
[0016]在一种可能的实施方式中,前述的在资源约束条件的约束下从超参数搜索空间中搜索出目标模型的结构,可以包括:在资源约束条件的约束下,从超参数搜索空间中搜索得到至少一个模型结构,至少一个模型结构中每个模型结构对应的模型的至少两层网络层的超参数相同;从超预训练语言模型中采集与至少一个模型结构对应的至少一个第二子模型;根据至少一个第二子模型从至少一个模型结构中筛选出输出结果符合预设条件的模型结构,得到目标模型的结构。可以理解为,首先从超参数搜索空间中搜索得到满足资源约束条件的至少一个模型结构,而不同模型结构的结构参数可能不相同,如深度或者宽度等不同,不同模型结构对应的模型的输出效果也可能不相同,因此可以进一步地从该至少一个模型中筛选出输出效果更好的模型结构来作为目标模型的模型结构。
[0017]本申请实施方式中,可以在资源约束条件的约束下搜索得到多个子模型,并从该多个子模型中筛选出输出效果更好的子模型作为目标模型,从而可以得到满足资源约束条件且输出效果更好的目标模型。
[0018]在一种可能的实施方式中,前述的从超预训练语言模型中采集与至少一个模型结构对应的至少一个第二子模型可以包括:从初始模型中采集子模型,得到至少一个第三子模型;从至少一个第三子模型中的每个第三子模型的每层网络层中采集至少一个模块,得到至少一个第二子模型。
[0019]本申请实施方式中,为进一步降低模型的复杂度,在从初始模型中采集到子模型之后,可以从子模型的网络层中采集一个或者多个模块,从而得到模型结构更小的子模型,进一步提高训练效率。通常,当超参数搜索空间中设置的超参数范围在预先设定的范围内时,子模型中每层网络层的结构类似,因此,从子模型的每层网络层中抽取一个或多个模块,在减小模型结构的同时,也可以实现和原始模型接近的输出效果,从而使模型可以部署于更多设备中,提高模型的泛化能力。
[0020]在一种可能的实施方式中,前述的在资源约束条件的约束下,从超参数搜索空间
中搜索出至少一个模型结构,可以包括:从超参数搜索空间中搜索得到多个模型结构;获取多个模型结构对应的模型在硬件中运行的多个运行结果;从多个模型结构中筛选出运行结果符合资源约束条件的模型结构,得到至少一个模型结构。
[0021]本申请实施方式中,可以通过在硬件中运行子模型的方式来测试模型是否符合资源约束条件,从而得到满足资源约束条件的模型。
[0022]在一种可能的实施方式中,前述的根据至少一个第二子模型从至少一个模型结构中筛选出输出结果符合预设条件的模型结构,得到目标模型的结构,可以包括:使用测试集对至少一个第二子模型的输出结果进行评估,得到每个第二子模型的评估结果;根据每个第二子模型的评估结果从至少一个模型结构中筛选出符合预设条件的模型的结构;将符合预设条件的模型的结构,作为目标模型的结构。
[0023]本申请实施方式中,可以对搜索得到的子模型的输出效果进行评估,从而得到输出效果更好的目标模型本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络训练方法,其特征在于,包括:获取超预训练语言模型;获取资源约束条件以及超参数搜索空间,所述资源约束条件指示针对模型占用的资源的约束,所述超参数搜索空间指示模型的超参数的范围;在资源约束条件的约束下从所述超参数搜索空间中搜索出目标模型的结构,所述目标模型的至少两层网络层的超参数相同;对所述目标模型进行训练,得到训练后的目标模型。2.根据要求1所述的方法,其特征在于,所述获取超预训练语言模型,包括:构建神经网络,得到初始模型;将训练集分为多个子集;从所述初始模型中采集子模型,得到多个第一子模型;使用所述多个子集并行对所述多个第一子模型进行训练,得到所述超预训练语言模型。3.根据权利要求2所述的方法,其特征在于,所述使用所述多个子集并行对所述多个第一子模型进行训练,得到所述超预训练语言模型,包括:将所述多个子集和所述多个第一子模型分配至多个计算节点,以在所述多个计算节点中计算所述多个第一子模型的梯度;根据所述多个第一子模型的梯度更新所述初始模型的参数,得到所述超预训练语言模型。4.根据权利要求3所述的方法,其特征在于,所述根据所述多个子模型的梯度更新所述初始模型的参数,得到所述超预训练语言模型,包括:融合所述多个第一子模型的梯度,得到融合梯度;根据所述融合梯度更新所述初始模型的参数,得到所述超预训练语言模型。5.根据权利要求1

4中任一项所述的方法,其特征在于,所述在资源约束条件的约束下从所述超参数搜索空间中搜索出目标模型的结构,包括:在资源约束条件的约束下,从所述超参数搜索空间中搜索得到至少一个模型结构,所述至少一个模型结构中每个模型结构对应的模型的至少两层网络层的超参数相同;从所述超预训练语言模型中采集与所述至少一个模型结构对应的至少一个第二子模型;根据所述至少一个第二子模型从所述至少一个模型结构中筛选出输出结果符合预设条件的模型结构,得到所述目标模型的结构。6.根据权利要求5所述的方法,其特征在于,所述从所述超预训练语言模型中采集与所述至少一个模型结构对应的至少一个第二子模型包括:从所述初始模型中采集子模型,得到至少一个第三子模型;从所述至少一个第三子模型中的每个第三子模型的每层网络层中采集至少一个模块,得到所述至少一个第二子模型。7.根据权利要求5所述的方法,其特征在于,所述在资源约束条件的约束下,从所述超参数搜索空间中搜索出至少一个模型结构,包括:获取多个模型结构对应的模型在硬件中运行的多个运行结果,所述多个模型是从所述
超参数搜索空间搜索得到的模型结构;从所述多个模型结构中筛选出运行结果符合所述资源约束条件的模型结构,得到所述至少一个模型结构。8.根据权利要求5

7中任一项所述的方法,其特征在于,所述根据所述至少一个第二子模型从所述至少一个模型结构中筛选出输出结果符合预设条件的模型结构,得到所述目标模型的结构,包括:使用测试集对所述至少一个第二子模型的输出结果进行评估,得到每个第二子模型的评估结果;根据所述每个第二子模型的评估结果从所述至少一个模型结构中筛选出符合所述预设条件的模型的结构;将所述符合所述预设条件的模型的结构,作为所述目标模型的结构。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:根据所述符合所述预设条件的模型的结构,构建得到所述目标模型;或者,从所述超预训练语言模型中采集对应的子模型,得到所述目标模型。10.根据权利要求5

9中任一项所述的方法,其特征在于,所述超预训练语言模型的每一层网络层包括多头注意力网络,所述多头注意力网络包括多个注意力模块,每个注意力模块具有多个维度的参数,所述多头注意力网络用于计算多个输入向量之间的关联度,并根据所述关联度得到包括上下文语义的输出向量;所述从所述超预训练语言模型中采集与所述至少一个模型结构对应的至少一个第二子模型,包括:从所述超预训练语言模型的每一层网络层的所述多头注意力网络中的所述多个注意力模块中采集至少一个注意力模块,以及从所述多个维度的参数中采集至少一个维度的参数,得到所述多个第二子模型;或者,从所述超预训练语言模型的每一层网络层的所述多头注意力网络中的每个注意力模块中的每个维度采集至少一种参数,得到所述多个第二子模型。11.根据权利要求1

10中任一项所述的方法,其特征在于,所述获取资源约束条件,包括:接收用户输入数据;从所述用户输入数据中获取所述资源约束条件,所述资源约束条件包括与模型的时延或者占用内存相关的约束条件。12.一种神经网络训练装置,其特征在于,包括:预训练模块,用于获取超预训练语言模型;获取模块,用于获取资源约束条件以及超参数搜索空间,所...

【专利技术属性】
技术研发人员:尹伊淳尚利峰蒋欣陈晓
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1