模型参数处理方法及装置、模型训练方法及系统与流程

文档序号:37005405发布日期:2024-02-09 12:51阅读:13来源:国知局
模型参数处理方法及装置、模型训练方法及系统与流程

本公开总体说来涉及机器学习,更具体地讲,涉及一种模型参数处理方法及装置、模型训练方法及系统。


背景技术:

1、目前,在训练机器学习模型的过程中,要求所训练的机器学习模型的所有参数都要存储在内存中,对于大规模的模型,就需要大量的内存来存储模型参数,往往超出了一台机器的内存容量,这时现有技术使用分布式机器学习架构,将模型参数分布式存储。

2、分布式机器学习架构将节点分为两种角色,计算节点worker和参数服务器server。worker负责控制训练的计算过程,server可以视为所有worker共享的远程存储装置。worker通过发送pull和push请求来读写server中的模型参数。存储模型参数所需的内存越大,就需要使用越多的server来存储模型参数。对于大规模的模型,现有方案给训练过程带来了很多不利影响,例如,会影响训练效率。


技术实现思路

1、本公开的示例性实施例在于提供一种模型参数处理方法及装置、模型训练方法及系统,使用参数服务器的外存来存储模型参数,并能够从外存顺序读写模型参数用于模型训练,以有效降低所需参数服务器的内存大小,进而有效降低参数服务器的数量,从而能够提高模型训练效率。

2、根据本公开的示例性实施例,提供一种模型参数处理方法,所述方法应用于参数服务器,所述方法包括针对同一机器学习模型的多轮参数处理过程,任意一轮所述参数处理过程包括参数更新过程;所述参数更新过程包括:从所述参数服务器的外存,顺序读取训练样本对应的多个模型参数的参数值;所述外存用于存储所述机器学习模型的模型参数;将所述参数值发送到计算节点,以由所述计算节点利用所述参数值基于所述训练样本训练所述机器学习模型;当接收到所述计算节点反馈的参数调整信息时,基于所述参数调整信息,计算所述多个模型参数更新后的参数值,并将所述多个模型参数更新后的参数值顺序写入所述外存;所述参数调整信息是所述计算节点基于所述训练样本训练得到的。

3、可选地,在至少一轮所述参数处理过程中,在所述参数更新过程之前,还包括参数预处理过程;所述参数预处理过程包括:获取当前轮次的训练样本;对当前轮次的训练样本进行预处理,得到多个事务及每个事务各自的事务文件;将所述多个事务及每个事务各自的事务文件顺序写入所述外存,其中,所述多个事务各自包含当前轮次的训练样本中的一部分批次的训练样本,每个事务的事务文件用于记录该事务所包含的训练样本对应的模型参数的参数值。

4、可选地,对当前轮次的训练样本进行预处理,得到多个事务及每个事务各自的事务文件的步骤包括:将当前轮次的训练样本划分为多个事务;针对所述多个事务中的每个事务,将该事务所包含的训练样本对应的模型参数去重并按照参数索引号进行排序,并将排序后的模型参数的参数索引号及初始值按序记录到该事务的事务文件,以得到该事务初始的事务文件。

5、可选地,并行执行当前轮次的参数更新过程和在当前轮次之后的轮次的参数预处理过程。

6、可选地,每个事务包含多个连续且完整的批次的训练样本,且同一个批次的训练样本仅包含在同一个事务中。

7、可选地,从所述参数服务器的外存顺序读取训练样本对应的多个模型参数的参数值的步骤包括:在需要向所述计算节点发送目标事务中的训练样本对应的多个模型参数的参数值的情况下,将目标事务的事务文件从所述外存顺序读取到所述参数服务器的内存;从所述内存获取目标事务中的训练样本对应的多个模型参数的参数值。

8、可选地,当接收到所述计算节点反馈的参数调整信息时,基于所述参数调整信息,计算所述多个模型参数更新后的参数值,并将所述多个模型参数更新后的参数值顺序写入所述外存的步骤包括:当接收到所述计算节点针对目标批次训练样本反馈的参数调整信息时,在所述参数服务器的内存中基于所述参数调整信息,计算目标批次训练样本对应的多个模型参数更新后的参数值;将目标批次训练样本对应的多个模型参数更新后的参数值从所述内存顺序写入所述外存中训练顺序在目标事务之后的事务的事务文件;目标事务为目标批次训练样本所属的事务。

9、可选地,并行执行将目标批次训练样本对应的多个模型参数更新后的参数值从所述内存顺序写入所述外存的步骤,和计算训练顺序在目标批次之后的批次训练样本对应的多个模型参数更新后的参数值的步骤。

10、可选地,所述参数预处理过程还包括:确定当前轮次的每个事务的事务转移表,并将每个事务各自的事务转移表顺序写入所述外存;其中,将目标批次训练样本对应的多个模型参数更新后的参数值从所述内存顺序写入所述外存中训练顺序在目标事务之后的事务的事务文件的步骤包括:基于目标事务的事务转移表,确定目标批次训练样本对应的多个模型参数更新后的参数值将被写入的事务文件;将所述多个模型参数更新后的参数值顺序写入所述外存中确定的事务文件。

11、可选地,每个事务的事务转移表用于记录:该事务所包含的训练样本对应的模型参数中的每个模型参数在该事务内部最后一次对应的批次索引号、每个模型参数下一次对应的事务的事务索引号。

12、可选地,基于目标事务的事务转移表,确定目标批次训练样本对应的多个模型参数更新后的参数值将被写入的事务文件的步骤包括:针对目标批次训练样本对应的多个模型参数中的每一模型参数,根据目标事务的事务转移表确定该模型参数在该事务内部最后一次对应的批次、该模型参数下一次对应的事务;目标事务为目标批次训练样本所属的事务;当该模型参数在目标事务内部最后一次对应的批次为目标批次时,确定该模型参数下一次对应的事务是否为目标事务的下一个事务;当该模型参数下一次对应的事务不是目标事务的下一个事务时,将该模型参数更新后的参数值将被写入的事务文件确定为:该模型参数下一次对应的事务的事务文件;当该模型参数下一次对应的事务为目标事务的下一个事务时,将该模型参数更新后的参数值继续保存在所述内存中;当该模型参数在目标事务内部最后一次对应的批次非目标批次时,将该模型参数更新后的参数值继续保存在所述内存中。

13、可选地,所述参数更新过程还包括:当该模型参数下一次对应的事务为目标事务的下一个事务时,将该模型参数更新后的参数值写入镜像文件;在完成基于目标事务更新所述机器学习模型的模型参数之后,基于镜像文件制作目标事务的检查点,其中,检查点用于在所述参数服务器发生故障后恢复所述机器学习模型的模型参数的最新参数值。

14、可选地,目标事务的检查点由镜像文件、训练顺序在目标事务之后的事务的事务文件构成。

15、可选地,确定当前轮次的每个事务的事务转移表的步骤包括:对当前轮次训练样本和当前轮次的下一轮次训练样本中的各条训练样本所对应的各个模型参数进行分组,得到多个分组,其中,每个分组包括多条数据,每条数据包括:模型参数的参数索引号、该模型参数对应的批次索引号、该模型参数对应的事务索引号;针对同一模型参数的各条数据被划分在同一分组中且按照对应的批次索引号顺序排序;对每个分组中的数据进行倒序遍历,对于遍历到的任意一条数据,确定哈希表中存储的目标模型参数下一次对应的事务索引号是否与该条数据中的事务索引号相同,其中,目标模型参数为该条数据对应的模型参数;当确定不相同时,将该条数据中的事务索引号与哈希表中存储的目标模型参数下一次对应的事务索引号互换,以更新事务索引号;将更新了事务索引号后的该条数据中的事务索引号作为目标模型参数下一次对应的事务索引号记录到该条数据对应的事务的事务转移表中;将更新了事务索引号后的该条数据中的批次索引号作为目标模型参数在事务内部最后一次对应的批次索引号记录到该条数据对应的事务的事务转移表中。

16、可选地,当所述多轮参数处理过程所基于的训练样本集合相同且训练样本顺序相同时,仅第一个轮次参数处理过程包括参数预处理过程。

17、可选地,并行执行将目标事务的事务文件从所述外存顺序读取到所述参数服务器的内存的步骤,和针对目标事务的上一事务的计算多个模型参数更新后的参数值,并将所述多个模型参数更新后的参数值顺序写入所述外存的步骤。

18、可选地,当前轮次训练样本对应的事务总数量基于以下项之中的至少一项而确定:当前轮次训练样本的特征重复率、所述参数服务器的内存容量与外存容量之间的比例、所述参数服务器的内存容量。

19、可选地,所述外存用于存储所述机器学习模型的嵌入层参数。

20、根据本公开的示例性实施例,提供一种模型训练方法,所述方法包括针对同一机器学习模型的多轮模型训练过程,任意一轮所述模型训练过程包括训练过程;所述训练过程包括:参数服务器从外存顺序读取训练样本对应的多个模型参数的参数值,并将所述参数值发送到计算节点;所述外存用于存储所述机器学习模型的模型参数;所述计算节点利用所述参数值基于所述训练样本训练所述机器学习模型,得到参数调整信息,并将所述参数调整信息发送到所述参数服务器;所述参数服务器基于所述参数调整信息,计算所述多个模型参数更新后的参数值,并将所述多个模型参数更新后的参数值顺序写入所述外存。

21、可选地,在至少一轮所述模型训练过程中,在所述训练过程之前,还包括参数预处理过程;所述参数预处理过程包括:所述计算节点将当前轮次的训练样本发送到所述参数服务器;所述参数服务器对当前轮次的训练样本进行预处理,得到多个事务及每个事务各自的事务文件,并将所述多个事务及每个事务各自的事务文件顺序写入所述外存,其中,所述多个事务各自包含当前轮次的训练样本中的一部分批次的训练样本,每个事务的事务文件用于记录该事务所包含的训练样本对应的模型参数的参数值。

22、根据本公开的示例性实施例,提供一种模型参数处理装置,所述装置应用于参数服务器,所述装置被配置为针对同一机器学习模型执行多轮参数处理过程,任意一轮所述参数处理过程包括参数更新过程;所述装置包括:参数更新单元,被配置为执行所述参数更新过程;所述参数更新过程包括:从所述参数服务器的外存,顺序读取训练样本对应的多个模型参数的参数值;所述外存用于存储所述机器学习模型的模型参数;将所述参数值发送到计算节点,以由所述计算节点利用所述参数值基于所述训练样本训练所述机器学习模型;当接收到所述计算节点反馈的参数调整信息时,基于所述参数调整信息,计算所述多个模型参数更新后的参数值,并将所述多个模型参数更新后的参数值顺序写入所述外存;所述参数调整信息是所述计算节点基于所述训练样本训练得到的。

23、可选地,在至少一轮所述参数处理过程中,在所述参数更新过程之前,还包括参数预处理过程;所述装置还包括:参数预处理单元,被配置为执行所述参数预处理过程,所述参数预处理过程包括:获取当前轮次的训练样本;对当前轮次的训练样本进行预处理,得到多个事务及每个事务各自的事务文件;将所述多个事务及每个事务各自的事务文件顺序写入所述外存,其中,所述多个事务各自包含当前轮次的训练样本中的一部分批次的训练样本,每个事务的事务文件用于记录该事务所包含的训练样本对应的模型参数的参数值。

24、可选地,对当前轮次的训练样本进行预处理,得到多个事务及每个事务各自的事务文件的步骤包括:将当前轮次的训练样本划分为多个事务;针对所述多个事务中的每个事务,将该事务所包含的训练样本对应的模型参数去重并按照参数索引号进行排序,并将排序后的模型参数的参数索引号及初始值按序记录到该事务的事务文件,以得到该事务初始的事务文件。

25、可选地,并行执行当前轮次的参数更新过程和在当前轮次之后的轮次的参数预处理过程。

26、可选地,每个事务包含多个连续且完整的批次的训练样本,且同一个批次的训练样本仅包含在同一个事务中。

27、可选地,从所述参数服务器的外存顺序读取训练样本对应的多个模型参数的参数值的步骤包括:在需要向所述计算节点发送目标事务中的训练样本对应的多个模型参数的参数值的情况下,将目标事务的事务文件从所述外存顺序读取到所述参数服务器的内存;从所述内存获取目标事务中的训练样本对应的多个模型参数的参数值。

28、可选地,当接收到所述计算节点反馈的参数调整信息时,基于所述参数调整信息,计算所述多个模型参数更新后的参数值,并将所述多个模型参数更新后的参数值顺序写入所述外存的步骤包括:当接收到所述计算节点针对目标批次训练样本反馈的参数调整信息时,在所述参数服务器的内存中基于所述参数调整信息,计算目标批次训练样本对应的多个模型参数更新后的参数值;将目标批次训练样本对应的多个模型参数更新后的参数值从所述内存顺序写入所述外存中训练顺序在目标事务之后的事务的事务文件;目标事务为目标批次训练样本所属的事务。

29、可选地,并行执行将目标批次训练样本对应的多个模型参数更新后的参数值从所述内存顺序写入所述外存的步骤,和计算训练顺序在目标批次之后的批次训练样本对应的多个模型参数更新后的参数值的步骤。

30、可选地,所述参数预处理过程还包括:确定当前轮次的每个事务的事务转移表,并将每个事务各自的事务转移表顺序写入所述外存;其中,将目标批次训练样本对应的多个模型参数更新后的参数值从所述内存顺序写入所述外存中训练顺序在目标事务之后的事务的事务文件的步骤包括:基于目标事务的事务转移表,确定目标批次训练样本对应的多个模型参数更新后的参数值将被写入的事务文件;将所述多个模型参数更新后的参数值顺序写入所述外存中确定的事务文件。

31、可选地,每个事务的事务转移表用于记录:该事务所包含的训练样本对应的模型参数中的每个模型参数在该事务内部最后一次对应的批次索引号、每个模型参数下一次对应的事务的事务索引号。

32、可选地,基于目标事务的事务转移表,确定目标批次训练样本对应的多个模型参数更新后的参数值将被写入的事务文件的步骤包括:针对目标批次训练样本对应的多个模型参数中的每一模型参数,根据目标事务的事务转移表确定该模型参数在该事务内部最后一次对应的批次、该模型参数下一次对应的事务;目标事务为目标批次训练样本所属的事务;当该模型参数在目标事务内部最后一次对应的批次为目标批次时,确定该模型参数下一次对应的事务是否为目标事务的下一个事务;当该模型参数下一次对应的事务不是目标事务的下一个事务时,将该模型参数更新后的参数值将被写入的事务文件确定为:该模型参数下一次对应的事务的事务文件;当该模型参数下一次对应的事务为目标事务的下一个事务时,将该模型参数更新后的参数值继续保存在所述内存中;当该模型参数在目标事务内部最后一次对应的批次非目标批次时,将该模型参数更新后的参数值继续保存在所述内存中。

33、可选地,所述参数更新过程还包括:当该模型参数下一次对应的事务为目标事务的下一个事务时,将该模型参数更新后的参数值写入镜像文件;在完成基于目标事务更新所述机器学习模型的模型参数之后,基于镜像文件制作目标事务的检查点,其中,检查点用于在所述参数服务器发生故障后恢复所述机器学习模型的模型参数的最新参数值。

34、可选地,目标事务的检查点由镜像文件、训练顺序在目标事务之后的事务的事务文件构成。

35、可选地,确定当前轮次的每个事务的事务转移表的步骤包括:对当前轮次训练样本和当前轮次的下一轮次训练样本中的各条训练样本所对应的各个模型参数进行分组,得到多个分组,其中,每个分组包括多条数据,每条数据包括:模型参数的参数索引号、该模型参数对应的批次索引号、该模型参数对应的事务索引号;针对同一模型参数的各条数据被划分在同一分组中且按照对应的批次索引号顺序排序;对每个分组中的数据进行倒序遍历,对于遍历到的任意一条数据,确定哈希表中存储的目标模型参数下一次对应的事务索引号是否与该条数据中的事务索引号相同,其中,目标模型参数为该条数据对应的模型参数;当确定不相同时,将该条数据中的事务索引号与哈希表中存储的目标模型参数下一次对应的事务索引号互换,以更新事务索引号;将更新了事务索引号后的该条数据中的事务索引号作为目标模型参数下一次对应的事务索引号记录到该条数据对应的事务的事务转移表中;将更新了事务索引号后的该条数据中的批次索引号作为目标模型参数在事务内部最后一次对应的批次索引号记录到该条数据对应的事务的事务转移表中。

36、可选地,当所述多轮参数处理过程所基于的训练样本集合相同且训练样本顺序相同时,仅第一个轮次参数处理过程包括参数预处理过程。

37、可选地,并行执行将目标事务的事务文件从所述外存顺序读取到所述参数服务器的内存的步骤,和针对目标事务的上一事务的计算多个模型参数更新后的参数值,并将所述多个模型参数更新后的参数值顺序写入所述外存的步骤。

38、可选地,当前轮次训练样本对应的事务总数量基于以下项之中的至少一项而确定:当前轮次训练样本的特征重复率、所述参数服务器的内存容量与外存容量之间的比例、所述参数服务器的内存容量。

39、可选地,所述外存用于存储所述机器学习模型的嵌入层参数。

40、根据本公开的示例性实施例,提供一种模型训练系统,所述系统包括参数服务器和计算节点,所述系统被配置为针对同一机器学习模型的多轮模型训练过程,任意一轮所述模型训练过程包括训练过程;所述训练过程包括:所述参数服务器从外存顺序读取训练样本对应的多个模型参数的参数值,并将所述参数值发送到所述计算节点;所述外存用于存储所述机器学习模型的模型参数;所述计算节点利用所述参数值基于所述训练样本训练所述机器学习模型,得到参数调整信息,并将所述参数调整信息发送到所述参数服务器;所述参数服务器基于所述参数调整信息,计算所述多个模型参数更新后的参数值,并将所述多个模型参数更新后的参数值顺序写入所述外存。

41、可选地,在至少一轮所述模型训练过程中,在所述训练过程之前,还包括参数预处理过程;所述参数预处理过程包括:所述计算节点将当前轮次的训练样本发送到所述参数服务器;所述参数服务器对当前轮次的训练样本进行预处理,得到多个事务及每个事务各自的事务文件,并将所述多个事务及每个事务各自的事务文件顺序写入所述外存,其中,所述多个事务各自包含当前轮次的训练样本中的一部分批次的训练样本,每个事务的事务文件用于记录该事务所包含的训练样本对应的模型参数的参数值。

42、根据本公开的示例性实施例,提供一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的模型参数处理方法或如上所述的模型训练方法。

43、根据本公开的示例性实施例,提供一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的模型参数处理方法或如上所述的模型训练方法。

44、根据本公开示例性实施例的模型参数处理方法及装置、模型训练方法及系统,通过使用参数服务器的外存来存储模型参数,并从外存顺序读写模型参数用于模型训练,来降低对参数服务器内存容量的需求以有效降低所需参数服务器的数量,从而能够提升模型训练性能,例如,由于所需参数服务器的数量降低,计算节点与参数服务器之间的消息数量会减少,因此,可提高模型训练效率。

45、将在接下来的描述中部分阐述本公开总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本公开总体构思的实施而得知。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1