System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及人工智能,特别涉及一种序列模型的训练方法、装置和电子设备。
技术介绍
1、序列模型是一类常见的神经网络模型,序列模型用于对变长的序列数据进行建模,举例来说,变长的序列数据可以包括语音、文本和/或时间序列等。
2、序列模型可采用卷积神经网络(convolutional neural networks,cnn)、循环神经网络(recurrent neural network,rnn)、转换器(transformer)、时间分布深度神经网络(time distributed deep neural network,timedistributeddnn)等结构来实现,或者采用这些结构的混合来实现。
3、序列模型通常可用于语音识别、语音合成、语言模型和/或时间序列预测等任务。
4、训练序列模型所需的内存和算力开销是非线性的,在训练序列模型时,需要将训练数据先组装成批次(batch)再训练,序列组装batch时通过补齐(padding)操作保证batch等长。批次大小(batchsize)是一个训练参数,batchsize不仅会影响训练的内存和时间消耗,也会影响最终的模型精度。
5、最常用的数据并行范式是同步数据并行,即每个batch要执行一次全局归约(allreduce)操作以便同步各个训练节点。同步数据并行的“短板效应”:每batch耗时取决于最慢的那个batch。
技术实现思路
1、本申请实施例提供了一种序列模型的训练方法、
2、第一方面,本申请实施例提供了一种序列模型的训练方法,包括:获取待训练的序列模型和训练集;遍历所述训练集中的样本数据,获得所述样本数据的序列长度;根据所述序列长度,将所述样本数据划分在至少两个数据桶中;遍历每个数据桶,将每个数据桶中的样本数据,按照每个数据桶的序列长度对应的目标批次大小组装成批次;其中,所述目标批次大小根据目标锚定时长确定,所述目标批次大小使得组装获得的批次中的样本数据在所述目标锚定时长内能完成一次训练并且不会发生显存溢出;将组装获得的批次分发给训练节点,以使所述训练节点使用所述批次中的样本数据对所述序列模型进行训练。
3、上述序列模型的训练方法中,电子设备获取待训练的序列模型和训练集,遍历上述训练集中的样本数据,获得上述样本数据的序列长度,然后,电子设备根据上述序列长度,将上述样本数据划分在至少两个数据桶中,遍历每个数据桶,将每个数据桶中的样本数据,按照每个数据桶的序列长度对应的目标批次大小组装成批次,最后,电子设备将组装获得的批次分发给训练节点,以使上述训练节点使用上述批次中的样本数据对上述序列模型进行训练。上述方法中,目标批次大小是根据目标锚定时长确定的,是不超过目标锚定时长限制的最大的批次大小,因此可以使得序列模型的训练能够在不发生显存溢出的情况下,达到最优吞吐,提高显存利用率,还能够避免训练节点间等待,提升序列模型在分布式训练场景下的训练速度。
4、其中一种可能的实现方式中,所述遍历所述训练集中的样本数据,获得所述样本数据的序列长度之后,还包括:根据所述样本数据的序列长度,选择所述目标锚定时长;其中,所述目标锚定时长使得所述训练集中的样本数据进行一次训练所需的时长符合第一预定条件。
5、其中一种可能的实现方式中,所述根据所述样本数据的序列长度,选择所述目标锚定时长包括:根据各序列长度和预定的锚定时长,获得各序列长度对应的批次大小;统计各序列长度包括的样本数据的数量;根据所述数量、各序列长度对应的批次大小和预定的锚定时长,获得所述训练集中的样本数据进行一次训练所需的时长;更新所述预定的锚定时长,重新执行所述根据各序列长度和预定的锚定时长,获得各序列长度对应的批次大小的步骤及其后续步骤,直至所述训练集中的样本数据进行一次训练所需的时长符合第一预定条件;其中,所述训练集中的样本数据进行一次训练所需的时长符合第一预定条件时对应的锚定时长为所述目标锚定时长。
6、其中一种可能的实现方式中,所述根据各序列长度和预定的锚定时长,获得各序列长度对应的批次大小之前,还包括:获得不同序列长度和不同批次大小的组合;依次遍历每个组合,对每个组合对应的数据,根据所述组合中的批次大小,将每个组合对应的数据组装成一个批次进行训练;其中,所述一个批次中包括的数据的数量为所述组合中的批次大小,所述一个批次中包括的数据的序列长度为所述组合中的序列长度;如果训练时未发生显存溢出,则记录所述组合中的批次大小和序列长度,以及所述批次中的数据完成一次训练所用的时长;如果训练时发生显存溢出,则返回执行所述依次遍历每个组合的步骤及其后续步骤。
7、其中一种可能的实现方式中,所述根据各序列长度和预定的锚定时长,获得各序列长度对应的批次大小包括:根据各序列长度,在记录的批次大小、序列长度和时长中进行查找,获得各序列长度对应的时长;在各序列长度对应的时长中查找所述预定的锚定时长;如果在各序列长度对应的时长中查找到所述预定的锚定时长,则在记录的批次大小、序列长度和时长中进行查找,获得所述预定的锚定时长对应的批次大小。
8、其中一种可能的实现方式中,所述在各序列长度对应的时长中查找所述预定的锚定时长之后,还包括:如果在各序列长度对应的时长中未查找到所述预定的锚定时长,则在各序列长度对应的时长中查找小于所述预定的锚定时长并且符合第二预定条件的时长;在记录的批次大小、序列长度和时长中进行查找,获得所述符合第二预定条件的时长对应的批次大小。
9、第二方面,本申请实施例提供一种序列模型的训练装置,该装置包含在电子设备中,该装置具有实现第一方面及第一方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,获取模块、长度获得模块、划分模块、组装模块和分发模块等。
10、第三方面,本申请实施例提供一种电子设备,包括:一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序,其中上述一个或多个计算机程序被存储在上述存储器中,上述一个或多个计算机程序包括指令,当上述指令被上述电子设备执行时,使得上述电子设备执行第一方面提供的方法。
11、应当理解的是,本申请实施例的第二方面和第三方面与本申请实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
12、第四方面,本申请实施例提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行第一方面提供的方法。
13、第五方面,本申请实施例提供一种计算机程序,当上述计算机程序被计算机执行时,用于执行第一方面提供的方法。
14、在一种可能的设计中,第五本文档来自技高网...
【技术保护点】
1.一种序列模型的训练方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述遍历所述训练集中的样本数据,获得所述样本数据的序列长度之后,还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述样本数据的序列长度,选择所述目标锚定时长包括:
4.根据权利要求3所述的方法,其特征在于,所述根据各序列长度和预定的锚定时长,获得各序列长度对应的批次大小之前,还包括:
5.根据权利要求4所述的方法,其特征在于,所述根据各序列长度和预定的锚定时长,获得各序列长度对应的批次大小包括:
6.根据权利要求5所述的方法,其特征在于,所述在各序列长度对应的时长中查找所述预定的锚定时长之后,还包括:
7.一种序列模型的训练装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1-6任一项所述的方法。
【技术特征摘要】
1.一种序列模型的训练方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述遍历所述训练集中的样本数据,获得所述样本数据的序列长度之后,还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述样本数据的序列长度,选择所述目标锚定时长包括:
4.根据权利要求3所述的方法,其特征在于,所述根据各序列长度和预定的锚定时长,获得各序列长度对应的批次大小之前,还包括:
5.根据权利要求4所述的方法,其特征...
【专利技术属性】
技术研发人员:陈家胜,张成,梅文胜,李亚楠,管娇,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。