掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:30


数据处理方法、装置、电子设备及存储介质

技术领域

本申请涉及人工智能技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。

背景技术

随着AI(Artificial Intelligence,人工智能)大模型的突起,执行AI大模型训练时,由于大模型训练需求的异构卡量,即模型训练过程中GPU(graphics processing unit,图形处理器)的数量在万级,而且训练过程中,多机卡间需要频繁执行网络通信、训练程序内存拷贝通信,通信的数据量大且要求性能高,数据通信期间(即传输训练数据包期间),异构卡处于空窗等待数据的时间段;如何缩减等待数据的时间段,充分发挥异构卡的算力,在大模型训练中是亟待解决的问题。

相关技术中,会通过建设更大的带宽,即通过压缩通信的时间,用时间来换取异构计算的空间,但更大的带宽建设需要异构计算设备上增加更多的物理网卡,且需要采购更多数据接口的交换机设备,成本的增加较多;但通信的数据属于瞬时的通信,也就存在网络空闲的时间多于数据通信的时间,带宽的利用率低。因此,需要提供更有效可靠的方案,以提升大模型训练过程中异构卡(GPU)的计算性能和模型训练效率。

发明内容

本申请提供了一种数据处理方法、装置、设备、存储介质及计算机程序产品,可以有效缩减异构计算的等待时间窗口,提升大模型训练过程中异构卡(GPU)的计算性能和模型训练效率。

一方面,本申请提供了一种数据处理方法,所述方法包括:

在从远端设备拉取待训练模型对应的多个当前训练数据包的过程中,在预设内存中,对已接收到的每个当前训练数据包进行解封处理,得到每个解封样本数据;

在得到所述每个解封样本数据的情况下,将所述每个解封样本数据从所述预设内存拷贝到显存,以使GPU基于所述显存中的所述每个解封样本数据对所述待训练模型进行训练。

另一方面提供了一种数据处理装置,所述装置包括:

解封处理模块,被配置为执行在从远端设备拉取待训练模型对应的多个当前训练数据包的过程中,在预设内存中,对已接收到的每个当前训练数据包进行解封处理,得到每个解封样本数据;

数据拷贝模块,被配置为执行在得到所述每个解封样本数据的情况下,将所述每个解封样本数据从所述预设内存拷贝到显存,以使GPU基于所述显存中的所述每个解封样本数据对所述待训练模型进行训练。

另一方面提供了一种电子设备,包括:处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现上述任一项所述的数据处理方法。

另一方面提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述任一数据处理方法。

另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的数据处理方法。

本申请提供的数据处理方法、装置、电子设备、存储介质及计算机程序产品,具有如下技术效果:

本申请在需要从远端设备拉取数据,以对本地待训练模型进行训练的异构场景中,通过在每次拉取多个当前训练数据包过程中,每接收到一个当前训练数据包就进行解封处理,并在得到每个解封样本数据的情况下,将每个解封样本数据从所述预设内存拷贝到显存,可以在训练数据拉取传输过程中,就将模型训练所需样本数据预先拷贝到显存中,有效缩减异构计算等待训练数据的时间窗口,可以让GPU在传输训练数据过程中,基于已拷贝到显存中的样本数据对待训练模型进行训练,进而提升提升模型训练过程中异构卡(GPU)的计算性能和模型训练效率,同时也可以有效避免了网络带宽浪费的情况,有效降低高计算性能的成本。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

图1是本申请实施例提供的一种数据处理方法的流程示意图;

图2是本申请实施例提供的一种获取解封样本数据的示意图;

图3是本申请实施例提供的另一种数据处理方法的流程示意图;

图4是本申请实施例提供的一种历史计算耗时数据和历史内存容量间的关系曲线的示意图;

图5是本申请实施例提供的一种在待训练模型的训练过程中,从至少一个性能优化维度,优化GPU的计算性能的流程示意图;

图6是本申请实施例提供的一种模型训练过程的示意图;

图7是本申请实施例提供的一种数据处理装置的结构示意图;

图8是本申请实施例提供的一种用于数据处理的电子设备的框图;

图9是本申请实施例提供的另一种用于数据处理的电子设备的框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

本申请实施例提供的方案涉及人工智能的大模型训练技术,具体的,可以通过如下实施例进行说明:

本申请实施例提供的一种数据处理方法可以应用于大模型训练过程中多个异构设备中的模型计算设备,即用于进行模型训练的设备,具体的,模型计算设备可以包括GPU(graphics processing unit,图形处理器)、内存和显存等。

在一个可选的实施例中,该模型计算设备可以是服务器,例如独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。

以下介绍本申请一种数据处理方法,该数据处理方法可以应用于模型计算设备,图1是本申请实施例提供的一种数据处理方法的流程示意图,具体的,如图1所示,该数据处理方法可以包括:

S101:在从远端设备拉取待训练模型对应的多个当前训练数据包的过程中,在预设内存中,对已接收到的每个当前训练数据包进行解封处理,得到每个解封样本数据。

在一个具体的实施例中,远端设备可以为多个异构设备(大模型训练过程的异构设备)中任一提供多个当前训练数据包的异构设备。具体的,待训练模型可以为需要训练的人工智能大模型。

在实际应用中,模型训练过程中,往往会进行多轮训练,相应的,上述多个当前训练数据包可以为当前模型训练轮次所需的多个训练数据包,每个当前训练数据包可以为封装好的训练数据。具体的,不同待训练模型对应的训练数据不同,例如待训练的视频推荐模型(待训练模型)对应的训练数据可以包括样本视频的视频属性数据、样本账号的账号属性数据和样本账号的历史操作数据等。可选的,例如待训练的人脸识别模型(待训练模型)对应的训练数据可以包括样本人脸图像和样本人脸图像的人脸标注信息等。

在一个具体的实施例中,可以通过TCP网络通信,从远端设备拉取到每个当前训练数据包;具体的,在通过TCP通信网卡读取到每个当前训练数据包后,可以通过总线流到预设内存中,例如PCIE(peripheral component interconnect express,高速串行计算机扩展总线标准)总线等。具体的,如图2所示,图2是本申请实施例提供的一种获取解封样本数据的示意图;可以构建提拉程序,该提拉程序可以从网卡获取每个当前训练数据包,并将获取的每个当前训练数据包写入预设内存,并在预设内容中执行解封处理,得到解封样本数据。

在一个可选的实施例中,也可以结合实际业务需求,采用其他通信方式进行当前训练数据包的拉取,例如基于RDMA(Remote Direct Memory Access,远程直接数据存取)通信拉取当前训练数据包。

在一个具体的实施例中,预设内存可以为模型计算设备的内存。

在一个具体的实施例中,可以结合已接收到的每个当前训练数据包对应的封装协议,进行解封处理,得到每个解封样本数据;可选的,数据的封装协议可以结合实际应用需求进行设置,例如pb协议(ProtocolBuffer)一种将要传输的数据按照一定规则进行编码的协议。相应的,基于编码的规则,对每个当前训练数据包进行解码,得到编码前的每个解封样本数据。

在一个具体的实施例中,从远端设备拉取待训练模型对应的多个当前训练数据包的过程可以为数据通信期间,即传输训练数据包期间。

S103:在得到每个解封样本数据的情况下,将每个解封样本数据从预设内存拷贝到显存,以使GPU基于显存中的每个解封样本数据对待训练模型进行训练。

在一个可选的实施例中,GPU在进行模型训练过程中,会从显存中读取样本数据,且GPU对读取的数据往往具有一定的格式要求,可选的,若在对样本数据封装时,样本数据的格式满足GPU对读取数据的格式要求,相应的,在解封后得到的解封样本数据的格式,也满足GPU对读取数据的格式要求;可选的,若在对样本数据封装时,样本数据的格式不满足GPU对读取数据的格式要求,在解封后得到的解封样本数据的格式,也不满足GPU对读取数据的格式要求;相应的,如图3所示,上述在得到每个解封样本数据的情况下,将每个解封样本数据从预设内存拷贝到显存可以包括:

S1031:在得到每个解封样本数据的情况下,在预设内存中对每个解封样本数据进行序列化处理,得到每个解封样本数据对应的序列化数据;

S1033:将每个解封样本数据对应的序列化数据从预设内存拷贝到显存。

在一个具体的实施例中,每个解封样本数据对应的序列化数据可以为按照GPU对读取数据的格式要求,对每个解封样本数据进行格式转换后的的样本数据。具体的,例如每个解封样本数据的长度大于GPU对读取数据的长度要求(格式要求),相应的,可以基于GPU对读取数据的长度要求,对解封样本数据进行分段,以得到满足。

上述实施例中,通过在预设内存中对每个解封样本数据进行序列化处理后,拷贝到显存,可以有效保证后续GPU可以直接对从显存读取的样本数据进行模型训练。

在一个可选的实施例中,由于内存容易出现因缺页中断,数据被换入换出的情况,影响了数据从内存提拉到显存的效率,可选的,可以从模型计算设备的内存中申请锁页内存(固定使用的内存),避免因缺页中断带来的数据被换入换出的情况,进而可以提升数据从内存提拉到显存的效率。相应的,上述预设内存可以为目标内存容量的预设锁页内存,上述方法还可以包括:

获取GPU在多轮历史模型训练过程中的历史计算耗时数据和历史内存容量;

根据多轮历史模型训练过程中的历史计算耗时数据和历史内存容量,拟合出目标内存容量。

在一个具体的实施例中,目标内存容量可以为让GPU处于稳定的计算性能的内存容量。上述历史计算耗时数据可以为每轮历史模型训练过程中,GPU执行模型训练操作的耗时占每轮历史模型训练对应的总耗时的比例,历史内存容量为每轮历史模型训练过程中使用的内存容量。

在一个具体的实施例中,可以以多轮历史模型训练过程中的历史内存容量为横坐标,多轮历史模型训练过程中的历史计算耗时数据为纵坐标,拟合出历史计算耗时数据和历史内存容量间的关系曲线,并将关系曲线中趋势平稳时对应的历史内存容量作为目标内存容量。

在一个具体的实施例中,如图4所示,图4是本申请实施例提供的一种历史计算耗时数据和历史内存容量间的关系曲线的示意图,其中,横坐标为多轮历史模型训练过程中的历史内存容量(单位为G),纵坐标为多轮历史模型训练过程中的历史计算耗时数据;结合图4可见,关系曲线中趋势平稳时对应的历史内存容量可以为75G。

此外,需要说明的是图4仅仅是一种示例,实际应用中不同模型对应的目标内存容量往往也不同。

上述实施例中,GPU在多轮历史模型训练过程中的历史计算耗时数据和历史内存容量,拟合出预设锁页内存的目标内存容量,可以实现对样本数据存储处理的专属内存锁定,有效避免内存出现因缺页中断导致的样本数据被换入换出的情况,进而也可以有效提升样本数据从内存提拉到显存的效率。

在一个可选的实施例中,上述在得到每个解封样本数据的情况下,将每个解封样本数据从预设内存拷贝到显存可以包括:

在得到每个解封样本数据的情况下,触发每个解封样本数据对应的拷贝驱动事件,以将每个解封样本数据从预设内存拷贝到显存。

在一个具体的实施例中,拷贝驱动事件可以用于触发预设内存中数据往显存拷贝;具体的,在得到每个解封样本数据的情况下,提拉程序可以触发每个解封样本数据对应的拷贝驱动事件,进一步的,拷贝进程可以检测拷贝驱动事件,在检测到拷贝驱动事件的情况下,可以将每个解封样本数据从预设内存拷贝到显存。

此外,需要说明的是,若解封样本数据的格式不满足GPU对读取数据的格式要求,在拷贝驱动事件触发的情况下,可以先由序列化处理进程,对解封样本数据进行序列化处理,得到满足GPU对读取数据的格式要求的序列化数据后,由拷贝进程将序列化数据拷贝到显存。

上述实施例中,通过拷贝驱动事件触发的方式,在待训练模型对应的多个当前训练数据包的拉取过程中,触发样本数据从内存到显存的拷贝,实现无侵入的增加数据拷贝功能,使用中对模型开发人员无感知,可以有效压缩异构计算过程中等待样本数据传输的时间窗口,进而可以让GPU在拉取训练数据过程中,基于已拷贝到显存中的样本数据对待训练模型进行训练,提示大模型训练过程中异构卡(GPU)的计算性能的和模型训练效率,进而也有助于提升大模型应用研究人员的研发效能,提升实验迭代的效率。

在一个可选的实施例中,上述方法还可以包括:

在待训练模型的训练过程中,从至少一个性能优化维度,优化GPU的计算性能。

在一个具体的实施例中,GPU对应的计算耗时数据越大,GPU的计算性能越好;相应的,可以结合GPU对应的计算耗时数据进行计算性能优化,在一个可选的实施例中,上述至少一个性能优化维度可以包括内存容量维度,预设内存可以为目标内存容量的预设锁页内存,如图5所示,上述在待训练模型的训练过程中,从至少一个性能优化维度,优化GPU的计算性能可以包括:

S501:获取GPU对应的第一累计耗时数据;

S503:在第一累计耗时数据小于预设耗时数据的情况下,获取GPU在待训练模型的多轮模型训练过程中的计算耗时数据和内存容量,该计算耗时数据为每轮模型训练过程中,GPU执行模型训练操作的耗时占每轮模型训练对应的总耗时的比例;该内存容量为每轮模型训练过程中使用的内存容量;

S505:根据多轮模型训练过程中的计算耗时数据和内存容量,拟合出优化内存容量;

S507:将预设锁页内存的容量,由目标内存容量更新为优化内存容量,以优化GPU的计算性能。

在一个具体的实施例中,上述第一累计耗时数据可以为待训练模型对应的第一训练时间段内,GPU执行待训练模型的模型训练操作的耗时占第一训练时间段对应的总耗时的比例,第一训练时间段为待训练模型的开始训练时间至第一当前时间。第一当前时间可以为获取第一累计耗时数据时的时间。预设耗时数据可以为预先设置的计算耗时占比阈值,可以结合实际应用中对GPU的计算性能进行设置。

在一个具体的实施例中,优化内存容量可以为让GPU在训练待训练模型过程中处于稳定的计算性能的内存容量。具体的,可以以待训练模型的多轮模型训练过程中的内存容量为横坐标,待训练模型的多轮模型训练过程中的计算耗时数据为纵坐标,拟合出待训练模型训练过程中计算耗时数据和历史内存容量间的关系曲线,并将关系曲线中趋势平稳时对应的内存容量作为优化内存容量。

在一个可选的实施例中,在第一累计耗时数据大于等于预设耗时数据的情况下,可以确定当前的GPU计算性能已经达到预期,相应的,可以不执行内存容量维度的计算性能优化步骤。

上述实施例中,在待训练模型的训练过程中,结合待训练模型对应的第一训练时间段内,GPU执行待训练模型的模型训练操作的耗时占第一训练时间段对应的总耗时的比例(第一累计耗时数据),来反映GPU训练当前的待训练模型过程中的计算性能,并在第一累计耗时数据小于预设耗时数据的情况下,结合待训练模型训练过程中的计算耗时数据和内存容量拟合出让GPU在训练待训练模型过程中处于稳定的计算性能的内存容量(优化内存容量),并将预设锁页内存的容量,由目标内存容量更新为优化内存容量,以实现内存容量维度的GPU计算性能优化,大大提升数据从内存提拉到显存的效率,进而提升模型训练过程中异构卡(GPU)的计算性能和模型训练效率。

在一个可选的实施例中,上述至少一个性能优化维度还可以包括:数据包维度,如图5所示,在将预设锁页内存的容量,由目标内存容量更新为优化内存容量之后,上述在待训练模型的训练过程中,从至少一个性能优化维度,优化GPU的计算性能还可以包括:

S509:获取GPU对应的第二累计耗时数据;

S511:在第二累计耗时数据小于预设耗时数据的情况下,向远端设备发送数据包优化指令,以使远端设备优化训练数据封装协议或指示远端设备对训练数据包进行冗余数据删除处理,以优化GPU的计算性能。

在一个具体的实施例中,数据包优化指示远端设备优化训练数据封装协议或指示远端设备对训练数据包进行冗余数据删除处理。上述第二累计耗时数据可以为待训练模型对应的第二训练时间段内,GPU执行待训练模型的模型训练操作的耗时占第二训练时间段对应的总耗时的比例,第二训练时间段可以为待训练模型的开始训练时间至第二当前时间。第二当前时间可以为获取第二累计耗时数据时的时间。

在一个具体的实施例中,数据包维度可以包括数据包封装协议维度,具体的,可以通过更改封装和解封速度更好的封装协议,以优化GPU的计算性能;可选的,数据包维度可以包括数据包冗余删除维度,具体的,可以通过删除训练数据包中冗余的字段内容等方式,来优化GPU的计算性能。具体的,需要删除的冗余的字段内容可以结合实际应用需求进行设置,例如一些重复的字段内容,或对模型本身性能影响不大的字段内容等。

在一个可选的实施例中,在第二累计耗时数据大于等于预设耗时数据的情况下,可以确定当前的GPU计算性能已经达到预期,相应的,可以不执行数据包维度的计算性能优化步骤。

上述实施例中,在进行内存容量维度的性能优化之后,GPU当前的计算性能依然未达到要求的情况下,可以通过向远端设备发送数据包优化指令,以使远端设备通过优化训练数据封装协议或对训练数据包进行冗余数据删除处理的方式,实现数据包维度的GPU计算性能优化,大大提升数据包封装和解封的处理速度,提升模型训练过程中异构卡(GPU)的计算性能和模型训练效率。

在一个可选的实施例中,上述在得到每个解封样本数据的情况下,将每个解封样本数据从预设内存拷贝到显存可以包括:在得到每个解封样本数据的情况下,在预设内存中对每个解封样本数据进行序列化处理,得到每个解封样本数据对应的序列化数据;将每个解封样本数据对应的序列化数据从预设内存拷贝到显存;

可选的,上述至少一个性能优化维度还可以包括序列化维度,相应的,如图5所示,在向远端设备发送数据包优化指令之后,在待训练模型的训练过程中,从至少一个性能优化维度,优化GPU的计算性能还可以包括:

S513:获取GPU对应的第三累计耗时数据;

S515:在第三累计耗时数据小于预设耗时数据的情况下,增加序列化处理进程,或确定样本冗余数据项,以优化GPU的计算性能。

在一个具体的实施例中,第三累计耗时数据为待训练模型对应的第三训练时间段内,GPU执行待训练模型的模型训练操作的耗时占第三训练时间段对应的总耗时的比例,第三训练时间段为待训练模型的开始训练时间至第三当前时间;具体的,第三当前时间可以为获取第三累计耗时数据时的时间。

在一个可选的实施例中,上述在得到每个解封样本数据的情况下,在预设内存中对每个解封样本数据进行序列化处理,得到每个解封样本数据对应的序列化数据可以包括:

在得到每个解封样本数据的情况下,基于样本冗余数据项,在预设内存中,对每个解封样本数据进行冗余数据过滤,得到过滤样本数据;

在预设内存中对过滤样本数据进行序列化处理,得到每个解封样本数据对应的序列化数据。

在一个具体的实施例中,样本冗余数据项可以为冗余的样本数据项,可以结合实际应用进行设置,例如一些重复的数据项,或对模型本身性能影响不大的数据项等。

在一个可选的实施例中,上述在得到每个解封样本数据的情况下,在预设内存中对每个解封样本数据进行序列化处理,得到每个解封样本数据对应的序列化数据包括:

在得到每个解封样本数据的情况下,基于增加后的序列化处理进程,在预设内存中对每个解封样本数据进行序列化处理,得到每个解封样本数据对应的序列化数据。

在一个可选的实施例中,在第三累计耗时数据大于等于预设耗时数据的情况下,可以确定当前的GPU计算性能已经达到预期,相应的,可以不执行序列化维度的计算性能优化步骤。

上述实施例中,在进行数据包维度的性能优化之后,GPU当前的计算性能依然未达到要求的情况下,可以通过增加序列化处理进程或过程样本数据中的冗余数据的方式,实现序列化维度的GPU计算性能优化,大大提升序列化处理速度,提升模型训练过程中异构卡(GPU)的计算性能和模型训练效率。

在一个可选的实施例中,将每个解封样本数据对应的序列化数据从预设内存拷贝到显存可以包括:基于总线,将每个解封样本数据对应的序列化数据从预设内存拷贝到显存;

可选的,上述至少一个性能优化维度还可以包括总线维度,如图5所示,在在预设内存中,对每个解封样本数据进行序列化优化处理,得到每个解封样本数据对应的序列化数据之后,上述在待训练模型的训练过程中,从至少一个性能优化维度,优化GPU的计算性能还可以包括:

S517:获取GPU对应的第四累计耗时数据;

S519:在第四累计耗时数据小于预设耗时数据的情况下,增加总线的带宽;

相应的,上述基于总线,将每个解封样本数据对应的序列化数据从预设内存拷贝到显存可以包括:

基于增加带宽后的总线,将每个解封样本数据对应的序列化数据从预设内存拷贝到显存。

在一个具体的实施例中,上述第四累计耗时数据可以为待训练模型对应的第四训练时间段内,GPU执行待训练模型的模型训练操作的耗时占第四训练时间段对应的总耗时的比例,第四训练时间段为待训练模型的开始训练时间至第四当前时间;具体的,第四当前时间可以为获取第四累计耗时数据时的时间。

在一个可选的实施例中,在第四累计耗时数据大于等于预设耗时数据的情况下,可以确定当前的GPU计算性能已经达到预期,相应的,可以不执行总线维度的计算性能优化步骤。

上述实施例中,在进行序列化维度的性能优化之后,GPU当前的计算性能依然未达到要求的情况下,可以通过增加总线带宽,提升样本数据从内存拷贝到显存的速度,实现总线维度的GPU计算性能优化,提升模型训练过程中异构卡(GPU)的计算性能和模型训练效率。

此外,需要说明的是,至少一个性能优化维度并不仅限于上述的内存容量维度、数据包维度、序列化维度和总线维度中的至少一种,在实际应用中,还可以设置其他性能优化维度,且优化的先后顺序也并不仅限于上述的顺序,在实际应用中,还可以调整多个性能优化维度的优化先后顺序,例如先优化序列化维度,再优化数据包维度等。

由以上本说明书实施例提供的技术方案可见,本说明书在需要从远端设备拉取数据,以对本地待训练模型进行训练的异构场景中,通过在每次拉取多个当前训练数据包过程中,每接收到一个当前训练数据包就进行解封处理,并在得到每个解封样本数据的情况下,将每个解封样本数据从预设内存拷贝到显存,可以在训练数据拉取传输过程中,就将模型训练所需样本数据预先拷贝到显存中,有效缩减异构计算等待训练数据的时间窗口,可以让GPU在传输训练数据过程中,基于已拷贝到显存中的样本数据对待训练模型进行训练,进而提升提升模型训练过程中异构卡(GPU)的计算性能和模型训练效率,同时也可以有效避免了网络带宽浪费的情况,有效降低高计算性能的成本。

在一个具体的实施例中,如图6所示,图6是本申请实施例提供的一种模型训练过程的示意图。具体的,可以将模型训练过程划分为数据通信流程和异构计算流程,其中,数据通信流程可以包括通过网卡和总线从远端获取当前训练数据包的步骤,以及在预设内存中进行当前训练数据的解封处理,生成解封样本数据的步骤;接着,每生成一个解封样本数据,基于可以通过触发拷贝驱动事件,进行入异构计算流程,同时继续数据通信流程的步骤,直至生成当前训练轮次的全部解封样本数据,异构计算流程可以包括在预设内存中对解封样本数据进行序列化处理,得到序列化数据的步骤,以及将序列化数据拷贝到显存,以供GPU进行模型训练的步骤。

本申请实施例还提供了一种数据处理装置,如图7所示,上述装置包括:

解封处理模块710,被配置为执行在从远端设备拉取待训练模型对应的多个当前训练数据包的过程中,在预设内存中,对已接收到的每个当前训练数据包进行解封处理,得到每个解封样本数据;

数据拷贝模块720,被配置为执行在得到所述每个解封样本数据的情况下,将所述每个解封样本数据从所述预设内存拷贝到显存,以使GPU基于所述显存中的所述每个解封样本数据对所述待训练模型进行训练。

在一个可选的实施例中,所述预设内存为目标内存容量的预设锁页内存,所述装置还包括:

历史数据获取模块,被配置为执行获取所述GPU在多轮历史模型训练过程中的历史计算耗时数据和历史内存容量,所述历史计算耗时数据为每轮历史模型训练过程中,所述GPU执行模型训练操作的耗时占所述每轮历史模型训练对应的总耗时的比例,所述历史内存容量为所述每轮历史模型训练过程中使用的内存容量;

目标内存容量拟合模块,被配置为执行根据所述多轮历史模型训练过程中的所述历史计算耗时数据和所述历史内存容量,拟合出所述目标内存容量。

在一个可选的实施例中,所述装置还包括:

计算性能优化模块,被配置为执行在所述待训练模型的训练过程中,从至少一个性能优化维度,优化所述GPU的计算性能。

在一个可选的实施例中,所述至少一个性能优化维度包括内存容量维度,所述预设内存为目标内存容量的预设锁页内存,所述计算性能优化模块包括:

第一累计耗时数据获取单元,被配置为执行获取所述GPU对应的第一累计耗时数据,所述第一累计耗时数据为所述待训练模型对应的第一训练时间段内,所述GPU执行所述待训练模型的模型训练操作的耗时占所述第一训练时间段对应的总耗时的比例,所述第一训练时间段为所述待训练模型的开始训练时间至第一当前时间;

第一数据获取单元,被配置为执行在所述第一累计耗时数据小于预设耗时数据的情况下,获取所述GPU在所述待训练模型的多轮模型训练过程中的计算耗时数据和内存容量,所述计算耗时数据为每轮模型训练过程中,所述GPU执行模型训练操作的耗时占所述每轮模型训练对应的总耗时的比例,所述内存容量为所述每轮模型训练过程中使用的内存容量;

优化内存容量拟合单元,被配置为执行根据所述多轮模型训练过程中的所述计算耗时数据和所述内存容量,拟合出优化内存容量;

内存容量更新单元,被配置为执行将所述预设锁页内存的容量,由所述目标内存容量更新为所述优化内存容量,以优化所述GPU的计算性能。

在一个可选的实施例中,所述至少一个性能优化维度还包括数据包维度,所述计算性能优化模块还包括:

第二累计耗时数据获取单元,被配置为执行在将所述预设锁页内存的容量,由所述目标内存容量更新为所述优化内存容量之后,获取所述GPU对应的第二累计耗时数据,所述第二累计耗时数据为所述待训练模型对应的第二训练时间段内,所述GPU执行所述待训练模型的模型训练操作的耗时占所述第二训练时间段对应的总耗时的比例,所述第二训练时间段为所述待训练模型的所述开始训练时间至第二当前时间;

数据包优化指令发送模块,被配置为执行在所述第二累计耗时数据小于所述预设耗时数据的情况下,向所述远端设备发送数据包优化指令,以使所述远端设备优化训练数据封装协议或指示所述远端设备对训练数据包进行冗余数据删除处理,以优化所述GPU的计算性能。

在一个可选的实施例中,所述数据拷贝模块720包括:

第一序列化处理单元,被配置为执行在得到所述每个解封样本数据的情况下,在所述预设内存中对所述每个解封样本数据进行序列化处理,得到每个解封样本数据对应的序列化数据;

第一拷贝单元,被配置为执行将所述每个解封样本数据对应的序列化数据从所述预设内存拷贝到所述显存;

所述至少一个性能优化维度还包括序列化维度,所述计算性能优化模块还包括:

第三累计耗时数据获取单元,被配置为执行在所述向所述远端设备发送数据包优化指令之后,获取所述GPU对应的第三累计耗时数据,所述第三累计耗时数据为所述待训练模型对应的第三训练时间段内,所述GPU执行所述待训练模型的模型训练操作的耗时占所述第三训练时间段对应的总耗时的比例,所述第三训练时间段为所述待训练模型的所述开始训练时间至第三当前时间;

序列化优化处理单元,被配置为执行在所述第三累计耗时数据小于所述预设耗时数据的情况下,增加序列化处理进程,或确定样本冗余数据项,以优化所述GPU的计算性能。

在一个可选的实施例中,上述第一序列化处理单元包括:

冗余数据过滤单元,被配置为执行在得到所述每个解封样本数据的情况下,基于所述样本冗余数据项,在所述预设内存中,对所述每个解封样本数据进行冗余数据过滤,得到过滤样本数据;

第一序列化处理子单元,被配置为执行在所述预设内存中对所述过滤样本数据进行序列化处理,得到所述每个解封样本数据对应的序列化数据。

在一个可选的实施例中,上述第一序列化处理单元包括:

第二序列化处理子单元,被配置为执行在得到所述每个解封样本数据的情况下,基于增加后的序列化处理进程,在所述预设内存中对所述每个解封样本数据进行序列化处理,得到所述每个解封样本数据对应的序列化数据。

在一个可选的实施例中,所述第一拷贝单元具体被配置为执行基于总线,将所述每个解封样本数据对应的序列化数据从所述预设内存拷贝到所述显存;

所述至少一个性能优化维度还包括总线维度,所述计算性能优化模块还包括:

第四累计耗时数据获取单元,被配置为执行获取所述GPU对应的第四累计耗时数据,所述第四累计耗时数据为在所述在所述预设内存中,对所述每个解封样本数据进行序列化优化处理,得到所述每个解封样本数据对应的序列化数据之后,所述待训练模型对应的第四训练时间段内,所述GPU执行所述待训练模型的模型训练操作的耗时占所述第四训练时间段对应的总耗时的比例,所述第四训练时间段为所述待训练模型的所述开始训练时间至第四当前时间;

总线带宽增加单元,被配置为执行在所述第四累计耗时数据小于所述预设耗时数据的情况下,增加所述总线的带宽;

所述第一拷贝单元具体被配置为执行基于增加带宽后的总线,将所述每个解封样本数据对应的序列化数据从所述预设内存拷贝到所述显存。

在一个可选的实施例中,所述数据拷贝模块720包括:

拷贝驱动事件触发单元,被配置为执行在得到所述每个解封样本数据的情况下,触发所述每个解封样本数据对应的拷贝驱动事件,以将所述每个解封样本数据从所述预设内存拷贝到所述显存。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图8是本申请实施例提供的一种用于数据处理的电子设备的框图,该电子设备可以是终端,其内部结构图可以如图8所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

图9是本申请实施例提供的另一种用于数据处理的电子设备的框图,该电子设备可以是服务器,其内部结构图可以如图9所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。

本领域技术人员可以理解,图8或图9中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在示例性实施例中,还提供了一种电子设备,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行该指令,以实现如本公开实施例中的数据处理方法。

在示例性实施例中,还提供了一种计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例中的数据处理方法。

在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的数据处理方法。

可以理解的是,在本申请的具体实施方式中,涉及到用户相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 数据处理方法、装置、计算机可读存储介质和电子设备
  • 路由数据处理方法、装置、电子设备及存储介质
  • 数据处理方法及装置、电子设备、存储介质
  • 屏幕布局数据处理方法、装置、电子设备及存储介质
  • 网页操作数据的处理方法、装置、电子设备及存储介质
  • 数据加密处理方法、数据解密处理方法、装置、电子设备及可读存储介质
  • 数据处理方法、功耗数据处理方法、存储介质和电子设备
技术分类

06120116501156