一种分布式训练transformer-xl语言模型的方法和设备技术

技术编号:28626326 阅读:23 留言:0更新日期:2021-05-28 16:22
本发明专利技术涉及一种分布式训练transformer‑xl语言模型的方法和设备,应用于通过DPP训练transformer‑xl语言模型的过程,该方法包括:获取用于训练tranformer xl语言模型的文本语料数据;将所有的所述文本语料数据按照上下文顺序进行排序;将排序后的所述文本语料数据根据GPU的个数进行分块,以分为多个子数据;将不同的所述子数据分配给不同的所述GPU,所述GPU训练所分配的所述子数据的顺序与所述上下文顺序一致;依次通过各所述GPU对所述子数据进行训练,以实现对transformer‑xl语言模型的训练。本方案重构了DDP中的采样方法,使用重构后的DDP训练会tranformer xl,一则加速了巨量文本语料的的训练速度,解决了效率问题,且使得tranformer xl模型的历史信息得到保留。

【技术实现步骤摘要】
一种分布式训练transformer-xl语言模型的方法和设备
本专利技术涉及机器翻译
,具体涉及一种分布式训练transformer-xl语言模型的方法和设备。
技术介绍
语言模型的训练会使用大规模的文本语料,如果仅仅采用单个GPU(GraphicsProcessingUnit,图形处理器)进行处理,速度会很慢,所以往往使用多个GPU一起训练。常用的训练方式有DP(DataParallel,数据并行)和DDP(DistrutedDataParallle,区域数据列表)方式。如图2A所示,DP的方式是将一个batch(批处理)的数据进行分片,分配到多个GPU计算,然后把各个GPU参数同步到一个主GPU进行参数更新;DDP采用all-reduce(规约)方式,将数据按一定采样方式,把数据分词batch数目除以GPU个数的数量分配给每个GPU;每个GPU都可以进行参数更新;DDP相比DP速度上有很大提升;目前tranformerxl模型一般采用DP方式来进行多卡的训练,而由于tranformerxl模型的上下文有关联,需要每个batch按顺序训练;DDP的方式会打乱顺利,使得tranformerxl模型失去历史信息。也即DP训练巨量文本语料的tranformerxl模型速度慢;而使用DDP方式训练会tranformerxl模型失去历史信息。由此,目前需要有一种更好的方案来解决现有技术中的问题。
技术实现思路
本专利技术提供一种分布式训练transformer-xl语言模型的方法和设备,能够解决现有技术中使用DDP方式训练会tranformerxl模型失去历史信息的技术问题。本专利技术解决上述技术问题的技术方案如下:本专利技术实施例提出了一种分布式训练transformer-xl语言模型的方法,应用于通过DPP训练transformer-xl语言模型的过程,该方法包括:获取用于训练tranformerxl语言模型的文本语料数据;将所有的所述文本语料数据按照上下文顺序进行排序;将排序后的所述文本语料数据根据GPU的个数进行分块,以分为多个子数据;将不同的所述子数据分配给不同的所述GPU,所述GPU训练所分配的所述子数据的顺序与所述上下文顺序一致;依次通过各所述GPU对所述子数据进行训练,以实现对transformer-xl语言模型的训练。在一个具体的实施例中,所述将不同的所述子数据分配给不同的所述GPU,包括:按照上下文顺序对各所述子数据进行排序,生成第一序列,以及按照训练的顺序对各所述GPU进行排序,生成第二序列;针对各所述子数据,确定所述子数据的在第一序列中的排名;确定所述排名在第二序列中对应的所述GPU;将所述子数据分配给确定的所述GPU。在一个具体的实施例中,所述“依次通过各所述GPU对所述子数据进行训练,以实现对transformer-xl语言模型的训练”,包括:依次通过各所述GPU对所述子数据进行一次训练,实现一轮对transformer-xl语言模型的训练;通过多轮对transformer-xl语言模型的训练,实现对transformer-xl语言模型的最终训练。在一个具体的实施例中,每轮对transformer-xl语言模型的训练过程中,各所述子数据的迭代顺序相同。在一个具体的实施例中,各所述子数据的迭代顺序相同是通过关闭DDP的shuffle的参数配置实现的。本专利技术实施例还提出了一种分布式训练transformer-xl语言模型的设备,应用于通过DPP训练transformer-xl语言模型的过程,该设备包括:获取模块,用于获取用于训练tranformerxl语言模型的文本语料数据;排序模块,用于将所有的所述文本语料数据按照上下文顺序进行排序;分块模块,用于将排序后的所述文本语料数据根据GPU的个数进行分块,以分为多个子数据;分配模块,用于将不同的所述子数据分配给不同的所述GPU,所述GPU训练所分配的所述子数据的顺序与所述上下文顺序一致;训练模块,用于依次通过各所述GPU对所述子数据进行训练,以实现对transformer-xl语言模型的训练。在一个具体的实施例中,所述分配模块,包括:生成模块,用于按照上下文顺序对各所述子数据进行排序,生成第一序列,以及按照训练的顺序对各所述GPU进行排序,生成第二序列;处理模块,用于针对各所述子数据,确定所述子数据的在第一序列中的排名;确定所述排名在第二序列中对应的所述GPU;将所述子数据分配给确定的所述GPU。在一个具体的实施例中,所述训练模块,包括:一轮模块,用于依次通过各所述GPU对所述子数据进行一次训练,实现一轮对transformer-xl语言模型的训练;多轮模块,用于通过多轮对transformer-xl语言模型的训练,实现对transformer-xl语言模型的最终训练。在一个具体的实施例中,每轮对transformer-xl语言模型的训练过程中,各所述子数据的迭代顺序相同。在一个具体的实施例中,各所述子数据的迭代顺序相同是通过关闭DDP的shuffle的参数配置实现的本专利技术的有益效果是:本专利技术实施例提出了一种分布式训练transformer-xl语言模型的方法和设备,应用于通过DPP训练transformer-xl语言模型的过程,该方法包括:获取用于训练tranformerxl语言模型的文本语料数据;将所有的所述文本语料数据按照上下文顺序进行排序;将排序后的所述文本语料数据根据GPU的个数进行分块,以分为多个子数据;将不同的所述子数据分配给不同的所述GPU,所述GPU训练所分配的所述子数据的顺序与所述上下文顺序一致;依次通过各所述GPU对所述子数据进行训练,以实现对transformer-xl语言模型的训练。本方案重构了DDP中的采样方法,使用重构后的DDP训练会tranformerxl,一则加速了巨量文本语料的的训练速度,解决了效率问题,且使得tranformerxl模型的历史信息得到保留。附图说明图1为本专利技术实施例提供的一种分布式训练transformer-xl语言模型的方法的流程示意图;图2A为现有技术中数据采样示意图;图2B为本专利技术实施例提供的一种分布式训练transformer-xl语言模型的方法的数据采样示意图;图3为本专利技术实施例提供的一种分布式训练transformer-xl语言模型的设备的结构示意图;图4为本专利技术实施例提供的一种分布式训练transformer-xl语言模型的设备中分块模块的结构示意图;图5为本专利技术实施例提供的一种分布式训练transformer-xl语言模型的设备中训练模块的结构示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。...

【技术保护点】
1.一种分布式训练transformer-xl语言模型的方法,其特征在于,应用于通过DPP训练transformer-xl语言模型的过程,该方法包括:/n获取用于训练tranformer xl语言模型的文本语料数据;/n将所有的所述文本语料数据按照上下文顺序进行排序;/n将排序后的所述文本语料数据根据GPU的个数进行分块,以分为多个子数据;/n将不同的所述子数据分配给不同的所述GPU,所述GPU训练所分配的所述子数据的顺序与所述上下文顺序一致;/n依次通过各所述GPU对所述子数据进行训练,以实现对transformer-xl语言模型的训练。/n

【技术特征摘要】
1.一种分布式训练transformer-xl语言模型的方法,其特征在于,应用于通过DPP训练transformer-xl语言模型的过程,该方法包括:
获取用于训练tranformerxl语言模型的文本语料数据;
将所有的所述文本语料数据按照上下文顺序进行排序;
将排序后的所述文本语料数据根据GPU的个数进行分块,以分为多个子数据;
将不同的所述子数据分配给不同的所述GPU,所述GPU训练所分配的所述子数据的顺序与所述上下文顺序一致;
依次通过各所述GPU对所述子数据进行训练,以实现对transformer-xl语言模型的训练。


2.如权利要求1所述的方法,其特征在于,所述将不同的所述子数据分配给不同的所述GPU,包括:
按照上下文顺序对各所述子数据进行排序,生成第一序列,以及按照训练的顺序对各所述GPU进行排序,生成第二序列;
针对各所述子数据,确定所述子数据的在第一序列中的排名;确定所述排名在第二序列中对应的所述GPU;将所述子数据分配给确定的所述GPU。


3.如权利要求1所述的方法,其特征在于,所述“依次通过各所述GPU对所述子数据进行训练,以实现对transformer-xl语言模型的训练”,包括:
依次通过各所述GPU对所述子数据进行一次训练,实现一轮对transformer-xl语言模型的训练;
通过多轮对transformer-xl语言模型的训练,实现对transformer-xl语言模型的最终训练。


4.如权利要求3所述的方法,其特征在于,每轮对transformer-xl语言模型的训练过程中,各所述子数据的迭代顺序相同。


5.如权利要求4所述的方法,其特征在于,各所述子数据的迭代顺序相同是通过关闭DDP的shuffle的参数配置实现的。

...

【专利技术属性】
技术研发人员:沈华东李轶杰梁家恩
申请(专利权)人:云知声智能科技股份有限公司厦门云知芯智能科技有限公司
类型:发明
国别省市:北京;11

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

1