数据加载方法、装置、电子设备和存储介质制造方法及图纸

技术编号:37201833 阅读:6 留言:0更新日期:2023-04-20 22:57
本公开提供了一种数据加载方法、装置、电子设备和存储介质,涉及自然语言处理、深度学习、云计算等领域。具体实现方案为:加载深度学习模型的模型参数的参数信息,并获取用于对深度学习模型进行深度学习的第一GPU的第一数量,在第一数量为多个的情况下,对参数信息中模型参数的第一参数值集合进行分组,以得到第一数量的模型参数的第二参数值集合,并将第一数量的模型参数的第二参数值集合,加载至第一数量的第一GPU。由此,可以实现在模型训练意外中断、硬件资源等改变的情况下,通过多个第一GPU对之前训练过程中保存的模型参数的参数值集合进行加载,并根据加载的参数值集合对深度学习模型进行继续训练,以提升模型的训练效果。果。果。

【技术实现步骤摘要】
数据加载方法、装置、电子设备和存储介质


[0001]本公开涉及人工智能领域,具体涉及自然语言处理、深度学习、云计算等
,尤其涉及数据加载方法、装置、电子设备和存储介质。

技术介绍

[0002]在使用多个GPU(graphics processing unit,图形处理器)(后续简称为多卡)对深度学习模型进行分布式训练中,如果模型训练意外终止或中断,则需要重启训练任务,并恢复训练现场,以对深度学习模型进行继续训练。或者,如果硬件资源、训练策略等改变,则需保存训练现场,并迁移到其他环境进行训练现场的恢复,以对深度学习模型进行继续训练。因此,如何实现训练现场的恢复,以尽可能少地丢失训练成果是非常重要的。

技术实现思路

[0003]本公开提供了一种用于数据加载方法、装置、电子设备和存储介质。
[0004]根据本公开的一方面,提供了一种数据加载方法,包括:
[0005]获取用于对深度学习模型进行深度学习的第一图形处理器GPU的第一数量;
[0006]加载所述深度学习模型的模型参数的参数信息;
[0007]在所述第一数量为多个的情况下,对所述参数信息中所述模型参数的第一参数值集合进行分组,以得到所述第一数量的所述模型参数的第二参数值集合;
[0008]将所述第一数量的所述模型参数的第二参数值集合,加载至所述第一数量的所述第一GPU。
[0009]根据本公开的另一方面,提供了一种数据加载装置,包括:
[0010]获取模块,用于获取用于对深度学习模型进行深度学习的第一图形处理器GPU的第一数量;
[0011]第一加载模块,用于加载所述深度学习模型的模型参数的参数信息;
[0012]分组模块,用于在所述第一数量为多个的情况下,对所述参数信息中所述模型参数的第一参数值集合进行分组,以得到所述第一数量的所述模型参数的第二参数值集合;
[0013]第二加载模块,用于将所述第一数量的所述模型参数的第二参数值集合,加载至所述第一数量的所述第一GPU。
[0014]根据本公开的又一方面,提供了一种电子设备,包括:
[0015]至少一个处理器;以及
[0016]与所述至少一个处理器通信连接的存储器;其中,
[0017]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开上述一方面提出的数据加载方法。
[0018]根据本公开的再一方面,提供了一种计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开上述一方面提出的数据加载方法。
parallelism,简称TP)+PP组合时,分开处理:在模型参数保存时,多卡的模型参数(即MP的模型参数)进行merge操作;在模型参数加载时,多卡的模型参数(即MP的模型参数)进行split操作;
[0041]5、当训练策略为zero1或zero2时,不切分模型参数,类似于数据并行模型保存;
[0042]6、当训练策略为zero3时,模型参数分开保存,加载时调用all_gather(汇聚)实现模型参数的汇聚。
[0043]第二种,Megatron(一种分布式训练框架,用来训练超大规模的语言模型)。
[0044]模型参数的保存和加载主要用于复现现场、复用训练,训练推理均为动态图。
[0045]为了可以完全复用现场,保存的内容可以包括:模型的版本号;迭代轮数;优化器状态;调度器Scheduler状态、RNG(Random Numeral Generator,随机数生成器)的随机控制状态。
[0046]通过复用上述信息,可以保证完全复现训练之前的训练状态。
[0047]然而上述第一种方式,在使用不同MP策略保存或加载模型参数时,DeepSpeed只能支持整数倍关系的MP维度,不够灵活。
[0048]上述第二种方式,Megatron只专注于训练现场的保存,没有考虑对不同训练策略进行保存和加载。
[0049]此外,上述第一种方式和第二种方式均没有考虑为静态图推理保存模型参数的情况。
[0050]针对上述存在的至少一项问题,本公开提出一种数据加载方法、装置、电子设备和存储介质。
[0051]下面参考附图描述本公开实施例的数据加载方法、装置、电子设备和存储介质。
[0052]图1为本公开实施例一所提供的数据加载方法的流程示意图。
[0053]本公开实施例以该数据加载方法被配置于数据加载装置中来举例说明,该数据加载装置可以应用于任一电子设备中,以使该电子设备可以执行数据加载功能。
[0054]其中,电子设备可以为任一具有计算能力的设备,例如可以为PC(Personal Computer,个人电脑)、移动终端、服务器等,移动终端例如可以为车载设备、手机、平板电脑、个人数字助理、穿戴式设备等具有各种操作系统、触摸屏和/或显示屏的硬件设备。
[0055]如图1所示,该数据加载方法可以包括以下步骤:
[0056]步骤101,获取用于对深度学习模型进行深度学习的第一GPU的第一数量。
[0057]在本公开实施例中,对深度学习模型的模型结构不作限制,比如,深度学习模型可以为以Transformer为基本结构的模型,或者,深度学习模型也可以为其他结构的模型。
[0058]在本公开实施例中,对深度学习模型的应用场景不作限制,比如,深度学习模型可以应用于文本或图片的特征提取(比如语义特征提取)、文本分类、知识抽取或实体抽取、情感分类、机器翻译、图片分类、目标检测(比如障碍物检测、行人检测等)等场景。
[0059]在本公开实施例中,第一GPU为用于对深度学习模型进行深度学习或训练的GPU。
[0060]在本公开实施例中,第一GPU和第一GPU的数量(本公开中记为第一数量)可以根据用户传入的模型信息确定的。
[0061]步骤102,加载深度学习模型的模型参数的参数信息。
[0062]在本公开实施例中,模型参数的数量可以为至少一个。
[0063]在本公开实施例中,参数信息可以包括以下至少一项:
[0064]1、模型参数的标识信息,比如名称、索引等;
[0065]2、模型参数的参数值集合,该参数值集合的展示形式可以为矩阵形式或向量形式,比如,当模型参数为权重参数时,该参数值集合中包含的多个参数值可以为权重参数对应的权重矩阵中的各个元素;
[0066]3、模型参数的切分方式,比如行切(按行切分,或称为横切)、列切(按列切分,或称为竖切);
[0067]4、模型参数所在的切分通信组(比如MP通信组)的标识信息(比如序号);
[0068]5、模型参数所在的深度学习模型的训练策略,其中,训练策略可以包括以下至少一项:PP、DP、MP、zero1、zero2、zero3。
[0069]在本公开实施例中,模型参数的参数信息可以保存在一个G本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据加载方法,所述方法包括:获取用于对深度学习模型进行深度学习的第一图形处理器GPU的第一数量;加载所述深度学习模型的模型参数的参数信息;在所述第一数量为多个的情况下,对所述参数信息中所述模型参数的第一参数值集合进行分组,以得到所述第一数量的所述模型参数的第二参数值集合;将所述第一数量的所述模型参数的第二参数值集合,加载至所述第一数量的所述第一GPU。2.根据权利要求1所述的方法,其中,所述参数信息存储于多个第二GPU中,所述对所述参数信息中所述模型参数的第一参数值集合进行分组,以得到所述第一数量的所述模型参数的第二参数值集合,包括:根据所述参数信息,确定所述模型参数的第一切分方式;根据所述第一切分方式和所述第一数量,对从所述多个第二GPU中加载的参数信息中的所述模型参数的第一参数值集合进行分组,以得到所述第一数量的所述模型参数的第二参数值集合。3.根据权利要求2所述的方法,其中,所述根据所述第一切分方式和所述第一数量,对从所述多个第二GPU中加载的参数信息中的所述模型参数的第一参数值集合进行分组,包括:确定所述第二GPU的第二数量;在所述第一数量为所述第二数量的非整数倍,或所述第二数量为所述第一数量的非整数倍的情况下,根据所述第一切分方式,将从所述多个第二GPU中加载的参数信息中的所述模型参数的第一参数值集合进行合并,以得到第三参数值集合;根据所述第一数量和所述第一切分方式,对所述第三参数值集合进行切分,以得到所述第一数量的第二参数值集合。4.根据权利要求3所述的方法,其中,所述根据所述第一切分方式和所述第一数量,对从所述多个第二GPU中加载的参数信息中的所述模型参数的第一参数值集合进行分组,还包括:在所述第一数量为第二数量的N倍的情况下,根据N和所述第一切分方式,将从所述多个第二GPU中加载的参数信息中的所述模型参数的第一参数值集合进行切分,以得到所述第一数量的第二参数值集合;在所述第二数量为所述第一数量的M倍的情况下,根据M和所述第一切分方式,将从所述多个第二GPU中加载的参数信息中的所述模型参数的第一参数值集合进行合并,以得到所述第一数量的第二参数值集合;其中,N和M均为大于1的正整数。5.根据权利要求3所述的方法,其中,所述根据所述第一切分方式和所述第一数量,对从所述多个第二GPU中加载的参数信息中的所述模型参数的第一参数值集合进行分组,还包括:在所述第一数量等于所述第二数量的情况下,将从每个所述第二GPU中加载的参数信息中的所述模型参数的第一参数值集合,作为一个所述第二参数值集合。6.根据权利要求1所述的方法,其中,所述参数信息存储于一个第三GPU中,
所述对所述参数信息中所述模型参数的第一参数值集合进行分组,以得到所述第一数量的所述模型参数的第二参数值集合,包括:从所述参数信息中提取第二切分方式,其中,所述第一参数值集合是根据所述第二切分方式对所述模型参数对应的多个参数值子集进行合并得到的;根据所述第二切分方式和所述第一数量,对所述参数信息中的所述模型参数的第一参数值集合进行切分,以得到所述第一数量的第二参数值集合。7.根据权利要求1

6中任一项所述的方法,其中,所述方法还包括:从所述参数信息中提取第一训练策略;将所述第一训练策略加载至所述第一GPU,以使所述第一GPU根据加载的所述第一训练策略和所述模型参数的第二参数值集合进行所述深度学习模型的深度学习。8.根据权利要求1所述的方法,其中,所述方法还包括:在所述第一数量为单个的情况下,确定存储所述参数信息的第四GPU的第三数量;在所述第三数量为多个的情况下,根据所述参数信息,确定所述模型参数的第三切分方式;根据所述第三切分方式,将从所述多个第四GPU中加载的参数信息中的所述模型参数的第一参数值集合进行合并,以得到第四参数值集合;将所述第四参数值集合,加载至所述第一GPU。9.根据权利要求8所述的方法,其中,所述方法,还包括:在所述第三数量为单个的情况下,将从所述第四GPU中加载的参数信息中的所述模型参数的第一参数值集合,加载至所述第一GPU。10.根据权利要求8或9所述的方法,其中,所述方法还包括:从所述参数信息中提取第二训练策略;将所述第二训练策略加载至所述第一GPU,以使所述第一GPU根据加载的所述第二训练策略以及所述模型参数的第一参数值集合或第四参数值集合进行所述深度学习模型的深度学习。11.一种数据加载装置,所述装置包括:获取模块,用于获取用于对深度学习模型进行深度学习的第一图形处理器GPU的第一数量;第一加载模块,用于加载所述深度学习模型的模型参数的参数信息;分组模块,用...

【专利技术属性】
技术研发人员:沈亮郝宏翔刘鹏巩伟宝吴志华于佃海
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1