WO2021136065A1 - 深度学习方法、装置、网络设备和可读存储介质 - Google Patents

深度学习方法、装置、网络设备和可读存储介质 Download PDF

Info

Publication number
WO2021136065A1
WO2021136065A1 PCT/CN2020/139078 CN2020139078W WO2021136065A1 WO 2021136065 A1 WO2021136065 A1 WO 2021136065A1 CN 2020139078 W CN2020139078 W CN 2020139078W WO 2021136065 A1 WO2021136065 A1 WO 2021136065A1
Authority
WO
WIPO (PCT)
Prior art keywords
gpu
gradient data
gradient
data
deep learning
Prior art date
Application number
PCT/CN2020/139078
Other languages
English (en)
French (fr)
Inventor
栗伟清
刘涛
赵璐璠
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2021136065A1 publication Critical patent/WO2021136065A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供的深度学习方法、装置、网络设备和可读存储介质,对服务器中的各GPU中的模型副本,进行数据处理,得到当前批次的梯度数据;当对应的GPU中的梯度数据累计个数达到预设阈值时,以累计的梯度数据,来更新模型副本;其中,至少一个GPU所对应的梯度数据的预设阈值大于等于2。

Description

深度学习方法、装置、网络设备和可读存储介质
相关申请的交叉引用
本申请基于申请号为201911405827.X、申请日为2019年12月30日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此以引入方式并入本申请。
技术领域
本申请实施例涉及但不限于人工智能领域,具体而言,涉及但不限于一种深度学习方法、装置、网络设备和可读存储介质。
背景技术
近年来,深度学习取得了突破性进展,在机器视觉、语音识别、自然语言处理、机器翻译、数据挖掘、自动驾驶等方面都取得了令人印象深刻的性能表现。但是训练这些深度学习网络模型在算力上要求很高。虽然近年来在GPU硬件、网络架构和训练方法方面取得了重大进展,但事实是在单个机器上对网络模型进行训练可能需要花费很长时间。为了加快深度学习模型的训练,业界已经开展了大量的工作和研究,以实现神经网络的高效分布式训练。当下大规模分布式模型训练中,数据并行是最广为使用的方法。当我们对分布式模型训练的技术和方法展开研究的时候,发现存在如下问题:随着GPU(Graphics Processing Unit,图像处理器)的算力不断提升,GPU间的数据聚合成为了大规模分布式模型训练的瓶颈,而同步训练相当于增加了整体的Batch Size(一次训练所选取的样本数),但是如果实验条件有限,GPU资源不足,则无法进行超大Batch Size模型训练,阻碍了我们对当中的一些算法和技术进行研究和验证,而且对于不同算力的GPU,在同步训练的情况下,会对高算力的GPU的性能造成浪费。
发明内容
本申请实施例提供的深度学习方法、装置、网络设备和可读存储介质。
本申请实施例提供一种深度学习方法,包括:对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据;当对应的GPU中的所述梯度数据累计个数达到预设阈值时,以累计的所述梯度数据,来更新所述模型副本;其中,至少一个GPU所对应的梯度数据的预设阈值大于等于2。
本申请实施例还提供一种网络设备,所述网络设备包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个计算机程序,以实现上述的深度学习方法的步骤。
本申请实施例还提供一种计算机存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述的深度学习方法的步骤。
附图说明
图1为本申请实施例一提供的深度学习方法流程图;
图2为本申请实施例二提供的深度学习方法流程图;
图3为本申请实施例二提供的深度学习收敛关系示意图;
图4为本申请实施例三提供的深度学习方法流程图;
图5为本申请实施例四提供的深度学习装置组成示意图;
图6为本申请实施例五提供的网络设备组成示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本申请实施例作进一步详细说明。应当理解,此处所描述的具 体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的深度学习方法、装置、网络设备和可读存储介质,主要解决的技术问题是解决相关技术中模型训练样本有限,GPU性能利用率差的问题。
实施例一:
本实施例提供了一种深度学习方法,请参考图1,该方法包括:
S101、对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据;
S102、当对应的GPU中的梯度数据累计个数达到预设阈值时,以累计的梯度数据,来更新模型副本;其中,至少一个GPU所对应的梯度数据的预设阈值大于等于2。
神经网络的主要任务是在学习时找到最优的参数(权重和偏置),这个最优参数也就是损失函数最小时的参数。但是,一般情况下,损失函数比较复杂,参数也很多,无法确定在哪里取得最小值。所以通过梯度来寻找最小值(或者尽可能小的值)的方法就是梯度法。
需要注意的是,梯度表示的是各点处的函数值减少最多的方向,所以梯度的方向并不一定指向最小值。但是沿着它的方向能够最大限度地减少函数的值。因此,在寻找函数的最小值(或者尽可能小的值)的位置的时候,要以梯度的信息为线索,决定前进的方向。
此时梯度法就派上用场了。在梯度法中,函数的取值从当前位置沿着梯度方向前进一定距离,然后在新的方向重新求梯度,再沿着新梯度方向前进,如此反复。
像这样,通过不断地沿梯度方向前进,逐渐减小函数值的过程就是梯度法(gradient mothod)。一般来说,神经网络(深度学习)中,梯度法主要是指梯度下降法(gradient descent mothod)。
梯度下降算法是通过沿着目标函数L(w)的参数
Figure PCTCN2020139078-appb-000001
的梯度的相反方向
Figure PCTCN2020139078-appb-000002
(
Figure PCTCN2020139078-appb-000003
表示对矢量w做偏导)来不断更新模型参数来到达目标函数的极小值点。主要分为批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)三种,它们的不同之处在于每次学习时(更新模型参数)使用的样本个数,深度学习一般使用小批量梯度下降法,更新模型参数的主体公式一般如下:
Figure PCTCN2020139078-appb-000004
其中λ是指更新步长,也称为学习率,B则是指每次迭代使用的样本数量。
在本实施例中,在进行更新迭代的过程中,并非直接根据每一次计算得到的梯度就直接迭代,而是在对模型副本进行训练时,将计算得到的梯度暂存,并不直接更新模型副本,而是在计算得到足够的梯度数据之后,再基于这些梯度数据共同对模型副本进行迭代。这样的实施方式,相当于提升了GPU运算中所使用的Batch Size,也同时减少了参数更新的次数,减少了GPU间数据聚合阶段的数据量,有利于提升计算通信比。
在一些实施例中,对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据可以包括:
在对应的图形处理器GPU中的梯度数据达到预设阈值之前,根据前次更新后的模型副本,和与模型副本所对应的样本,计算得到当前批次的梯度数据。在正式迭代之前,也就是对模型副本进行更新之前,GPU运算的基础是前次更新后的模型副本,前次更新后的模型副本同样可以是按照累计多个梯度数据之后再迭得到。
在一些实施例中,在对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据之前,还可以包括:
将原始GPU中的模型副本的初始权重,发送给其他所有副本。其中,权重所指的是模型的参数,在训练开始之前,需要对模型的参数进行随机初始化,也就是初始权重;每次迭代使用计算好的梯度对模型进行更新,其目的是找到最优的参数,也就是最优的权重。其他副本的初始权重,以原始GPU中的模型 副本的初始权重为基准,也就是所有的GPU上使用的初始参数是相通的。
在一些实施例中,在当对应的GPU中的梯度数据累计个数达到预设阈值时,以累计的梯度数据,来更新模型副本之前,还可以包括:
根据服务器中的各GPU的运算处理能力,确定梯度数据的预设阈值。这里的预设阈值,对于一次整体的深度学习过程而言,可能含有多个服务器,而各服务器又可能含有多个GPU,其中至少一个GPU中的梯度数据的预设阈值为大于等于2,而具体的数值,则是根据具体的GPU的运算能力确定,具体如下:
当两个GPU之间的运算处理能力相同时,GPU对应的梯度数据的预设阈值相同;例如,假设现在有两台服务器,每台服务器各有8个GPU,也就是一共16个GPU,这16个GPU的运算处理能力一致;当训练某模型,如ResNet-50模型时,单个GPU上可使用的最大Batch Size假设是256,当使用数据并行同步SGD的方式进行分布式训练时,实际有效的Batch Size与使用的GPU成正比,比如使用了4个GPU,实际的Batch Size就是1K。在依次验证了256,1K,2K,4K的场景时,发现初始学习速率与Batch Size存在正比关系,而当全局的Batch Size为4K时,16个GPU已经全部用上了,如果想继续验证Batch Size为8K时,每个GPU上在做参数更新之前先累积两个小批量数据的梯度,此时预设阈值各GPU均为2;同样,16K和32K的情形分别需要在每个GPU上累积4个和8个的小批量数据的梯度,此时预设阈值分别为4或8。
当两个GPU之间的运算处理能力不同时,GPU对应的梯度数据的预设阈值中,运算能力更强的GPU的所对应的预设阈值更大。例如,假设现在有一个服务器,其中有两个GPU,分别是V100 GPU和P100 GPU,其中V100 GPU的算力要比P100GPU强很多,还以ResNet-50模型为例,当训练时的Batch Size为256时,V100每秒处理的图片数量是P100的两倍多,针对这种场景,则可以在P100处理一个Batch Size的数据所占用的时间内,V100则处理两个Batch Size的数据,也就是说,V100 GPU所对应的梯度数据的预设阈值为P100的两倍,比如V100 GPU的梯度数据的预设阈值为2,P100 GPU的梯度数据的预设阈值为1。
在一些实施例中,以累计的梯度数据,来更新模型副本可以包括:
对本GPU中的各梯度数据进行求和平均之后,在GPU之间做梯度聚合;
用梯度聚合后的梯度数据,更新各GPU中的模型副本。这种方式是在梯度数据的数量满足要求的情况下,各GPU计算出本地的平均梯度数据,然后各个GPU再根据计算得到的各个GPU的梯度数据,进行梯度聚合,得到梯度聚合之后的梯度数据,再基于该梯度数据,更新各GPU中的模型副本。
其中,对本GPU中的各梯度数据进行求和平均具体可以包括:对本GPU中,从前次更新后的模型副本之后,所新生成的各梯度数据,进行求和平均。
其中等效的计算公式可以如下:
Figure PCTCN2020139078-appb-000005
在一些实施例中,以累计的梯度数据,来更新模型副本还包括:
对本GPU中的各梯度数据进行求和平均之后,以求和平均之后的梯度数据对本GPU中的模型副本进行更新。这种方式就是说,以本GPU计算得到的各梯度数据直接进行求和平均之后,更新本GPU的模型副本。
本申请实施例提供的深度学习方法,对服务器中的各GPU中的模型副本,进行数据处理,得到当前批次的梯度数据;当对应的GPU中的梯度数据累计个数达到预设阈值时,以累计的梯度数据,来更新模型副本;其中,至少一个GPU所对应的梯度数据的预设阈值大于等于2。从而通过对梯度数据的累计一定数量之后,再对模型进行更新,扩大了训练时实际使用的Batch Size,且同时降低了参数更新的次数,挣脱了单个GPU显存的限制,可以实现更大的Batch Size的训练,有效的提升了系统的吞吐量和效率。
实施例二
本实施例提供了一种深度学习方法,若在多GPU环境训练ResNet-50模型,当采用不同的Batch Size进行训练的时候,为了能保证最终的收敛精度,设置的初始学习速率也应不一样,一般的经验是初始学习速率应该随着Batch Size的增大而增大,即初始学习速率和Batch Size之间存在一定的线性关系。
假如目前有两台GPU服务器,每台服务器用8个GPU,也就是一共16个GPU,当训练ResNet-50模型时,单个GPU上可使用的最大Batch Size是256,当使用数据并行同步SGD的方式进行分布式训练时,实际有效的Batch Size与使用的GPU成正比,比如使用了4个GPU,实际的Batch Size就是1K。在依次验证了256,1K,2K,4K的场景后,发现初始学习速率确实与Batch Size存在正比关系,但是当全局的Batch Size为4K时,16个GPU已经全部用上了,如果想继续验证Batch Size为8K及以上的情形时,可以在每个GPU在做参数更新之前,先累积几个批量数据的梯度,同样,8K情形下可以累积2个,16K和32K的情形分别可以在每个GPU上累积4个和8个的小批量数据。以16K的情形为例,流程图如图2所示,详细过程见下:
S201、每个GPU上都生成模型的一个副本,并将编号为0的原始GPU副本的初始权重,广播给其他所有副本;另外,在每个GPU上都定义一个本地变量和计数器,用来累加梯度;
S202、在各个副本内执行数据读取、数据预处理及数据增强、Load到对应GPU,并执行模型运算,计算梯度;
S203、判断当前梯度累积个数是否已达到4,如果没到则继续执行S202,否则,对累积的4个梯度求和平均,然后在GPU间做梯度聚合;
S204、在各个副本内,用聚合完后的梯度数据,更新各自本地的模型参数。
这样用16个GPU就可以进行Batch Size为8K,16K,32K的模型训练,经过验证,初始学习速率与Batch Size之间在一定的范围内存在线性关系,这个范围指的是Batch Size为8K以下,超过8K以后,ResNet-50的收敛精度就会变得越来越差,如图3所示。
实施例三
本实施例提供了一种深度学习方法;假设不同时期采购了两种不同型号的GPU,例如分别是英伟达P100和V100,其中新采购的V100 GPU的算力要比P100 GPU强很多,还以ResNet-50为例,当训练时的Batch Size为256时,V100每 秒处理的图片数量是P100的两倍多。如果把P100和V100两种不同算力的GPU放到一起进行同步训练的话,从算力上来讲,即使V100连续处理两个Batch的数据,P100可能连一个都还没处理完,所以可以在两次同步操作的时间间隔内,让V100处理两个Batch的数据,而P100处理一个Batch的数据。请参考图4,流程如下:
S401、在P100和V100上各自生成模型的一个副本,并将P100副本的初始权重广播给V100副本,V100上定义一个本地变量和计数器,用来累加梯度;
S402、在各个副本内执行数据读取、数据预处理及数据增强、Load到对应GPU,并执行模型运算,计算梯度;
S403、在V100上判断当前梯度累积个数是否已达到2,如果没到则继续执行S402,否则,对累积的2个梯度求和,然后在两个GPU间做AllReduce[AllReduce是一种将所有process中的目标数组(即表示All),减少为单个数组(即表示Reduce),并将结果数组返回给所有process的操作。(比如将所有GPU上的梯度值,假设数组表示,合并并执行reduce操作成一个数组,并返回给所有GPU)],并除以两个GPU的总Batch数3得到最终的梯度数据;
S404、在各个副本内,用聚合完后的梯度数据,更新各自本地的模型参数。
这样做的效果是V100比P100多出来的算力也得到了充分利用,而不至于浪费掉,最终结果是数据的吞吐量提升了近50%,训练速度也大大提升。
实施例四
本实施例提供了一种深度学习装置,请参考图5,该装置包括:
处理模块51,用于对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据;
更新模块52,用于当对应的GPU中的梯度数据累计个数达到预设阈值时,以累计的梯度数据,来更新模型副本;其中,至少一个GPU所对应的梯度数据的预设阈值大于等于2。
深度学习往往应用的是梯度下降算法。梯度下降算法是通过沿着目标函数L(w)的参数
Figure PCTCN2020139078-appb-000006
的梯度的相反方向
Figure PCTCN2020139078-appb-000007
(
Figure PCTCN2020139078-appb-000008
表示对矢量w做偏导)来不断更新模型参数来到达目标函数的极小值点。主要分为批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)三种,它们的不同之处在于每次学习时(更新模型参数)使用的样本个数,深度学习一般使用小批量梯度下降法。
在本实施例中,在进行更新迭代的过程中,并非直接根据每一次计算得到的梯度就直接迭代,而是在对模型副本进行训练时,将计算得到的梯度暂存,并不直接更新模型副本,而是在计算得到足够的梯度数据之后,再基于这些梯度数据共同对模型副本进行迭代。这样的实施方式,相当于提升了GPU运算中所使用的Batch Size,也同时减少了参数更新的次数,减少了GPU间数据聚合阶段的数据量,有利于提升计算通信比。
在一些实施例中,对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据可以包括:
在对应的图形处理器GPU中的梯度数据达到预设阈值之前,根据前次更新后的模型副本,和与模型副本所对应的样本,计算得到当前批次的梯度数据。在正式迭代之前,也就是对模型副本进行更新之前,GPU运算的基础是前次更新后的模型副本,前次更新后的模型副本同样可以是按照累计多个梯度数据之后再迭得到。
在一些实施例中,在对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据之前,还可以包括:
将原始GPU中的模型副本的初始权重,发送给其他所有副本。
在一些实施例中,在当对应的GPU中的梯度数据累计个数达到预设阈值时,以累计的梯度数据,来更新模型副本之前,还可以包括:
根据服务器中的各GPU的运算处理能力,确定梯度数据的预设阈值。这里的预设阈值,对于一次整体的深度学习过程而言,可能含有多个服务器,而各服务器又可能含有多个GPU,其中至少一个GPU中的梯度数据的预设阈值为等于等于2,而具体的数值,则是根据具体的GPU的运算能力确定,具体如下:
当两个GPU之间的运算处理能力相同时,GPU对应的梯度数据的预设阈值相同;
当两个GPU之间的运算处理能力不同时,GPU对应的梯度数据的预设阈值中,运算能力更强的GPU的所对应的预设阈值更大。
在一些实施例中,以累计的梯度数据,来更新模型副本可以包括:
对本GPU中的各梯度数据进行求和平均之后,在GPU之间做梯度聚合;
用梯度聚合后的梯度数据,更新各GPU中的模型副本。这种方式是在梯度数据的数量满足要求的情况下,各GPU计算出本地的平均梯度数据,然后各个GPU再根据计算得到的各个GPU的梯度数据,进行梯度聚合,得到梯度聚合之后的梯度数据,再基于该梯度数据,更新各GPU中的模型副本。
其中,对本GPU中的各梯度数据进行求和平均具体可以包括:对本GPU中,从前次更新后的模型副本之后,所新生成的各梯度数据,进行求和平均。
在一些实施例中,以累计的梯度数据,来更新模型副本还包括:
对本GPU中的各梯度数据进行求和平均之后,以求和平均之后的梯度数据对本GPU中的模型副本进行更新。这种方式就是说,以本GPU计算得到的各梯度数据直接进行求和平均之后,更新本GPU的模型参数。
本申请实施例提供的深度学习装置,对服务器中的各GPU中的模型副本,进行数据处理,得到当前批次的梯度数据;当对应的GPU中的梯度数据累计个数达到预设阈值时,以累计的梯度数据,来更新模型副本;其中,至少一个GPU所对应的梯度数据的预设阈值大于等于2。从而通过对梯度数据的累计一定数量之后,再对模型进行更新,扩大了训练时实际使用的Batch Size,且同时降低了参数更新的次数,挣脱了单个GPU显存的限制,可以实现更大的Batch Size的训练,有效的提升了系统的吞吐量和效率。
实施例五
本实施例提供了一种网络设备,请参考图6,该网络设备包括处理器61、 存储器62及通信总线63;
通信总线63用于实现处理器61和存储器62之间的连接通信;
处理器61用于执行存储器62中存储的一个或者多个计算机程序,以实现上述各实施例所述的深度学习方法的步骤,这里不再赘述。
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read-Only Memory,只读存储器),EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储网络设备、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述各实施例中的深度学习方法的至少一个步骤。
本实施例还提供了一种计算机程序(或称计算机软件),该计算机程序可以分布在计算机可读介质上,由可计算网络设备来执行,以实现上述各实施例中的深度学习方法的至少一个步骤。
本实施例还提供了一种计算机程序产品,包括计算机可读网络设备,该计算机可读网络设备上存储有如上所示的计算机程序。本实施例中该计算机可读网络设备可包括如上所示的计算机可读存储介质。
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、网络设备、网络设备中的功能模块/单元可以被实施为软件(可以用计算网络设备可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件 实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本申请不限制于任何特定的硬件和软件结合。
根据本申请实施例提供的深度学习方法、装置、网络设备和可读存储介质,对服务器中的各GPU中的模型副本,进行数据处理,得到当前批次的梯度数据;当对应的GPU中的梯度数据累计个数达到预设阈值时,以累计的梯度数据,来更新模型副本;其中,至少一个GPU所对应的梯度数据的预设阈值大于等于2。从而通过对梯度数据的累计一定数量之后,再对模型进行更新,扩大了训练时实际使用的Batch Size,且同时降低了参数更新的次数,挣脱了单个GPU显存的限制,可以实现更大的Batch Size的训练,有效的提升了系统的吞吐量和效率。
以上内容是结合具体的实施方式对本申请实施例所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本申请的保护范围。

Claims (10)

  1. 一种深度学习方法,包括:
    对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据;
    当对应的GPU中的所述梯度数据累计个数达到预设阈值时,以累计的所述梯度数据,来更新所述模型副本;其中,至少一个GPU所对应的梯度数据的预设阈值大于等于2。
  2. 如权利要求1所述的深度学习方法,其中,所述对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据包括:
    在对应的图形处理器GPU中的梯度数据达到预设阈值之前,根据前次更新后的模型副本,和与所述模型副本所对应的样本,计算得到当前批次的梯度数据。
  3. 如权利要求1所述的深度学习方法,其中,在所述对服务器中的各图形处理器GPU中的模型副本,进行数据处理,得到当前批次的梯度数据之前,还包括:
    将原始GPU中的模型副本的初始权重,发送给其他所有副本。
  4. 如权利要求1所述的深度学习方法,其中,在所述当对应的GPU中的所述梯度数据累计个数达到预设阈值时,以累计的所述梯度数据,来更新所述模型副本之前,还包括:
    根据服务器中的各GPU的运算处理能力,确定所述梯度数据的预设阈值。
  5. 如权利要求4所述的深度学习方法,其中,所述根据服务器中的各GPU的运算处理能力,确定所述梯度数据的预设阈值包括:
    当两个GPU之间的运算处理能力相同时,所述GPU对应的梯度数据的预设阈值相同;
    当两个GPU之间的运算处理能力不同时,所述GPU对应的梯度数据的预设阈值中,运算能力更强的GPU的所对应的预设阈值更大。
  6. 如权利要求1-5任一项所述的深度学习方法,其中,所述以累计的所述梯度数据,来更新所述模型副本包括:
    对本GPU中的各所述梯度数据进行求和平均之后,在GPU之间做梯度聚合;
    用梯度聚合后的梯度数据,更新各GPU中的模型副本。
  7. 如权利要求6所述的深度学习方法,其中,所述对本GPU中的各所述梯度数据进行求和平均包括:
    对本GPU中,从前次更新后的模型副本之后,所新生成的各梯度数据,进行求和平均。
  8. 如权利要求1-5任一项所述的深度学习方法,其中,所述以累计的所述梯度数据,来更新所述模型副本包括:
    对本GPU中的各所述梯度数据进行求和平均之后,以求和平均之后的梯度数据对本GPU中的模型副本进行更新。
  9. 一种网络设备,所述网络设备包括处理器、存储器及通信总线;
    所述通信总线用于实现处理器和存储器之间的连接通信;
    所述处理器用于执行存储器中存储的一个或者多个计算机程序,以实现如权利要求1-8中任一项所述的深度学习方法的步骤。
  10. 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如权利要求1-8中任一项所述的深度学习方法的步骤。
PCT/CN2020/139078 2019-12-30 2020-12-24 深度学习方法、装置、网络设备和可读存储介质 WO2021136065A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911405827.XA CN113129200A (zh) 2019-12-30 2019-12-30 深度学习方法、装置、网络设备和可读存储介质
CN201911405827.X 2019-12-30

Publications (1)

Publication Number Publication Date
WO2021136065A1 true WO2021136065A1 (zh) 2021-07-08

Family

ID=76686480

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/139078 WO2021136065A1 (zh) 2019-12-30 2020-12-24 深度学习方法、装置、网络设备和可读存储介质

Country Status (2)

Country Link
CN (1) CN113129200A (zh)
WO (1) WO2021136065A1 (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
US20160267380A1 (en) * 2015-03-13 2016-09-15 Nuance Communications, Inc. Method and System for Training a Neural Network
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
CN109102075A (zh) * 2018-07-26 2018-12-28 联想(北京)有限公司 一种分布式训练中的梯度更新方法及相关设备
CN110378472A (zh) * 2019-07-24 2019-10-25 苏州浪潮智能科技有限公司 一种深度神经网络模型的数据并行训练方法、装置及设备
CN111027708A (zh) * 2019-11-29 2020-04-17 杭州电子科技大学舟山同博海洋电子信息研究院有限公司 一种面向分布式机器学习的参数通信优化方法
CN111052155A (zh) * 2017-09-04 2020-04-21 华为技术有限公司 异步梯度平均的分布式随机梯度下降法
CN112288083A (zh) * 2020-10-21 2021-01-29 周宇浩 一种神经网络分布式训练方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
US20160267380A1 (en) * 2015-03-13 2016-09-15 Nuance Communications, Inc. Method and System for Training a Neural Network
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统
CN111052155A (zh) * 2017-09-04 2020-04-21 华为技术有限公司 异步梯度平均的分布式随机梯度下降法
CN109102075A (zh) * 2018-07-26 2018-12-28 联想(北京)有限公司 一种分布式训练中的梯度更新方法及相关设备
CN110378472A (zh) * 2019-07-24 2019-10-25 苏州浪潮智能科技有限公司 一种深度神经网络模型的数据并行训练方法、装置及设备
CN111027708A (zh) * 2019-11-29 2020-04-17 杭州电子科技大学舟山同博海洋电子信息研究院有限公司 一种面向分布式机器学习的参数通信优化方法
CN112288083A (zh) * 2020-10-21 2021-01-29 周宇浩 一种神经网络分布式训练方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113129200A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
US20220222531A1 (en) Asynchronous neural network training
US11775831B2 (en) Cascaded computing for convolutional neural networks
WO2020233084A1 (zh) 一种图像分割方法、装置、存储介质及终端设备
US10540587B2 (en) Parallelizing the training of convolutional neural networks
US20160358068A1 (en) Reducing computations in a neural network
TWI830938B (zh) 對人工神經網路進行量化的方法及系統以及人工神經網路設備
US20160358070A1 (en) Automatic tuning of artificial neural networks
EP3686816A1 (en) Techniques for removing masks from pruned neural networks
TW202014939A (zh) 修改機器學習模型以改善局域性
US20180307787A1 (en) Accelerating particle-swarm algorithms
CN113469373A (zh) 基于联邦学习的模型训练方法、系统、设备及存储介质
WO2021051556A1 (zh) 深度学习权值更新方法、系统、计算机设备及存储介质
US20200160185A1 (en) Pruning neural networks that include element-wise operations
CN109034384B (zh) 一种数据处理方法和装置
TW202001701A (zh) 影像的量化方法及神經網路的訓練方法
US20230254145A1 (en) System and method to improve efficiency in multiplicationladder-based cryptographic operations
TWI740338B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
WO2021136065A1 (zh) 深度学习方法、装置、网络设备和可读存储介质
WO2021115039A1 (zh) Fpga平台及其性能评估与设计优化的方法、存储介质
US8938484B2 (en) Maintaining dependencies among supernodes during repeated matrix factorizations
CN116644804A (zh) 分布式训练系统、神经网络模型训练方法、设备和介质
CN107992821B (zh) 一种图像识别方法及系统
US11410036B2 (en) Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program
CN113870090A (zh) 实现函数的方法、图形处理装置、系统和介质
CN114723024A (zh) 用于存算一体芯片的基于线性规划的神经网络映射方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20908625

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20908625

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 28/02/2023)

122 Ep: pct application non-entry in european phase

Ref document number: 20908625

Country of ref document: EP

Kind code of ref document: A1