CN113254215B - 数据处理方法和装置、存储介质及电子设备 - Google Patents

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

Info

Publication number
CN113254215B
CN113254215B CN202110663774.2A CN202110663774A CN113254215B CN 113254215 B CN113254215 B CN 113254215B CN 202110663774 A CN202110663774 A CN 202110663774A CN 113254215 B CN113254215 B CN 113254215B
Authority
CN
China
Prior art keywords
data processing
weight matrix
current
matrix
weight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110663774.2A
Other languages
English (en)
Other versions
CN113254215A (zh
Inventor
弓静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110663774.2A priority Critical patent/CN113254215B/zh
Publication of CN113254215A publication Critical patent/CN113254215A/zh
Application granted granted Critical
Publication of CN113254215B publication Critical patent/CN113254215B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种数据处理方法和装置、存储介质及电子设备。其中,该方法包括:获取数据处理请求,其中,数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;响应数据处理请求,确定网络参数的权重各自所在权重矩阵对应的矩阵结构信息;根据矩阵结构信息将权重矩阵分配给各个数据处理进程,其中,各个数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;在各个数据处理进程基于各自对应的对象权重矩阵确定出参考梯度值的情况下,根据参考梯度值对数据处理进程中分配到的对象权重矩阵进行更新处理。本发明解决了zero技术无法兼容lamb优化器进行模型训练来节省显存的技术问题。

Description

数据处理方法和装置、存储介质及电子设备
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据处理方法和装置、存储介质及电子设备。
背景技术
随着深度学习模型复杂度和数据集规模的增大,图形处理器(GraphicsProcessing Unit,GPU)显存一直以来被认为是训练深度学习模型的最大瓶颈,也就是说大规模训练经常会碰到模型参数太多,显存无法容纳的情况,GPU卡的显存是非常有限的,一般远低于系统内存,因此当深度学习模型的参数量较大时,在GPU模式下深度学习模型可能无法训练起来。目前,通常采用zero技术的实现对深度学习模型的优化器状态和梯度的切分是完全“扁平化”(即将多维矩阵降维成一维向量)处理,没有保存矩阵的shape(每个维度)信息,zero技术仅支持完全element-wise(矩阵元素相乘)的优化器;而lamb优化器是逐层修正,即不再将矩阵拆分为不同的元素,而是以矩阵为单位分配给不同的数据处理进程,因此可以保留矩阵的shape信息。因此,相关技术无法实现将zero技术兼容lamb优化器,从而会导致单独使用lamb优化器造成深度学习模型预训练效率较低的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法和装置、存储介质及电子设备,以至少解决zero技术无法兼容lamb优化器进行模型训练来节省显存的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,包括:获取数据处理请求,其中,上述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理。
根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:获取单元,用于获取数据处理请求,其中,上述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;确定单元,用于响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;分配单元,用于根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;更新单元,用于在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述数据处理方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的数据处理方法。
在本发明实施例中,采用获取用于请求对深度学习网络中网络参数的权重进行更新处理的数据处理请求;响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理的方式,根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件,达到了将zero技术兼容lamb优化器的目的,从而实现提高深度学习模型预训练效率,以及提升显存节省率的技术效果,进而解决了zero技术无法兼容lamb优化器进行模型训练来节省显存的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的数据处理方法的应用环境的示意图;
图2是根据本申请实施例的另一种可选的数据处理方法的应用环境的示意图;
图3是根据本申请实施例的一种可选的数据处理方法的流程图;
图4是根据本申请实施例的一种可选的数据处理方法的矩阵结构信息示意图;
图5是根据本申请实施例的一种可选的数据处理方法的权重矩阵划分示意图;
图6是根据本申请实施例的另一种可选的数据处理方法的权重矩阵划分示意图;
图7是根据本申请实施例的另一种可选的数据处理方法的矩阵结构信息示意图;
图8是根据本申请实施例的另一种可选的数据处理方法的进程通信示意图;
图9是根据本申请实施例的另一种可选的数据处理方法的zero模型示意图;
图10是根据本申请实施例的一种可选的数据处理装置的结构示意图;
图11是根据本申请实施例的一种可选的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请实施例中,可以但不限于使用以下技术术语:
优化器(optimizer):深度学习的目标是通过不断改变网络参数,使得参数能够对输入做各种非线性变换拟合输出,本质上就是一个函数去寻找最优解,所以如何去更新参数是深度学习研究的重点。通常将更新参数的算法称为优化器,字面理解就是通过什么算法去优化网络模型的参数。常用的优化器就是梯度下降。
自然语言处理(NLP):在机器语言和人类语言之间沟通的桥梁,以实现人机交流的目的,也就是说是一种让计算机能够理解和生成人类的语言。
根据本发明实施例的一个方面,提供了一种数据处理方法,可选地,作为一种可选的实施方式,上述数据处理方法可以但不限于应用于如图1所示的环境中。该应用环境中包括:与用户进行人机交互的终端设备102、网络104、服务器106,终端设备102可以包括但不限于车载电子设备、手持终端、可穿戴设备、便携式设备等。用户108与终端设备102之间可以进行人机交互,终端设备102中运行有数据处理应用客户端。上述终端设备102中包括人机交互屏幕1022,处理器1024及存储器1026。人机交互屏幕1022用于显示矩阵结构信息对应的图像。处理器1024用于获取数据处理请求,其中,所述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;存储器1026用于存储网络参数的权重、矩阵结构信息和参考梯度值等。
在一个或多个实施例中,服务器106中包括数据库1062及处理引擎1064,数据库1062中用于存储网络参数的权重、矩阵结构信息和参考梯度值。处理引擎1064用于响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程;在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理。
具体过程如步骤S102,获取数据处理请求,其中,所述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;然后执行步骤S104,将上述数据处理请求通过网络104发送给服务器106。服务器106接收到该请求后,如步骤S106-S110,响应所述数据处理请求,确定所述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;根据所述矩阵结构信息将所述权重矩阵分配给各个数据处理进程,其中,各个所述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;在各个所述数据处理进程基于各自对应的所述对象权重矩阵确定出参考梯度值的情况下,根据所述参考梯度值对所述数据处理进程中分配到的所述对象权重矩阵进行更新处理。如步骤S112,通过网络104通知终端设备102,返回上述确定出的参考梯度值。
在一个或多个实施例中,本申请上述数据资源管理方法可以应用于图2所示的应用环境中。如图2所示,用户202与用户设备204之间可以进行人机交互。用户设备204中包含有存储器206和处理器208。本实施例中终端设备204可以但不限于参考执行上述终端设备102所执行的操作,以获取对根据参考梯度值对数据处理进程中分配到的对象权重矩阵进行更新处理结果。
可选地,在申请本实施例中,上述终端设备102和用户设备204可以是配置有目标客户端的终端设备,可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等。上述网络104可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器106可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
在一个或多个实施例中,如图3所示,上述数据处理方法包括:
S302,获取数据处理请求,其中,上述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;
S304,响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;
S306,根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;
S308,在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理。
在步骤S302中,实际应用时,上述数据处理请求包括但不限于在客户端或服务器中对深度学习网络中网络参数的权重进行更新处理,上述网络参数包括但不限于图像中划分为多个矩阵中的像素值,上述深度学习网络包括但不限于对电子设备中的图形数据进行处理,以优化图像数据,缩小图形数据在显存中的占用空间,节省电子设备显存的深度学习模型。例如,deepspeed训练框架中的zero优化器,lamb优化器等,在此不作任何限定。本实施例中的更新处理包括但不限于对图像数据进行优化,缩小图形数据在显存中的占用空间等。
在步骤S304中,实际应用时,响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;这里,矩阵结构信息包括但不限于像素的个数或矩阵的维度等。如图4所示,训练图像402中包含20个权重矩阵,即矩阵权重矩阵1,权重矩阵2至权重矩阵20,矩阵结构信息表404中,包含有训练图像402中的权重矩阵序号和对应的元素个数,如权重矩阵1中包含的元素个数为100个,权重矩阵2中包含的元素个数为46个。
在步骤S306中,实际应用时,根据上述矩阵结构信息将上述权重矩阵均匀分配给各个数据处理进程;在本实施例中,如图4所示,权重矩阵1包含的元素个数最多为100个,权重矩阵2和权重矩阵3二者元素之和为99,权重矩阵2和权重矩阵3二者元素之和为99,权重矩阵4、权重矩阵5和权重矩阵6三者元素之和为99,权重矩阵17、权重矩阵18、权重矩阵19和权重矩阵20三者元素之和为96,如图5所示,例如当前显存被分配有8个进程:分配给图形处理器0至图形处理器7;权重矩阵1被分配到第一进程502(图形处理器0)中,权重矩阵2和权重矩阵3被分配到第二数据处理进程504(图形处理器1)中,权重矩阵4、权重矩阵5和权重矩阵6三者被分配到第三数据处理进程506(图形处理器2)中,权重矩阵17、权重矩阵18、权重矩阵19和权重矩阵20四者被分配到第八数据处理进程508(图形处理器7)中,8个进程中包含的元素个数基本相同。
在步骤S308中,实际应用时,在各个数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理;例如,将上述对象权重矩阵输入lamb优化器中,获取到参考梯度值,根据该参考梯度值对上述对象权重矩阵中的数据进行更新。
在本发明实施例中,采用获取用于请求对深度学习网络中网络参数的权重进行更新处理的数据处理请求;响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理的方式,根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件,达到了将zero技术兼容lamb优化器的目的,从而实现提高深度学习模型预训练效率,以及提升显存节省率的技术效果,进而解决了zero技术无法兼容lamb优化器的技术问题。
在一个或多个实施例中,步骤S306,根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程包括:
S1,根据上述矩阵结构信息中记录的权重矩阵内的元素数量,对上述权重矩阵进行排序以得到排序结果;
S2,按照上述排序结果将上述权重矩阵依次分配给各个上述数据处理进程,其中,在任意两个上述数据处理进程各自分配到的上述对象权重矩阵累加的元素总量之间的差值小于第一阈值的情况下,确定达到上述均匀分配条件。
例如,如图4所示,根据上述矩阵结构信息中记录的权重矩阵内的元素数量,对上述权重矩阵进行排序以得到如矩阵结构信息表404中的排序结果;权重矩阵1的元素个数为100排在第1位,权重矩阵2的元素个数为46,排在第2位,权重矩阵20元素个数为23排在第20位;权重矩阵1包含的元素个数最多为100个,权重矩阵2和权重矩阵3二者元素之和为99,权重矩阵2和权重矩阵3二者元素之和为99,权重矩阵4、权重矩阵5和权重矩阵6三者元素之和为99,权重矩阵17、权重矩阵18、权重矩阵19和权重矩阵20四者元素之和为96,假设第一阈值为5时,按照上述排序结果将上述权重矩阵依次分配给各个上述数据处理进程,如图5所示,权重矩阵1被分配到第一数据处理进程502(图形处理器0)中,权重矩阵2和权重矩阵3被分配到第二数据处理进程504(图形处理器1)中,权重矩阵4、权重矩阵5和权重矩阵6三者被分配到第三数据处理进程506(图形处理器2)中,权重矩阵17、权重矩阵18、权重矩阵19和权重矩阵20四者被分配到第八数据处理进程508(图形处理器7)中,任意两个上述数据处理进程各自分配到的上述对象权重矩阵累加的元素总量之间的差值均小于第一阈值5,此时,可以确定达到上述均匀分配条件。
通过本申请的实施例,根据矩阵结构信息将权重矩阵均匀分配给不同的数据处理进程,避免处理过度占用显存资源的问题,不仅可以提升数据处理的效率,还能节省显存的占用资源。
在一个或多个实施例中,上述按照上述排序结果将上述权重矩阵依次分配给各个上述数据处理进程包括:
S1,按照上述排序结果将元素数量最大的第一权重矩阵分配给第一数据处理进程;
S2,将除上述第一权重矩阵之外的其他权重矩阵依次作为当前矩阵,并对上述当前矩阵执行以下操作,直至遍历全部权重矩阵:
S3,确定处于待接收分配状态的当前数据处理进程的剩余处理量,其中,上述当前数据处理进程的最大处理量根据上述第一权重矩阵内的元素数量确定;
S4,在上述当前矩阵内的元素数量小于或等于上述当前数据处理进程的上述剩余处理量的情况下,将上述当前矩阵分配给上述当前数据处理进程;
S5,在上述当前矩阵内的元素数量大于上述当前数据处理进程的上述剩余处理量的情况下,获取下一个数据处理进程作为当前数据处理进程;
其中,在遍历完全部权重矩阵的情况下,确定仍存在剩余处理量的目标数据处理进程,并对上述目标数据处理进程所分配到的上述对象权重矩阵执行元素补零操作,直至各个上述数据处理进程中各自分配到的上述对象权重矩阵累计的元素总量之间的差值小于上述第一阈值。
例如,如图5所示,按照上述排序结果将元素数量最大的第一权重矩阵,权重矩阵1分配给第一数据处理进程502;确定处于待接收分配状态的当前数据处理进程的剩余处理量,当前数据处理进程的最大处理量根据第一权重(矩阵权重矩阵1)内的元素数量确定;也就是说,当前数据处理进程的最大处理量为100个元素。
假设当前矩阵为第三权重矩阵(权重矩阵3),权重矩阵3内的元素数量为43,小于上述当前数据处理进程的剩余处理量46,那么可以将当前矩阵第三权重矩阵(权重矩阵3)分配给当前数据处理进程。
假设当前矩阵为第五权重矩阵(权重矩阵5),权重矩阵5内的元素数量为28,当前数据处理进程(如图形处理器2)的剩余处理量为20时,获取下一个数据处理进程(如图形处理器3)作为当前数据处理进程。
在遍历完全部权重矩阵的情况下,确定仍存在剩余处理量的目标数据处理进程,并对上述目标数据处理进程所分配到的上述对象权重矩阵执行元素补零操作,直至各个上述数据处理进程中各自分配到的上述对象权重矩阵累计的元素总量之间的差值小于上述第一阈值;这里结合图4和图6对上述技术方案进行说明,结合图4可知,权重矩阵1包含的元素个数最多为100个,权重矩阵2和权重矩阵3二者元素之和为99,权重矩阵4、权重矩阵5和权重矩阵6三者元素之和为97,权重矩阵17、权重矩阵18、权重矩阵19和权重矩阵20四者元素之和为96,在遍历完全部权重矩阵的情况下,确定仍存在剩余处理量的目标数据处理进程,如图6所示,并对上述目标数据处理进程所分配到的上述对象权重矩阵执行元素补零操作,如第一数据处理进程602中的权重矩阵1不需要补零,第二数据处理进程604中的权重矩阵2和权重矩阵3需要补充零个数为1个,第三数据处理进程606中的权重矩阵4、权重矩阵5和权重矩阵6需要补充零个数为2个,第八数据处理进程608中的权重矩阵17、权重矩阵18、权重矩阵19和权重矩阵20需要补充零个数为3个,完成补零操作后,上述数据处理进程中各自分配到的上述对象权重矩阵累计的元素总量之间的差值为0,也就是说每个数据处理进程包含的元素个数均相同。
通过本申请的实施例,根据矩阵结构信息将权重矩阵均匀分配给不同的数据处理进程,以及将目标数据处理进程所分配到的上述对象权重矩阵执行元素补零操作,而且在权重矩阵中补零不会影响原有矩阵的像素信息,保证了不同数据处理进程分配的数据处理的统一性,不仅可以提升数据处理的效率,还能节省显存的占用资源。
在一个或多个实施例中,步骤S306,根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程还包括:根据上述矩阵结构信息中记录的权重矩阵内的元素数量,对上述权重矩阵进行分组聚类,得到多个权重矩阵集合,其中,在各个上述权重矩阵集合中的权重矩阵累加的元素总量之间的差值小于第二阈值的情况下,确定达到上述均匀分配条件;将上述多个权重矩阵集合分别分配给各个上述数据处理进程。
例如,如图7所示,训练图像702中包含20个权重矩阵,即权重矩阵1,权重矩阵2至权重矩阵20,矩阵结构信息表704中,包含有训练图像402中的权重矩阵序号和对应的元素个数,如权重矩阵1中包含的元素个数为100个,权重矩阵2中包含的元素个数为42个。可以通过将上述20个权重矩阵进行分组聚类的方式得到多个权重矩阵集合,如,将权重矩阵1作为第一权重矩阵集合,将权重矩阵3和权重矩阵4作为第二权重矩阵集合,将权重矩阵2、权重矩阵5和权重矩阵6作为第三权重矩阵集合;将权重矩阵17、权重矩阵18、权重矩阵19和权重矩阵20作为第四权重矩阵集合。上述每个权重矩阵集合中的累加的元素总量之间的差值小于第二阈值5, 确定达到均匀分配条件,此时可以将上述多个权重矩阵集合分别分配给各个数据处理进程。
通过本申请的实施例,根据上述矩阵结构信息中记录的权重矩阵内的元素数量,对上述权重矩阵进行分组聚类,得到多个权重矩阵集合,将上述多个权重矩阵集合均匀分配给各个上述数据处理进程,保证了不同数据处理进程分配的数据的统一性,不仅可以提升数据处理的效率,还能节省显存的占用资源。
在一个或多个实施例中,步骤S308,上述根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理包括:
S1,确定接收到上述数据处理请求时所在的当前更新周期;
S2,根据上述当前更新周期确定出的上述参考梯度值,获取上述当前更新周期内的当前动量参数,其中,上述当前动量参数包括一阶当前动量参数和二阶当前动量参数;
S3,根据上述当前动量参数对上述对象权重矩阵进行更新处理。
例如,确定出当前更新周期为t时,通过以下lamb优化器的公式来确定上述参考梯度值,获取当前周期内的当前动量参数;
Figure DEST_PATH_IMAGE002
其中,
Figure DEST_PATH_IMAGE004
为一阶动量参数,
Figure DEST_PATH_IMAGE006
为二阶动量参数,
Figure DEST_PATH_IMAGE008
Figure DEST_PATH_IMAGE010
为常量,通常情况下,
Figure 73727DEST_PATH_IMAGE008
的值为0.9,
Figure 990867DEST_PATH_IMAGE010
的值为0.999,
Figure DEST_PATH_IMAGE012
为参考梯度值。
通过本申请的实施例,根据当前更新周期确定出的上述参考梯度值,获取上述当前更新周期内的当前动量参数,根据上述当前动量参数对上述对象权重矩阵进行更新处理,不仅可以提升深度学习的效率,节省了显存的占用资源。
在一个或多个实施例中,上述根据上述当前动量参数对上述对象权重矩阵进行更新处理包括:
S1,获取基于上述当前动量参数计算得到的中间值,以及在上述当前更新周期之前的上一个更新周期的历史权重;
S2,根据上述中间值对上述历史权重进行更新处理,得到更新后的权重。
例如,基于上述实施例,通过lamb优化器的公式以下公式可以获取中间值
Figure DEST_PATH_IMAGE014
Figure DEST_PATH_IMAGE016
其中,
Figure 96837DEST_PATH_IMAGE004
为一阶动量参数,
Figure 492047DEST_PATH_IMAGE006
为二阶动量参数,
Figure DEST_PATH_IMAGE018
为常量,通常情况下,
Figure 181785DEST_PATH_IMAGE018
的值为10e-8;
根据上述中间值对上述历史权重进行更新处理,得到更新后的权重
Figure DEST_PATH_IMAGE020
,如下公式:
Figure DEST_PATH_IMAGE022
Figure DEST_PATH_IMAGE024
其中,为权重矩阵的欧式距离,
Figure DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE030
为常量,通常情况下,
Figure DEST_PATH_IMAGE032
为中间值。
在一个或多个实施例中,上述根据上述当前更新周期确定出的上述参考梯度值,获取上述当前更新周期内的当前动量参数包括:
S1,根据在上述当前更新周期之前的上一个更新周期内得到的一阶历史动量参数及上述当前更新周期内得到的上述参考梯度值,确定上述当前更新周期内的上述一阶当前动量参数;
S2,根据在上述当前更新周期之前的上一个更新周期内得到的二阶历史动量参数及上述当前更新周期内得到的上述参考梯度值,确定上述当前更新周期内的上述二阶当前动量参数。
例如,基于上述实施例,通过lamb优化器的公式可以获取当前更新周期内的一阶当前动量参数和二阶当前动量参数;使用公式如下:
Figure DEST_PATH_IMAGE034
其中,
Figure 692663DEST_PATH_IMAGE004
为一阶动量参数,
Figure 897379DEST_PATH_IMAGE006
为二阶动量参数,
Figure 96280DEST_PATH_IMAGE008
Figure 640525DEST_PATH_IMAGE010
为常量,通常情况下,
Figure 633888DEST_PATH_IMAGE008
的值为0.9,
Figure 824436DEST_PATH_IMAGE010
的值为0.999,
Figure 499131DEST_PATH_IMAGE012
为参考梯度值。
在一个或多个实施例中,上述数据处理方法,还包括:
S1,在各个上述数据处理进程之间进行通信交互,直至每个数据处理进程得到各个上述数据处理进程各自基于所分配到的上述对象权重矩阵计算得到的对象梯度值;
S2,计算上述对象梯度值的平均值;
S3,将上述平均值确定为上述参考梯度值。
这里,如图8所示,在各个上述数据处理进程之间进行通信交互,直至每个数据处理进程得到各个上述数据处理进程各自基于所分配到的上述对象权重矩阵计算得到的对象梯度值(对象梯度值40至对象梯度值43);将对象梯度值40 对象梯度值41、对象梯度值42、对象梯度值43求平均值,将获取到的平均值确定为参考梯度值。
通过本申请的实施例,在各个数据处理进程之间进行通信交互,获取对象权重矩阵计算得到的对象梯度值的平均值作为参考梯度值,不仅可以精准的获取到深度学习的修正参数,还能进一步节省显存的占用资源。
显存GPU一直是训练先进深度学习模型的最大瓶颈,大规模训练经常会碰到模型参数太多,显存无法容纳的情况。基于以上问题,在显存节省方面,本申请实施例采用包括但不限于采用微软的deepspeed训练框架,提出了一种零冗余的zero优化器,从优化器角度去节省显存占用;以及采用nvidia的Megatron-LM框架从模型并行的角度去节省显存。
zero优化器克服了数据并行和模型并行的局限性,同时实现两者的优点,它在数据并行进程间将模型状态划分为如图9中所示的模型参数(Parameters)、梯度(Gradients)和优化器状态分区(Optimizer States),如图9所示,数据处理不是将数据的简单复制,因此消除了数据并行进程之间的内存冗余。在训练期间使用动态通信规划(dynamiccommunication schedule),在分布式设备之间共享必要的状态,以保持数据并行的计算粒度和通信量。
基于上述实施例,在本申请提供的实施例中,还包括但不限于结合lamb优化器来进行数据的深度网络学习,lamb优化加速了深度学习的预训练进程,通常在使用Adam和AdamW等优化器时,一大问题在于batch size(大量超参数)存在一定的隐式上限,一旦突破这个上限,梯度更新极端的取值会导致自适应学习率调整后极为困难的收敛,从而无法取得增加的batch size带来的提速增益。lamb优化器的作用在于使训练模型在进行大批量数据训练时,能够维持梯度更新的精度。具体来说,lamb 优化器支持自适应元素级更新(adaptive element-wise updating)和准确的逐层修正(layer-wise correction)。比如lamb优化器可将 BERT 预训练的批量大小扩展到 64K,且不会造成准确率损失。
基于上述实施例,在一实施例中,上述数据处理方法包括如下步骤:
S1,将目标训练数据的权重矩阵倒序排序,尽可能均匀的将所有的权重矩阵划分给所有的数据并行进程(即数据处理进程);如图5所示,将权重矩阵中元素个数最多的放到一个进程中,依次将其他权重矩阵放入其他数据处理进程中,保证每个数据处理进程处理到的元素个数相同或相近。
S2,补零(padding)操作,确保所有进程padding完的权重矩阵中所有元素之和一致。
如图6所示,将上述目标数据处理进程所分配到的上述对象权重矩阵执行元素补零操作,如第一数据处理进程602中的权重矩阵1不需要补零,第二数据处理进程604中的权重矩阵2和权重矩阵3需要补充零个数为1个,第三数据处理进程606中的权重矩阵4、权重矩阵5和权重矩阵6需要补充零个数为2个,第八数据处理进程608中的权重矩阵17、权重矩阵18、权重矩阵19和权重矩阵20需要补充零个数为3个,完成补零操作后,上述数据处理进程中各自分配到的上述对象权重矩阵累计的元素总量之间的差值为0,也就是说每个数据处理进程包含的元素个数均相同。
S3,通过flatten函数扁平化buffer(不同的数据处理进程在显存所占的区域),使用nvidia的nccl通信库通信模型参数的梯度。如图8所示,在各个上述数据处理进程之间进行通信交互,直至每个数据处理进程得到各个上述数据处理进程各自基于所分配到的上述对象权重矩阵计算得到的对象梯度值(对象梯度值40至对象梯度值43)。
S4,将切分的权重矩阵信息写入优化器(如lamb优化器)中。通过如下公式(1)至(4)得到权重矩阵信息的对象梯度值。
Figure DEST_PATH_IMAGE036
Figure DEST_PATH_IMAGE038
Figure DEST_PATH_IMAGE040
Figure DEST_PATH_IMAGE041
其中,
Figure 212397DEST_PATH_IMAGE004
为一阶动量参数,
Figure 642241DEST_PATH_IMAGE006
为二阶动量参数,
Figure 821549DEST_PATH_IMAGE008
Figure 532891DEST_PATH_IMAGE010
为常量,通常情况下,
Figure 176362DEST_PATH_IMAGE008
的值为0.9,
Figure 449212DEST_PATH_IMAGE010
的值为0.999,
Figure 178133DEST_PATH_IMAGE012
为参考梯度值,
为权重矩阵的欧式距离,
Figure 194631DEST_PATH_IMAGE026
Figure 630291DEST_PATH_IMAGE028
Figure 401938DEST_PATH_IMAGE030
为常量,
Figure 791725DEST_PATH_IMAGE014
为中间值;
Figure 674230DEST_PATH_IMAGE018
为常量,通常情况下,
Figure 964397DEST_PATH_IMAGE018
的值为10e-8。
在本发明实施例中,采用获取用于请求对深度学习网络中网络参数的权重进行更新处理的数据处理请求;响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理的方式,根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件,达到了将zero技术兼容lamb优化器的目的,从而实现提高深度学习模型预训练效率,以及提升显存节省率的技术效果,进而解决了zero技术无法兼容lamb优化器的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述数据处理方法的数据处理装置。如图10所示,该装置包括:
获取单元1002,用于获取数据处理请求,其中,上述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;
确定单元1004,用于响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;
分配单元1006,用于根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;
更新单元1008,用于在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理。
在一个或多个实施例中,上述分配单元1006包括:
第一排序模块,用于根据上述矩阵结构信息中记录的权重矩阵内的元素数量,对上述权重矩阵进行排序以得到排序结果;
第一分配模块,用于按照上述排序结果将上述权重矩阵依次分配给各个上述数据处理进程,其中,在任意两个上述数据处理进程各自分配到的上述对象权重矩阵累加的元素总量之间的差值小于第一阈值的情况下,确定达到上述均匀分配条件。
在一个或多个实施例中,上述第一分配模块,包括:
第一分配子单元,用于按照上述排序结果将元素数量最大的第一权重矩阵分配给第一数据处理进程;
遍历子单元,用于将除上述第一权重矩阵之外的其他权重矩阵依次作为当前矩阵,并对上述当前矩阵执行以下操作,直至遍历全部权重矩阵:
第一确定子单元,用于确定处于待接收分配状态的当前数据处理进程的剩余处理量,其中,上述当前数据处理进程的最大处理量根据上述第一权重矩阵内的元素数量确定;
第二分配子单元,用于在上述当前矩阵内的元素数量小于或等于上述当前数据处理进程的上述剩余处理量的情况下,将上述当前矩阵分配给上述当前数据处理进程;
第一获取子单元,用于在上述当前矩阵内的元素数量大于上述当前数据处理进程的上述剩余处理量的情况下,获取下一个数据处理进程作为当前数据处理进程;其中,在遍历完全部权重矩阵的情况下,确定仍存在剩余处理量的目标数据处理进程,并对上述目标数据处理进程所分配到的上述对象权重矩阵执行元素补零操作,直至各个上述数据处理进程中各自分配到的上述对象权重矩阵累计的元素总量之间的差值小于上述第一阈值。
在一个或多个实施例中,分配单元1006,根还包括:
分组模块,用于根据上述矩阵结构信息中记录的权重矩阵内的元素数量,对上述权重矩阵进行分组聚类,得到多个权重矩阵集合,其中,在各个上述权重矩阵集合中的权重矩阵累加的元素总量之间的差值小于第二阈值的情况下,确定达到上述均匀分配条件;
第二分配模块,用于将上述多个权重矩阵集合分别分配给各个上述数据处理进程。
在一个或多个实施例中,更新单元1008包括:
确定模块,用于确定接收到上述数据处理请求时所在的当前更新周期;
第一获取模块,用于根据上述当前更新周期确定出的上述参考梯度值,获取上述当前更新周期内的当前动量参数,其中,上述当前动量参数包括一阶当前动量参数和二阶当前动量参数;
第一更新模块,用于根据上述当前动量参数对上述对象权重矩阵进行更新处理。
在一个或多个实施例中,上述第一更新模块,包括:
第二获取子单元,用于获取基于上述当前动量参数计算得到的中间值,以及在上述当前更新周期之前的上一个更新周期的历史权重;
第一更新子单元,用于根据上述中间值对上述历史权重进行更新处理,得到更新后的权重。
在一个或多个实施例中,上述第一获取模块,包括:
第二确定子单元,用于根据在上述当前更新周期之前的上一个更新周期内得到的一阶历史动量参数及上述当前更新周期内得到的上述参考梯度值,确定上述当前更新周期内的上述一阶当前动量参数;
第三确定子单元,用于根据在上述当前更新周期之前的上一个更新周期内得到的二阶历史动量参数及上述当前更新周期内得到的上述参考梯度值,确定上述当前更新周期内的上述二阶当前动量参数。
在一个或多个实施例中,上述数据处理装置,还包括:
交互单元,用于在各个上述数据处理进程之间进行通信交互,直至每个数据处理进程得到各个上述数据处理进程各自基于所分配到的上述对象权重矩阵计算得到的对象梯度值;
计算单元,用于计算上述对象梯度值的平均值;
第二确定单元,用于将上述平均值确定为上述参考梯度值。
根据本发明实施例的又一个方面,还提供了一种用于实施上述数据处理方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图11所示,该电子设备包括存储器1102和处理器1104,该存储器1102中存储有计算机程序,该处理器1104被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取数据处理请求,其中,上述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;
S2,响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;
S3,根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;
S4,在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理。
可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图11中所示更多或者更少的组件(如网络接口等),或者具有与图11所示不同的配置。
其中,存储器1102可用于存储软件程序以及模块,如本发明实施例中的数据处理方法和装置对应的程序指令/模块,处理器1104通过运行存储在存储器1102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器1102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1102可进一步包括相对于处理器1104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1102具体可以但不限于用于存储网络参数权重、矩阵结构信息和参数梯度值等信息。作为一种示例,如图11所示,上述存储器1102中可以但不限于包括上述数据处理装置中的获取单元1002、确定单元1004、分配单元1006及更新单元1008。此外,还可以包括但不限于上述数据处理装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1106包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1106为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1108,用于显示上述矩阵结构信息和参数梯度值信息;和连接总线1110,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据处理方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取数据处理请求,其中,上述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;
S2,响应上述数据处理请求,确定上述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;
S3,根据上述矩阵结构信息将上述权重矩阵分配给各个数据处理进程,其中,各个上述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;
S4,在各个上述数据处理进程基于各自对应的上述对象权重矩阵确定出参考梯度值的情况下,根据上述参考梯度值对上述数据处理进程中分配到的上述对象权重矩阵进行更新处理。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
获取数据处理请求,其中,所述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;
响应所述数据处理请求,确定所述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;
根据所述矩阵结构信息将所述权重矩阵分配给各个数据处理进程,其中包括:根据所述矩阵结构信息中记录的所述权重矩阵内的元素数量,对所述权重矩阵进行排序以得到排序结果;按照所述排序结果将所述权重矩阵依次分配给各个所述数据处理进程,且各个所述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件,其中,在任意两个所述数据处理进程各自分配到的所述对象权重矩阵累加的元素总量之间的差值小于第一阈值的情况下,确定达到所述均匀分配条件;
在各个所述数据处理进程基于各自对应的所述对象权重矩阵确定出参考梯度值的情况下,根据所述参考梯度值对所述数据处理进程中分配到的所述对象权重矩阵进行更新处理。
2.根据权利要求1所述的方法,其特征在于,所述按照所述排序结果将所述权重矩阵依次分配给各个所述数据处理进程包括:
按照所述排序结果将元素数量最大的第一权重矩阵分配给第一数据处理进程;
将除所述第一权重矩阵之外的其他权重矩阵依次作为当前矩阵,并对所述当前矩阵执行以下操作,直至遍历全部权重矩阵:
确定处于待接收分配状态的当前数据处理进程的剩余处理量,其中,所述当前数据处理进程的最大处理量根据所述第一权重矩阵内的元素数量确定;
在所述当前矩阵内的元素数量小于或等于所述当前数据处理进程的所述剩余处理量的情况下,将所述当前矩阵分配给所述当前数据处理进程;
在所述当前矩阵内的元素数量大于所述当前数据处理进程的所述剩余处理量的情况下,获取下一个数据处理进程作为当前数据处理进程;
其中,在遍历完全部权重矩阵的情况下,确定仍存在剩余处理量的目标数据处理进程,并对所述目标数据处理进程所分配到的所述对象权重矩阵执行元素补零操作,直至各个所述数据处理进程中各自分配到的所述对象权重矩阵累计的元素总量之间的差值小于所述第一阈值。
3.根据权利要求1所述的方法,其特征在于,所述根据所述矩阵结构信息将所述权重矩阵分配给各个数据处理进程还包括:
根据所述矩阵结构信息中记录的权重矩阵内的元素数量,对所述权重矩阵进行分组聚类,得到多个权重矩阵集合,其中,在各个所述权重矩阵集合中的权重矩阵累加的元素总量之间的差值小于第二阈值的情况下,确定达到所述均匀分配条件;
将所述多个权重矩阵集合分别分配给各个所述数据处理进程。
4.根据权利要求1所述的方法,其特征在于,所述根据所述参考梯度值对所述数据处理进程中分配到的所述对象权重矩阵进行更新处理包括:
确定接收到所述数据处理请求时所在的当前更新周期;
根据所述当前更新周期确定出的所述参考梯度值,获取所述当前更新周期内的当前动量参数,其中,所述当前动量参数包括一阶当前动量参数和二阶当前动量参数;
根据所述当前动量参数对所述对象权重矩阵进行更新处理。
5.根据权利要求4所述的方法,其特征在于,所述根据所述当前动量参数对所述对象权重矩阵进行更新处理包括:
获取基于所述当前动量参数计算得到的中间值,以及在所述当前更新周期之前的上一个更新周期的历史权重;
根据所述中间值对所述历史权重进行更新处理,得到更新后的权重。
6.根据权利要求4所述的方法,其特征在于,所述根据所述当前更新周期确定出的所述参考梯度值,获取所述当前更新周期内的当前动量参数包括:
根据在所述当前更新周期之前的上一个更新周期内得到的一阶历史动量参数及所述当前更新周期内得到的所述参考梯度值,确定所述当前更新周期内的所述一阶当前动量参数;
根据在所述当前更新周期之前的上一个更新周期内得到的二阶历史动量参数及所述当前更新周期内得到的所述参考梯度值,确定所述当前更新周期内的所述二阶当前动量参数。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述根据所述矩阵结构信息将所述权重矩阵分配给各个数据处理进程之后,还包括:
在各个所述数据处理进程之间进行通信交互,直至每个数据处理进程得到各个所述数据处理进程各自基于所分配到的所述对象权重矩阵计算得到的对象梯度值;
计算所述对象梯度值的平均值;
将所述平均值确定为所述参考梯度值。
8.一种数据处理装置,其特征在于,包括:
获取单元,用于获取数据处理请求,其中,所述数据处理请求用于请求对深度学习网络中网络参数的权重进行更新处理;
确定单元,用于响应所述数据处理请求,确定所述网络参数的权重各自所在权重矩阵对应的矩阵结构信息;
分配单元,用于根据所述矩阵结构信息将所述权重矩阵分配给各个数据处理进程,其中,各个所述数据处理进程各自分配到的对象权重矩阵将达到均匀分配条件;
更新单元,用于在各个所述数据处理进程基于各自对应的所述对象权重矩阵确定出参考梯度值的情况下,根据所述参考梯度值对所述数据处理进程中分配到的所述对象权重矩阵进行更新处理;
所述分配单元包括:
排序模块,用于根据所述矩阵结构信息中记录的所述权重矩阵内的元素数量,对所述权重矩阵进行排序以得到排序结果;
分配模块,用于按照所述排序结果将所述权重矩阵依次分配给各个所述数据处理进程,其中,在任意两个所述数据处理进程各自分配到的所述对象权重矩阵累加的元素总量之间的差值小于第一阈值的情况下,确定达到所述均匀分配条件。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
CN202110663774.2A 2021-06-16 2021-06-16 数据处理方法和装置、存储介质及电子设备 Active CN113254215B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110663774.2A CN113254215B (zh) 2021-06-16 2021-06-16 数据处理方法和装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110663774.2A CN113254215B (zh) 2021-06-16 2021-06-16 数据处理方法和装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113254215A CN113254215A (zh) 2021-08-13
CN113254215B true CN113254215B (zh) 2021-10-15

Family

ID=77188079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110663774.2A Active CN113254215B (zh) 2021-06-16 2021-06-16 数据处理方法和装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113254215B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114510911A (zh) * 2022-02-16 2022-05-17 腾讯科技(深圳)有限公司 文本处理方法、装置、计算机设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506669A (zh) * 2021-01-29 2021-03-16 浙江大华技术股份有限公司 任务分配方法和装置、存储介质及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108090565A (zh) * 2018-01-16 2018-05-29 电子科技大学 一种卷积神经网络并行化训练加速方法
CN109492753A (zh) * 2018-11-05 2019-03-19 中山大学 一种去中心化的随机梯度下降的方法
US11693706B2 (en) * 2018-11-21 2023-07-04 Samsung Electronics Co., Ltd. System and method for dynamic scheduling of distributed deep learning training jobs
US20200167659A1 (en) * 2018-11-27 2020-05-28 Electronics And Telecommunications Research Institute Device and method for training neural network
CN111461340B (zh) * 2020-03-10 2023-03-31 北京百度网讯科技有限公司 权重矩阵的更新方法、装置及电子设备
CN112685159B (zh) * 2020-12-30 2022-11-29 深圳致星科技有限公司 基于fpga异构处理系统的联邦学习计算任务处理方案

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506669A (zh) * 2021-01-29 2021-03-16 浙江大华技术股份有限公司 任务分配方法和装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN113254215A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN107688493B (zh) 训练深度神经网络的方法、装置及系统
CN109032801B (zh) 一种请求调度方法、系统及电子设备和存储介质
CN112506669B (zh) 任务分配方法和装置、存储介质及电子设备
CN106056529B (zh) 一种对用于图片识别的卷积神经网络训练的方法与设备
CN111176820B (zh) 一种基于深度神经网络的边缘计算任务的分配方法及装置
CN112291793B (zh) 网络接入设备的资源分配方法和装置
CN109597965B (zh) 基于深度神经网络的数据处理方法、系统、终端及介质
CN112870726B (zh) 图形处理器的资源分配方法、装置和存储介质
WO2019019649A1 (zh) 投资组合产品的生成方法、装置、存储介质和计算机设备
CN104615765A (zh) 一种移动用户上网记录的数据处理方法及装置
CN116991560B (zh) 针对语言模型的并行调度方法、装置、设备及存储介质
CN113515672A (zh) 数据处理方法、装置、计算机可读介质及电子设备
CN115457226A (zh) 矢量地图生成方法、装置、电子设备和可读存储介质
CN113254215B (zh) 数据处理方法和装置、存储介质及电子设备
CN114896068A (zh) 资源分配方法、资源分配装置、电子设备及存储介质
CN112035266A (zh) 资源分配方法、装置、设备及存储介质
CN116684420A (zh) 集群资源调度方法、装置、集群系统和可读存储介质
CN108920274A (zh) 用于图像处理服务器端的性能优化及装置
CN108595211A (zh) 用于输出数据的方法和装置
CN114463473A (zh) 图像渲染的处理方法和装置、存储介质及电子设备
CN114548416A (zh) 数据模型训练方法及装置
CN110392377A (zh) 一种5g超密集组网资源分配方法及装置
CN115238806A (zh) 样本类别不平衡的联邦学习方法以及相关设备
CN112990370B (zh) 图像数据的处理方法和装置、存储介质及电子设备
CN115238345A (zh) Bim模型处理方法、装置、存储介质及电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40050063

Country of ref document: HK