CN111079813A - 基于模型并行的分类模型计算方法和装置 - Google Patents

基于模型并行的分类模型计算方法和装置 Download PDF

Info

Publication number
CN111079813A
CN111079813A CN201911257036.7A CN201911257036A CN111079813A CN 111079813 A CN111079813 A CN 111079813A CN 201911257036 A CN201911257036 A CN 201911257036A CN 111079813 A CN111079813 A CN 111079813A
Authority
CN
China
Prior art keywords
sub
input data
trainer
logic distribution
vector
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.)
Granted
Application number
CN201911257036.7A
Other languages
English (en)
Other versions
CN111079813B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201911257036.7A priority Critical patent/CN111079813B/zh
Publication of CN111079813A publication Critical patent/CN111079813A/zh
Application granted granted Critical
Publication of CN111079813B publication Critical patent/CN111079813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请公开了基于模型并行的分类模型计算方法和装置,涉及机器学习技术领域,其中,分类模型包括第一子训练器及N个第二子训练器,该方法中第一子训练器与N个第二子训练器进行输入数据同步,基于存储的参数片段,对第一输入数据及N个第二输入数据进行处理,确定与每个输入数据对应的逻辑分布子向量,之后确定与每个输入数据分别对应的逻辑分布总和,并计算与每个输入数据对应的交叉熵片段,并与N个第二子训练器同步,之后将与第一输入数据对应的所有交叉熵片段进行加和,确定第一输入数据对应的第一交叉熵。该方法通过模型并行方法,解决了参数存储问题,对训练速度的影响较小。

Description

基于模型并行的分类模型计算方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及机器学习技术领域,尤其涉及一种基于模型并行的分类模型计算方法和装置。
背景技术
训练大规模分类模型时,通常对全连接网络进行训练。随着类别增加,全连接网络的参数量呈线性增长,参数量太大,往往超出了单个存储设备的容量。采用数据并行训练,多个训练器间同步全连接网络参数的梯度时,需要大量的通信,会影响训练速度。
发明内容
本申请提出一种基于模型并行的分类模型计算方法和装置,用于解决相关技术中训练分类模型的方法,存在参数往往超出了单个存储设备的容量以及训练速度慢的问题。
本申请一方面实施例提出了一种基于模型并行的分类模型计算方法,所述分类模型中包括第一子训练器及N个第二子训练器,其中,N为大于0的整数,所述方法包括:
第一子训练器将接收的第一输入数据同步给所述N个第二子训练器,并获取所述N个第二子训练器分别同步的N个第二输入数据;
所述第一子训练器基于预设的第一参数片段,对所述第一输入数据及所述N个第二输入数据进行处理,确定所述第一输入数据对应的第一逻辑分布子向量、及所述N个第二输入数据分别对应的N个第一逻辑分布子向量;
所述第一子训练器,按照预设的规则与所述N个第二子训练器进行数据交互,以确定与所述第一输入数据对应的第一逻辑分布总和、及与所述N个第二输入数据分别对应的第二逻辑分布总和;
所述第一子训练器,根据与所述第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与所述第一输入数据对应的第一交叉熵片段;
所述第一子训练器,根据与所述第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段;
所述第一子训练器将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与所述第一输入数据对应的第二交叉熵片段;
所述第一子训练器,将与所述第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定所述第一输入数据对应的第一交叉熵。
本申请实施例的基于模型并行的分类模型计算方法,通过第一子训练器将接收的第一输入数据同步给N个第二子训练器,并获取N个第二子训练器分别同步的N个第二输入数据,第一子训练器基于预设的第一参数片段,对第一输入数据及N个第二输入数据进行处理,确定第一输入数据对应的第一逻辑分布子向量、及N个第二输入数据分别对应的N个第一逻辑分布子向量,按照预设的规则与N个第二子训练器进行数据交互,以确定与第一输入数据对应的第一逻辑分布总和、及与N个第二输入数据分别对应的第二逻辑分布总和,根据与第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与第一输入数据对应的第一交叉熵片段,根据与第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段,第一子训练器将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二交叉熵片段,将与第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定第一输入数据对应的第一交叉熵。由此,每个子训练器通过将本身的输入数据同步给其他子训练器,每个子训练器利用本身获取的输入数据和从其他子训练器获取的输入数据,对自身存储的分类模型的部分参数进行训练,并将得到与输入数据对应的交叉熵片段同步给其他子训练器,通过模型并行的方式,不仅解决了参数的存储问题,而且由于交叉熵片段是标量,那么相比数据并行方法中同步全连接网络参数的梯度,同步的数据量较小,从而较数据并行方法训练速度有明显提升。
本申请另一方面实施例提出了一种基于模型并行的分类模型计算装置,所述分类模型中包括第一子训练器及N个第二子训练器,其中,N为大于0的整数,所述装置应用于所述第一子训练器,装置包括:
第一同步模块,用于将接收的第一输入数据同步给所述N个第二子训练器,并获取所述N个第二子训练器分别同步的N个第二输入数据;
第一确定模块,用于基于预设的第一参数片段,对所述第一输入数据及所述N个第二输入数据进行处理,确定所述第一输入数据对应的第一逻辑分布子向量、及所述N个第二输入数据分别对应的N个第一逻辑分布子向量;
第二确定模块,用于按照预设的规则与所述N个第二子训练器进行数据交互,以确定与所述第一输入数据对应的第一逻辑分布总和、及与所述N个第二输入数据分别对应的第二逻辑分布总和;
第一计算模块,用于根据与所述第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与所述第一输入数据对应的第一交叉熵片;
第二计算模块,用于根据与所述第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段;
第二同步模块,用于将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与所述第一输入数据对应的第二交叉熵片段;
第三确定模块,用于将与所述第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定所述第一输入数据对应的第一交叉熵。
本申请实施例的基于模型并行的分类模型计算装置,通过将接收的第一输入数据同步给N个第二子训练器,并获取N个第二子训练器分别同步的N个第二输入数据,第一子训练器基于预设的第一参数片段,对第一输入数据及N个第二输入数据进行处理,确定第一输入数据对应的第一逻辑分布子向量、及N个第二输入数据分别对应的N个第一逻辑分布子向量,按照预设的规则与N个第二子训练器进行数据交互,以确定与第一输入数据对应的第一逻辑分布总和、及与N个第二输入数据分别对应的第二逻辑分布总和,根据与第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与第一输入数据对应的第一交叉熵片段,根据与第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段,第一子训练器将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二交叉熵片段,将与第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定第一输入数据对应的第一交叉熵。由此,每个子训练器通过将本身的输入数据同步给其他子训练器,每个子训练器利用本身获取的输入数据和从其他子训练器获取的输入数据,对自身存储的分类模型的部分参数进行训练,并将得到与输入数据对应的交叉熵片段同步给其他子训练器,通过模型并行的方式,不仅解决了参数的存储问题,而且由于交叉熵片段是标量,那么相比数据并行方法中同步全连接网络参数的梯度,同步的数据量较小,从而较数据并行方法训练速度有明显提升。
本申请另一方面实施例提出了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一方面实施例所述的基于模型并行的分类模型计算方法。
本申请另一方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机程序,所述计算机指令用于使所述计算机执行上述一方面实施例所述的基于模型并行的分类模型计算方法。
上述申请中的实施例具有如下有益效果:通过模型并行的方式不仅解决了参数的存储问题,而且相比数据并行方法中同步全连接网络参数的梯度,进行输入数据的同步和交叉熵片段的同步,同步的数据量较小,从而较数据并行方法训练速度有明显提升。因为采用模型并行的技术手段,所以克服了参数的存储问题以及数据并行训练影响训练速度的技术问题,进而达到解决了参数的存储问题和训练速度有明显提升的技术效果。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例提供的一种基于模型并行的分类模型计算方法的流程示意图;
图2为本申请实施例提供的一种子训练器之间的处理交互示意图;
图3为本申请实施例提供的另一种基于模型并行的分类模型计算方法的流程示意图;
图4为本申请实施例提供的另一种基于模型并行的分类模型计算方法的流程示意图;
图5为本申请实施例提供的另一种基于模型并行的分类模型计算方法的流程示意图;
图6为本申请实施例提供的另一种基于模型并行的分类模型计算方法的流程示意图;
图7为本申请实施例提供的一种基于模型并行的分类模型计算装置的结构示意图;
图8为根据本申请实施例的基于模型并行的分类模型计算方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面参考附图描述本申请实施例的基于模型并行的分类模型计算方法和装置。
本申请实施例,针对训练分类模型时,大量的参数往往超出单个设备的存储大小,以及数据并行训练中同步大量的全连接网络参数,需要大量的通信,影响训练速度的问题,提出一种基于模型并行的分类模型计算方法。
本申请实施例的基于模型并行的分类模型计算方法,其中,分类模型中包括第一子训练器及N个第二子训练器,每个子训练器通过将本身的输入数据同步给其他子训练器,每个子训练器利用本身获取的输入数据和从其他子训练器获取的输入数据,对自身存储的分类模型的部分参数进行训练,并将得到与输入数据对应的交叉熵片段同步给其他子训练器,通过模型并行的方式,不仅解决了参数的存储问题,而且由于交叉熵片段是标量,那么相比数据并行方法中同步全连接网络参数的梯度,因此较数据并行方法训练速度有明显提升。
图1为本申请实施例提供的一种基于模型并行的分类模型计算方法的流程示意图。
模型并行是指分布式系统中的不同机器(如GPU/CPU等)负责网络模型的不同部分。例如,神经网络模型的不同网络层被分配到不同的机器,或者同一层内部的不同参数被分配到不同机器。
本申请实施例中,如基于全连接网络训练得到分类模型,可将全连接网络参数切分并存储到到各个子训练器的存储中,以解决网络参数的存储问题。也就是说,将各子全连接网络分配到各个子训练器上。
本实施例中,分类模型包括第一子训练器及N个第二子训练器,其中,N为大于0的整数。例如,N=1,那么分类模型包括两个子训练器;N=2,那么分类模型包括三个子训练器。
所有子训练器计算输出的维数之和,等于分类模型的类别总数。比如,分类模型的类别总数为100,,两个子训练器并行计算,那么每个子训练器的计算输出可为50维。需要说明的是,每个子训练器对应的维数可以相同,也可以不同。
如图1所示,该基于模型并行的分类模型计算方法包括:
步骤101,第一子训练器将接收的第一输入数据同步给N个第二子训练器,并获取N个第二子训练器分别同步的N个第二输入数据。
本实施例中,如基于全连接网络训练得到分类模型,子训练器的输入数据为全连接网络之前各层的输出数据。也就是说,每个子训练器的输入数据,是全连接网络之前的各层处理后的结果。在具体实现时,全连接网络之前的各层可采取数据并行的方法进行训练。
在全连接层之前各层的输出数据输入至子训练器之前,将输出数据即全部输入数据分块给第一子训练器和N个第二子训练器,以使第一子训练器获取第一输入数据,N个第二子训练器分别获取对应的第二输入数据。
因全连接网络参数被拆分到各个子训练器中,为了获取各个子全连接网络的计算结果,每个子训练器除了计算自己的子全连接网络结果以外,还需要将输入数据发送给其他子训练器计算,同时也接收并计算其他子训练器发来的数据。
也就是,第一子训练器将接收的第一输入数据同步给N个第二子训练器。同样地,N个第二子训练器会将各自的输入数据同步给第一子训练器,那么第一子训练器获取N个第二子训练器分别同步的N个第二输入数据。
本实施例中,各个子训练器之间进行输入数据同步,由此,各个子训练器的子全连接网络均可以进行当前步骤的所有输入数据的计算,这样就不需要在反向阶段对全连接网络参数的梯度进行汇总。
步骤102,第一子训练器基于预设的第一参数片段,对第一输入数据及N个第二输入数据进行处理,确定第一输入数据对应的第一逻辑分布子向量、及N个第二输入数据分别对应的N个第一逻辑分布子向量。
本实施例中,全连接网络的参数分布在各个子训练器上,即每个子训练器存储有全连接网络参数中的一部分参数,即参数片段。其中,每个子训练器的参数片段包含的参数的数量可以相同,也可以不同。
第一子训练器在获取第一输入数据以及同步接收到N个第二子训练器的N个第二输入数据后,第一子训练器基于预设的第一参数片段,对第一输入数据及N个第二输入数据进行处理。
其中,第一参数片段为第一子训练器上存储的全连接网络的部分参数,利用第一参数片段,对第一输入数据处理得到,与第一输入数据对应的第一逻辑分布子向量,对N第二输入数据分别进行处理得到,每个第二输入数据对应的第一逻辑分布子向量。也就是说,第一逻辑分布子向量与第一参数片段相关,并且所有子训练器的逻辑分布子向量的维数之和,等于分类模型的类别总数。
比如,第一子训练器输出结果为50维,对应50个类别,与第一输入数据对应的第一逻辑分布子向量可表示为[z1,z2,…,z50],或者[ez1,ez2,…,ez50]。其中,z1,z2,…,z50,或ez1,ez2,…,ez50是与每个类别对应的。
基于此,每个子训练器基于存储的参数片段,对本身的输入数据和从其他从子训练器同步获取的输入数据进行处理,可以获取与输入数据对应的逻辑分布子向量。
下面以图2为例进行说明,图2为本申请实施例提供的一种子训练器之间的处理交互示意图。假设,分类模型包括两个子训练器a1和a2,a1和a2的输出维数均为50维,a1对应总类别中前50个类别,a2对应总类别中后50个类别。图2中,a1对应的全连接网络参数为W1,a2对应的全连接网络参数为W2,a1接收的输入数据为A1,a2接收的输入数据为A2。
那么,两个子训练器进行输入数据同步,a1和a2的输入数据为A1和A2,a1基于W1对输入数据A1和A2进行处理,得到A1对应的逻辑分布子向量B11和A2对应的逻辑分布子向量B12。a2基于W2对A1和A2分别进行处理,得到A2对应的逻辑分布子向量B21和A2对应的逻辑分布子向量B22。
其中,逻辑分布子向量B11与输入数据A1和参数W1相关,逻辑分布子向量B12与输入数据A2和参数W1相关;逻辑分布子向量B21与输入数据A2和参数W2相关,逻辑分布子向量B22与输入数据A2和参数W2相关。
步骤103,第一子训练器,按照预设的规则与N个第二子训练器进行数据交互,以确定与第一输入数据对应的第一逻辑分布总和、及与N个第二输入数据分别对应的第二逻辑分布总和。
由于所有子训练器的维数之和等于分类模型的类别总数,也就是所有子训练器对应的类别之和为分类模型的总类别。那么,对于每个子训练器而言,处理得到是与其参数片段相关的结果,也即只有其对应类别的结果。
本实施例中,第一逻辑分布总和与第二逻辑分布总和都是标量。第一输入数据对应的第一逻辑分布总和,可基于所有子训练器对第一输入数据进行处理得到的逻辑分布子向量得到,那么第一逻辑分布总和是基于分类模型的所有类别的。同理,第二逻辑分布总和也是基于分类模型所有类别的。
在第一子训练器按照预设的规则与N个第二子训练器进行数据交互时,可以是将第一输入数据对应的第一逻辑分布子向量同步给N个第二子训练器,并从N个第二子训练器获取第一输入数据对应的第二逻辑分布子向量,然后基于与第一输入数据对应的第一逻辑分布子向量和N个第二逻辑分布子向量,得到第一逻辑分布总和。
比如第一逻辑分布总和表示为
Figure BDA0002310548810000081
其中,求和的项数与分类模型的类别总数相同;ezj是基于逻辑分布子向量中的元素得到的,具体地,如果逻辑分布子向量中的元素不带指数,比如zj,那么求指数后进行相加,如果带指数,比如为ezj,则直接将所有逻辑分子向量中的元素相加得到逻辑分布总和。
步骤104,第一子训练器,根据与第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与第一输入数据对应的第一交叉熵片段。
本实施例中,第一交叉熵片段是一个标量,用于指示第一输入数据在第一子训练器对应的类别上的损失值。
具体地,第一子训练器可根据如下公式
Figure BDA0002310548810000082
计算在第一输入数据在每个类别上的损失值。之后,再根据与第一输入数据对应的已知标签向量片段和第一输入数据在每个类别上的损失值,得到与第一输入数据对应的第一交叉熵。
其中,已知标签用于指示分类模型的类别,或者说是用于指示要获取的损失值对应的类别,根据已知标签可以得到对应的标签向量片段。比如,分类模型的类别数为8,分类模型包含两个子训练器A和B,A和B分别对应4个类别,若A训练器的第一输入数据的已知标签为3,那么标签向量片段为[0,0,1,0],如果已知标签为5,那么标签向量片段为[0,0,0,0]。
假如,第一子训练器对应4个类别,计算出第一输入数据的损失值分别为L1、L2、L3、L4,而与第一输入数据对应的已知标签向量片段为[0,0,1,0],那么将两个相邻相乘得到L3,因此L3为与第一输入数据对应的第一交叉熵片段。若标签向量片段为[0,0,0,0],说明要获取的损失值对应的类别不是第一子训练器对应的类别,此时与第一输入数据对应的第一交叉熵为0。
步骤105,第一子训练器,根据与第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段。
本实施例中,第一子训练器获取到每个第二子训练器的输入数据,即第二输入数据,共获取N个第二输入数据。第二子训练器基于第一参数片段,对每个第二输入数据进行处理,得到与每个第二输入数据对应的第一逻辑分布子向量。可以理解的是,与每个第二输入数据对应的第一逻辑分布子向量都是与第一参数片段相关的,是每个第二输入数据在第一子训练器上的处理结果。
与第二输入数据对应的第二逻辑分布总和,是基于所有子训练器对第二输入数据进行处理得到的逻辑分布子向量得到,那么第一逻辑分布总和是基于分类模型的所有类别的。
计算与每个第二输入数据对应的第一交叉熵片段的方法,与计算第一输入数据对应的第一交叉熵片段的方法类似,可根据与第二输入数据对应的第一逻辑分布子向量和第二逻辑分布总和,计算出每个第二输入数据对应的第一交叉熵片段。
步骤106,第一子训练器将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二交叉熵片段。
由于第一子训练器获得是与第一输入数据对应的第一交叉熵片段,是第一输入数据在第一子训练器对应的类别上的损失值,是分类模型对应的部分类别上的损失值。
因此,为了获得第一输入数据在每个子训练器对应的类别上的损失值,本实施例中,第一子训练器将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,以使第二子训练器获取第二输入数据在第一子训练器对应的类别上的损失值,并获取每个第二子训练器同步的与第一输入数据对应的第二交叉熵片段,从而第一子训练器上具有与第一输入数据分别对应的第一交叉熵片段和N个第二交叉熵片段。
可以理解的是,第二子训练器,会将第二输入数据对应的第二交叉熵片段同步给其他子训练器,并获取其他每个子训练器同步的与第二输入数据对应的交叉熵片段。
本实施例中,由于第一交叉熵片段和第二交叉熵片段都是标量,那么子训练器之间同步标量,相比同步全连接网络参数的梯度,同步数据量较小,从而较数据并行方式训练速度有明显提升。
步骤107,第一子训练器,将与第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定第一输入数据对应的第一交叉熵。
本实施例中,第一子训练器,具有一个与第一输入数据对应的第一交叉熵片段和N个第二交叉熵片段,且每个交叉熵片段是第一输入数据,在计算出交叉上片段的子训练器对应类别上的损失值。
由于每个子训练器对应分类模型的部分类别,所有子训练器对应的类别组成分类模型的类别,那么可将与第一输入数据对应的第一交叉熵片段和N个第二交叉熵片段进行加和,求和的结果为与第一输入数据对应的第一交叉熵。
这里,第一交叉熵也是一个标量,用于指示第一输入数据在分类模型上某个类别上的损失值。
本申请实施例中,每个子训练器通过将本身的输入数据同步给其他子训练器,每个子训练器利用本身获取的输入数据和从其他子训练器获取的输入数据,对自身存储的分类模型的部分参数进行训练,并将得到与输入数据对应的交叉熵片段同步给其他子训练器,通过模型并行的方式,不仅解决了参数的存储问题,而且由于交叉熵片段是标量,那么相比数据并行方法中同步全连接网络参数的梯度,同步的数据量小,因此较数据并行方法训练速度有明显提升。
上述实施例中,第一子训练器可通过与N个第二子训练器同步逻辑分布子向量,得到与第一输入数据对应的第一逻辑分布总和。但由于同步逻辑分布子向量需要同步向量中的每个元素,因此同步的数量较多。为了进一步减少同步数据量,在本申请的一个实施例中,可通过同步标量,确定与第一输入数据对应的第一逻辑分布总和。下面结合图3进行说明,图3为本申请实施例提供的另一种基于模型并行的分类模型计算方法的流程示意图。
如图3所示,上述按照预设的规则与所述N个第二子训练器进行数据交互,以确定与第一输入数据对应的第一逻辑分布总和,包括:
步骤201,第一子训练器,根据第一输入数据对应的第一逻辑分布子向量,计算第一输入数据对应的第一逻辑分布和。
第一子训练器获取与第一输入数据对应的第一逻辑分布子向量后,可根据第一输入数据对应的第一逻辑分布子向量,计算第一输入对应的第一逻辑分布和。其中,第一逻辑分布和是标量,求和的项数与第一逻辑分布子向量的维数相同。
若第一逻辑分布子向量表示为[z1,z2,z3,…,zn1],那么第一逻辑分布和为
Figure BDA0002310548810000111
若第一逻辑分布子向量表示为
Figure BDA0002310548810000112
那么第一逻辑分布和是第一逻辑分布子向量中所有元素的和。
同样地,第二子训练器根据与第二输入数据对应的第二逻辑分布子向量,可以计算出与第二输入数据对应的第二逻辑分布和,以及根据与第一输入数据对应的第二逻辑分布子向量,计算出与第一输入数据对应的第二逻辑分布和。因此,每个子训练器可以计算出与本身输入数据对应的逻辑分布和,和其他子训练器同步过来的输入数据对应的逻辑分布和。
步骤202,第一子训练器,将第一逻辑分布和同步给N个第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二逻辑分布和。
由于第一逻辑分布和是根据第一子训练器对第一输入数据进行处理,得到的第一逻辑分布子向量计算出的,第一逻辑分布子向量与第一子训练器对应的类别对应。那么为了使得每个子训练器得到与第一输入数据对应的全类别的逻辑分布和,那么本实施例中,第一子训练器将第一逻辑分布和同步给N个第二子训练器,以使第二子训练器得到与第一输入对应的第一逻辑分布和,并获取每个第二子训练器同步的与第一输入数据对应的第二逻辑分布和。
由此,第一子训练器具有第一输入数据对应的N个第二逻辑分布和,与第一输入数据对应的第一逻辑分布和,对应分类模型的所有类别。
本实施例中,第一子训练器还可获取其他子训练器同步的与第二输入数据对应的逻辑分布和。
步骤203,第一子训练器,根据与第一输入数据对应的第一逻辑分布和、及N个第二逻辑分布和,计算与第一输入数据对应的第一逻辑分布总和。
本实施例中,将与第一输入数据对应的第一逻辑分布和,和N个与第一输入对应的第二逻辑分布和进行求和,求和的结果为与第一输入数据对应的第一逻辑分布总和。同理,每个第二子训练器可以计算出与本身第二输入数据对应的逻辑分布总和。
可以理解的是,第一子训练器将与第一输入数据对应的第一逻辑分布和同步给第二子训练器,第二子训练器结合从其他子训练器获得与第一输入数据对应的逻辑和,也可得到与第一输入数据对应的逻辑分布总和。同样地,第一子训练器也可以计算出与每个第二输入数据对应的逻辑分布总和。
本申请实施例中,子训练器之间通过同步标量逻辑分布和与交叉熵片段,对分类模型进行训练,相比数据并行,同步的数据量较小,训练速度有明显的提升。
为了更进一步提高训练速度,在本申请的一个实施例中,第一子训练器根据与第一输入数据对应的第一逻辑分布子向量,计算出与第一输入数据对应的第一逻辑分布和,根据与每个第二输入数据对应的第一逻辑分布子向量,计算出与第二输入数据对应的第一逻辑分布和。
第一子训练器,将每个第二输入数据对应的第一逻辑分布和,同步给对应的第二子训练器,并获取N个第二子训练器同步的与第一输入数据对应的N个第二逻辑分布和。
第一子训练器,根据与第一输入数据对应的第一逻辑分布和N个第二逻辑分布和,得到与第一输入数据对应的第一逻辑分布总和。然后,将与第一输入数据对应的第一逻辑分布总和,同步给N个第二子训练器,并获取其他N个子训练器同步的与每个第二输入数据对应的第二逻辑分布总和。由此,第一子训练器上具有与第一输入数据对应的第一逻辑分布总和,和与每个第二输入数据对应的第二逻辑分布总和。
图3所示的方法中,与该方法确定与第一输入数据对应的第一逻辑分布总和方法相同,但是第一子训练器确定与N个第二输入数据对应的第二逻辑分布总和的方法不同。
图3所示的方法中,第一子训练器不仅通过同步从其他子训练器,获取N个与第一输入对应的第二逻辑分布和,还需要从N个子训练器获取与每个第二输入数据对应的第二逻辑分布和,以得到与每个第二输入数据对应的第二逻辑分布和。
而上述获取第一逻辑分布总和的方法中,有两个同步过程,第一同步个过程中,第一子训练器获取N个第二子训练器同步的与第一输入数据对应的N个第二逻辑分布和,第二个同步过程中,第一子训练器获取N个第二子训练器同步的与每个第二输入数据对应的第二逻辑分布总和。也即该方法中,第一子训练器的是从N个第二子训练器,直接获取与每个第二输入数据对应的第二逻辑总和。而图3所示的方法,是第一子训练器根据同步获取的与第二输入数据对应的逻辑分布和计算出的,这样的话对于N个第二输入数据,第一子训练器都需要获取N个逻辑分布和,通过求和得到。
相比图3所示的方法,该方法中,第一子训练器无需从N个第二子训练器获取每个第二输入数据对应的第二逻辑分布和,以确定与每个第二输入数据对应的第二逻辑分布总和,而是通过同步的方式从N个第二子训练器获取第二逻辑分布总和,因此同步的数量更小。
在实际应用中,在计算逻辑分布总和时,如果求和项中ezj的指数zj较大,会导致指数计算结果溢出的问题。基于此,本申请实施例提出图4所示的方法计算与第一输入数据对应的第一逻辑分布总和,以解决数据溢出问题。图4为本申请实施例提供的另一种基于模型并行的分类模型计算方法的流程示意图。
如图4所示,该确定与第一输入数据对应的第一逻辑分布总和的方法包括:
步骤301,第一子训练器,将每个第一逻辑分布子向量中的最大元素同步给N个第二子训练器,并获取每个第二子训练器同步的每个第二逻辑分布子向量中的最大元素。
本实施例中,第一子训练器上具有与第一输入数据对应的第一逻辑分布子向量以及与N个第二输入数据对应的第一逻辑分布子向量。第一子训练器确定每个第一逻辑分布子向量中的最大元素,将每个第一逻辑分布子向量中的最大元素同步给N个第二子训练器,并获取每个第二子训练器同步的每个第二逻辑分布子向量中的最大元素。
由此,第一子训练器可以确定与第一输入数据对应的每个逻辑分布子向量中的最大元素,以及与每个第二输入数据对应的每个逻辑分布子向量中的最大元素。
步骤302,第一子训练器,根据与第一输入数据对应的第一逻辑分布子向量中的最大元素、及与第一输入数据对应的每个第二逻辑分布子向量中的最大元素,确定与第一输入数据对应的最大逻辑分布元素。
由于第一子训练器获取的是每个逻辑分布子向量中的最大元素,而每个逻辑分布子向量与分类模型的部分类别对应,因此,第一子训练器可获取与第一输入数据对应的所有逻辑分布子向量中的最大元素。
具体地,第一子训练器可将与第一输入数据对应的第一逻辑分布子向量中的最大元素,与与第一输入数据对应的每个第二逻辑分布子向量中的最大元素进行比较,确定出所有逻辑分布子向量中的最大元素,根据该最大元素确定与第一输入数据对应的最大逻辑分布元素。
比如,逻辑分布子向量中的元素表示为zj的形式,那么所有逻辑分布子向量中最大元素,即为与第一输入数据对应的最大逻辑分布元素;若逻辑分布子向量中的元素表示为ezj的形式,那么确定出的所有逻辑分布子向量中的最大元素的指数,为与第一输入数据对应的最大逻辑分布元素。
同样地,第一子训练器根据与每个输入数据对应的每个逻辑分布子向量中的最大元素,可确定出与每个第二输入数据对应的最大逻辑分布元素。
步骤303,第一子训练器,根据第一输入数据分别对应的最大逻辑分布元素、第一逻辑分布子向量,计算第一逻辑分布和。
在确定与第一输入数据对应的最大逻辑分布元素后,第一子训练器可根据与第一输入数据分别对应的最大逻辑分布元素,第一逻辑分布子向量,计算第一逻辑分布和。
如果逻辑分布子向量中的元素表示为zj的形式,可将第一逻辑分布子向量中每个元素减去最大逻辑分布元素后,再求指数,然后求和得到第一逻辑分布和。比如,第一逻辑分布子向量为[z1,z2,z3,…,zn1],与第一输入数据对应的最大逻辑分布元素为zmax1,第一逻辑分布和为
Figure BDA0002310548810000151
如果逻辑分布子向量中的元素表示为ezj,可将第一逻辑分布子向量中每个元素的指数减去最大逻辑分布元素,进行元素求和,得到第一逻辑分布和。比如,第一逻辑分布子向量为
Figure BDA0002310548810000152
与第一输入数据对应的最大逻辑分布元素为zmax1,那么第一逻辑分布子向量中每个元素的指数减去zmax1,得到
Figure BDA0002310548810000153
然后将各元素求和得到
Figure BDA0002310548810000154
同理,第一子训练器可以根据与第二输入数据对应的第一逻辑分布子向量、最大逻辑分布元素,计算出与第二输入数据对应的第一逻辑分布和。
步骤304,第一子训练器,将第一逻辑分布和同步给N个第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二逻辑分布和。
步骤305,第一子训练器,根据与第一输入数据对应的第一逻辑分布和、及N个第二逻辑分布和,计算与第一输入数据对应的第一逻辑分布总和。
本实施例中,步骤304-步骤305与上述步骤202-步骤203类似,故在此不再赘述。
本申请实施例中,第一子训练器在计算第一输入数据对应的第一逻辑分布子向量之前,与N个第二子训练器之间,通过同步获取与第一输入数据对应的第二逻辑分布子向量中的最大元素,进而确定与第一输入数据对应的最大逻辑分布元素,从而在计算第一输入数据对应的第一逻辑分布和时,根据最大逻辑分布元素和第一逻辑分布子向量进行计算,可以解决数据溢出的问题。
在本申请的一个实施例中,可通过图5所示的方式,计算第一输入数据对应的第一交叉熵片段。图5为本申请实施例提供的另一种基于模型并行的分类模型计算方法的流程示意图。
如图5所示,上述计算与第一输入数据对应的第一交叉熵片段,包括:
步骤401,第一子训练器,根据与第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与第一输入数据对应的第一概率分布子向量。
具体地,将第一逻辑分布子向量中的每个元素与第一逻辑分布总和进行计算,得到第一概率分布子向量中的各个元素。
如果第一逻辑分布子向量表示为zj,则第一分布子向量中每个元素求指数后,与第一逻辑分布总和作比值,得到第一概率分布子向量中各个元素。如果第一逻辑分布子向量表示为ezj,可将第一逻辑分布子向量的各元素与第一逻辑分布总和作比值,得到第一概率分布子向量中的各元素。
比如,第一逻辑分布子向量为[z1,z2,z3,…,zn1],第一逻辑分布和为
Figure BDA0002310548810000161
那么第一概率分布子向量中的元素表示为
Figure BDA0002310548810000162
为了解决数据溢出问题,若确定与第一输入数据对应的最大逻辑分布元素为zmax1,那么
Figure BDA0002310548810000163
步骤402,第一子训练器,根据与第一输入数据的已知标签对应的标签向量片段及第一概率分布子向量,计算与第一输入数据对应的第一交叉熵片段。
本实施例中,可以给每个输入数据指定标签,称为已知标签。其中,已知标签用于指定分类模型中的类别,由此通过已知标签,可以确定输入数据在每个类别上的概率值和损失值。
根据已知标签可以得到已知标签对应的标签向量片段。比如,分类模型的类别数为8,分类模型包含两个子训练器A和B,A和B分别对应4个类别,若A训练器的第一输入数据的已知标签为3,那么标签向量片段为[0,0,1,0],如果已知标签为5,那么标签向量片段为[0,0,0,0]。
由于标签向量片段的维数与第一概率分布子向量的维数相同,第一子训练器可将第一输入数据的已知标签对应的标签向量,与第一输入数据对应的概率向量相乘,得到一个数值。
可以理解是,第一输入数据的已知标签指示的类别,可能不是第一训练器对应的类别。也就是说,要预测第一输入数据在某类别上的损失值,这个类别可能不是第一子训练器对应的类别。
因此,如果第一输入数据的已知标签对应的标签向量片段中包含元素1,那么标签向量片段与第一概率分布子向量相乘,得到的是第一输入数据在与元素1对应的类别上的概率值,也就是从第一概率分布子向量上提取某一类别上的概率值。如果标签向量片段包含的元素都是零,那么得到值为零。
第一子训练器,将与第一输入数据的已知标签对应的标签向量片段和第一概率分布子向量相乘,得到一个数值后,根据该概率值与损失值之间的关系,可计算与第一输入数据对应的交叉熵片段。
具体地,可根据如下公式计算第一交叉熵片段:
L=-log(p)
其中,p为标签向量片段与第一概率分布子向量相乘的结果,L为与第一输入数据对应的第一交叉熵片段。
本申请实施例中,在计算与第一输入数据对应的第一交叉熵片段时,可根据第一逻辑分布子向量和第一逻辑分布总和,计算出第一概率分布子向量,之后根据第一概率分布子向量和与第一输入数据的已知标签对应的标签向量片段,计算出与第一输入数据对应的第一交叉熵片段。由此,通过先求出第一概率分布子向量,再计算出第一交叉熵片段。
在上述步骤104计算与第一输入数据对应的第一交叉熵片段之后,还可求出第一输入数据对应的全类别概率值。下面结合图6进行说明,图6为本申请实施例提供的另一种基于模型并行的分类模型计算方法的流程示意图。
如图6所示,上述计算与第一输入数据对应的第一交叉熵片段之后,还包括:
步骤501,第一子训练器,根据与第一输入数据对应的第一交叉熵片段,计算与第一输入数据对应的第一概率值。
本实施例中,可利用概率值与交叉熵之间的关系,根据与第一输入数据对应的第一交叉熵片段,计算出与第一输入数据对应的第一概率值。
具体地,可根据如下公式p=e-L,计算第一概率值。其中,L为与第一输入数据对应的交叉熵片段,p表示与第一输入数据对应的第一概率值。
步骤502,第一子训练器,根据与每个第二输入数据对应的第一交叉熵片段,计算与每个第二输入数据对应的第一概率值。
第一子训练器,还可根据与每个第二输入数据对应的第一交叉熵片段,利用概率值与交叉熵之间的关系,计算出与每个第二输入数据对应的第一概率值。
步骤503,第一子训练器,将与每个第二输入数据对应的第一概率值同步给对应的第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二概率值。
第一概率值是根据第一交叉熵片段计算出的,由于与第一输入数据对应的第一交叉熵片段与第一子训练器对应的类别相关,那么第一概率值也与第一子训练器的类别对应,为了得到与分类模型各个类别对应的概率值,本实施例中,第一子训练器,将与每个第二输入数据对应的第一概率值同步给对应的第二子训练器,并获取N个第二子训练器对应的第二概率值。
再者,由于每个子训练器对应分类模型的部分类别,那么要得到第一输入数据是某类别的概率值,这个类别可能是第一子训练器上的类别,也可能某个第二子训练器上的类别。因此,为了保证得到第一输入数据在某个类别上的概率值,那么可获取每个第二子训练器计算出的与第一输入数据对应的第二概率值。
本实施例中,第一子训练器通过与N个子训练器同步,可以得到其他第二子训练器计算出的与第一输入数据对应的第二概率值,由此,第一子训练器可以获取所有与第一输入数据对应的概率值。
由于第一子训练器还将计算的与每个第二输入数据对应的第一概率值同步给对应的第二子训练器,那么第二子训练器可以获取所有与第二输入数据对应的其他子训练器同步的概率值。
步骤504,第一子训练器,根据与第一输入数据对应的第一概率值及第二概率值,确定第一输入数据对应的全类别概率值。
第一子训练器,可对与第一输入数据对应的第一概率值和N个第二概率值进行求和,求和的结果为第一输入数据对应的全类别概率值。
同样地,第二子训练器可根据与第二输入数据对应的第二概率值,和从其他子训练器获取的与第二输入数据对应的概率值,确定与第二输入数据对应的全类别概率值。
本申请实施例的基于模型并行的分类模型计算方法,在第一子训练器计算出与第一输入数据对应第一交叉熵片段后,通过根据第一交叉熵片段计算出与第一输入数据对应的第一概率值,和根据与每个第二输入数据对应的第二交叉熵片段,计算出与每个第二输入数据对应的第二概率值,并将与每个第二输入数据对应的第二概率值同步给对应的第二子训练器,以及获取每个第二子训练器同步的与第一输入数据对应的第二概率值,之后根据第一输入数据对应的第一概率值和N个与第一输入数据对应第二概率值,计算出与第一输入数据对应的全概率值,从而可以得到第一输入数据在某类别上的概率值。
为了实现上述实施例,本申请实施例还提出一种基于模型并行的分类模型计算装置。图7为本申请实施例提供的一种基于模型并行的分类模型计算装置的结构示意图。
本申请实施例中,分类模型中包括第一子训练器及N个第二子训练器,其中,N为大于0的整数,该装置应用于第一子训练器。
如图7所示,该基于模型并行的分类模型计算装置600包括:第一同步模块610、第一确定模块620、第二确定模块630、第一计算模块640、第二计算模块650、第二同步模块660和第三确定模块670。
第一同步模块610,用于将接收的第一输入数据同步给N个第二子训练器,并获取N个第二子训练器分别同步的N个第二输入数据;
第一确定模块620,用于基于预设的第一参数片段,对第一输入数据及N个第二输入数据进行处理,确定第一输入数据对应的第一逻辑分布子向量、及N个第二输入数据分别对应的N个第一逻辑分布子向量;
第二确定模块630,用于按照预设的规则与N个第二子训练器进行数据交互,以确定与第一输入数据对应的第一逻辑分布总和、及与N个第二输入数据分别对应的第二逻辑分布总和;
第一计算模块640,用于根据与第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与第一输入数据对应的第一交叉熵片;
第二计算模块650,用于根据与第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段;
第二同步模块660,用于将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二交叉熵片段;
第三确定模块670,用于将与第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定第一输入数据对应的第一交叉熵。
在本申请实施例一种可能的实现方式中,上述第二确定模块630,包括:
第一计算单元,用于根据第一输入数据对应的第一逻辑分布子向量,计算第一输入数据对应的第一逻辑分布和;
第一同步单元,用于将第一逻辑分布和同步给N个第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二逻辑分布和;
第二计算单元,用于根据与第一输入数据对应的第一逻辑分布和、及N个第二逻辑分布和,计算与第一输入数据对应的第一逻辑分布总和。
在本申请实施例一种可能的实现方式中,上述第二确定模块630,还包括:
第二同步单元,用于将每个第一逻辑分布子向量中的最大元素同步给N个第二子训练器,并获取每个第二子训练器同步的每个第二逻辑分布子向量中的最大元素;
确定单元,用于根据与第一输入数据对应的第一逻辑分布子向量中的最大元素、及与第一输入数据对应的每个第二逻辑分布子向量中的最大元素,确定与第一输入数据对应的最大逻辑分布元素;
上述第一计算单元,具体用于:
第一子训练器,根据第一输入数据分别对应的最大逻辑分布元素、第一逻辑分布子向量,计算第一逻辑分布和。
在本申请实施例一种可能的实现方式中,上述第一计算模块640,具体用于:
根据与第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与第一输入数据对应的第一概率分布子向量;
根据与第一输入数据的已知标签对应的标签向量片段及第一概率分布子向量,计算与第一输入数据对应的第一交叉熵片段。
在本申请实施例一种可能的实现方式中,该装置还可包括:
第三计算模块,用于根据与第一输入数据对应的第一交叉熵片段,计算与第一输入数据对应的第一概率值;
第四计算模块,用于根据与每个第二输入数据对应的第一交叉熵片段,计算与每个第二输入数据对应的第一概率值;
第三同步模块,用于将与每个第二输入数据对应的第一概率值同步给对应的第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二概率值;
第四确定模块,用于根据与第一输入数据对应的第一概率值及第二概率值,确定第一输入数据对应的全类别概率值。
需要说明的是,前述基于模型并行的分类模型计算方法实施例的解释说明,也适用于该实施例的基于模型并行的分类模型计算装置,故在此不再赘述。
本申请实施例的基于模型并行的分类模型计算装置,通过将接收的第一输入数据同步给N个第二子训练器,并获取N个第二子训练器分别同步的N个第二输入数据,基于预设的第一参数片段,对第一输入数据及N个第二输入数据进行处理,确定第一输入数据对应的第一逻辑分布子向量、及N个第二输入数据分别对应的N个第一逻辑分布子向量,按照预设的规则与N个第二子训练器进行数据交互,以确定与第一输入数据对应的第一逻辑分布总和、及与N个第二输入数据分别对应的第二逻辑分布总和,根据与第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与第一输入数据对应的第一交叉熵片段,根据与第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段,第一子训练器将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与第一输入数据对应的第二交叉熵片段,将与第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定第一输入数据对应的第一交叉熵。由此,每个子训练器通过将本身的输入数据同步给其他子训练器,每个子训练器利用本身获取的输入数据和从其他子训练器获取的输入数据,对自身存储的分类模型的部分参数进行训练,并将得到与输入数据对应的交叉熵片段同步给其他子训练器,通过模型并行方式,不仅解决了参数的存储问题,而且由于交叉熵片段是标量,那么相比数据并行方法中同步全连接网络参数的梯度,同步的数据量较小,从而较数据并行方法训练速度有明显提升。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的基于模型并行的分类模型计算方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GU I的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的基于模型并行的分类模型计算方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的基于模型并行的分类模型计算方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的基于模型并行的分类模型计算方法对应的程序指令/模块(例如,附图7所示的第一同步模块610、第一确定模块620、第二确定模块630、第一计算模块640、第二计算模块650、第二同步模块660和第三确定模块670)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的基于模型并行的分类模型计算方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于模型并行的分类模型计算电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至基于模型并行的分类模型计算方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
基于模型并行的分类模型计算方法的电子设备还可以包括:输入装置503和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与基于模型并行的分类模型计算方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用AS I C(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,每个子训练器通过将本身的输入数据同步给其他子训练器,每个子训练器利用本身获取的输入数据和从其他子训练器获取的输入数据,对自身存储的分类模型的部分参数进行训练,并将得到与输入数据对应的交叉熵片段同步给其他子训练器,不仅解决了参数的存储问题,而且由于交叉熵片段为标量,那么相比数据并行方法中同步全连接网络参数的梯度,同步的数据量较小,从而较数据并行方法训练速度有明显提升。
在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (12)

1.一种基于模型并行的分类模型计算方法,其特征在于,所述分类模型中包括第一子训练器及N个第二子训练器,其中,N为大于0的整数,所述方法包括:
第一子训练器将接收的第一输入数据同步给所述N个第二子训练器,并获取所述N个第二子训练器分别同步的N个第二输入数据;
所述第一子训练器基于预设的第一参数片段,对所述第一输入数据及所述N个第二输入数据进行处理,确定所述第一输入数据对应的第一逻辑分布子向量、及所述N个第二输入数据分别对应的N个第一逻辑分布子向量;
所述第一子训练器,按照预设的规则与所述N个第二子训练器进行数据交互,以确定与所述第一输入数据对应的第一逻辑分布总和、及与所述N个第二输入数据分别对应的第二逻辑分布总和;
所述第一子训练器,根据与所述第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与所述第一输入数据对应的第一交叉熵片段;
所述第一子训练器,根据与所述第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段;
所述第一子训练器将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与所述第一输入数据对应的第二交叉熵片段;
所述第一子训练器,将与所述第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定所述第一输入数据对应的第一交叉熵。
2.如权利要求1所述的方法,其特征在于,所述按照预设的规则与所述N个第二子训练器进行数据交互,以确定与所述第一输入数据对应的第一逻辑分布总和,包括:
所述第一子训练器,根据所述第一输入数据对应的第一逻辑分布子向量,计算所述第一输入数据对应的第一逻辑分布和;
所述第一子训练器,将所述第一逻辑分布和同步给所述N个第二子训练器,并获取每个第二子训练器同步的与所述第一输入数据对应的第二逻辑分布和;
所述第一子训练器,根据与所述第一输入数据对应的第一逻辑分布和、及N个第二逻辑分布和,计算与所述第一输入数据对应的第一逻辑分布总和。
3.如权利要求2所述的方法,其特征在于,所述计算所述第一输入数据对应的第一逻辑分布和之前,还包括:
所述第一子训练器,将每个第一逻辑分布子向量中的最大元素同步给所述N个第二子训练器,并获取每个第二子训练器同步的每个第二逻辑分布子向量中的最大元素;
所述第一子训练器,根据与所述第一输入数据对应的第一逻辑分布子向量中的最大元素、及与所述第一输入数据对应的每个第二逻辑分布子向量中的最大元素,确定与所述第一输入数据对应的最大逻辑分布元素;
所述计算所述第一输入数据对应的第一逻辑分布和,包括:
所述第一子训练器,根据所述第一输入数据分别对应的最大逻辑分布元素、第一逻辑分布子向量,计算所述第一逻辑分布和。
4.如权利要求3所述的方法,其特征在于,所述计算与所述第一输入数据对应的第一交叉熵片段,包括:
所述第一子训练器,根据与所述第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与所述第一输入数据对应的第一概率分布子向量;
所述第一子训练器,根据与所述第一输入数据的已知标签对应的标签向量片段及所述第一概率分布子向量,计算与所述第一输入数据对应的第一交叉熵片段。
5.如权利要求1所述的方法,其特征在于,所述计算与所述第一输入数据对应的第一交叉熵片段之后,还包括:
所述第一子训练器,根据与所述第一输入数据对应的第一交叉熵片段,计算与所述第一输入数据对应的第一概率值;
所述第一子训练器,根据与每个第二输入数据对应的第一交叉熵片段,计算与每个第二输入数据对应的第一概率值;
所述第一子训练器,将与每个第二输入数据对应的第一概率值同步给对应的第二子训练器,并获取每个第二子训练器同步的与所述第一输入数据对应的第二概率值;
所述第一子训练器,根据与所述第一输入数据对应的第一概率值及第二概率值,确定所述第一输入数据对应的全类别概率值。
6.一种基于模型并行的分类模型计算装置,其特征在于,所述分类模型中包括第一子训练器及N个第二子训练器,其中,N为大于0的整数,所述装置应用于所述第一子训练器,所述装置包括:
第一同步模块,用于将接收的第一输入数据同步给所述N个第二子训练器,并获取所述N个第二子训练器分别同步的N个第二输入数据;
第一确定模块,用于基于预设的第一参数片段,对所述第一输入数据及所述N个第二输入数据进行处理,确定所述第一输入数据对应的第一逻辑分布子向量、及所述N个第二输入数据分别对应的N个第一逻辑分布子向量;
第二确定模块,用于按照预设的规则与所述N个第二子训练器进行数据交互,以确定与所述第一输入数据对应的第一逻辑分布总和、及与所述N个第二输入数据分别对应的第二逻辑分布总和;
第一计算模块,用于根据与所述第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与所述第一输入数据对应的第一交叉熵片;
第二计算模块,用于根据与所述第二输入数据分别对应的第一逻辑分布子向量及第二逻辑分布总和,计算与每个第二输入数据对应的第一交叉熵片段;
第二同步模块,用于将与每个第二输入数据对应的第一交叉熵片段同步给对应的第二子训练器,并获取每个第二子训练器同步的与所述第一输入数据对应的第二交叉熵片段;
第三确定模块,用于将与所述第一输入数据对应的第一交叉熵片段和第二交叉熵片段进行加和,确定所述第一输入数据对应的第一交叉熵。
7.如权利要求6所述的装置,其特征在于,所述第二确定模块,包括:
第一计算单元,用于根据所述第一输入数据对应的第一逻辑分布子向量,计算所述第一输入数据对应的第一逻辑分布和;
第一同步单元,用于将所述第一逻辑分布和同步给所述N个第二子训练器,并获取每个第二子训练器同步的与所述第一输入数据对应的第二逻辑分布和;
第二计算单元,用于根据与所述第一输入数据对应的第一逻辑分布和、及N个第二逻辑分布和,计算与所述第一输入数据对应的第一逻辑分布总和。
8.如权利要求7所述的装置,其特征在于,所述第二确定模块,还包括:
第二同步单元,用于将每个第一逻辑分布子向量中的最大元素同步给所述N个第二子训练器,并获取每个第二子训练器同步的每个第二逻辑分布子向量中的最大元素;
确定单元,用于根据与所述第一输入数据对应的第一逻辑分布子向量中的最大元素、及与所述第一输入数据对应的每个第二逻辑分布子向量中的最大元素,确定与所述第一输入数据对应的最大逻辑分布元素;
所述第一计算单元,具体用于:
所述第一子训练器,根据所述第一输入数据分别对应的最大逻辑分布元素、第一逻辑分布子向量,计算所述第一逻辑分布和。
9.如权利要求8所述的装置,其特征在于,所述第一计算模块,具体用于:
根据与所述第一输入数据分别对应的第一逻辑分布子向量及第一逻辑分布总和,计算与所述第一输入数据对应的第一概率分布子向量;
根据与所述第一输入数据的已知标签对应的标签向量片段及所述第一概率分布子向量,计算与所述第一输入数据对应的第一交叉熵片段。
10.如权利要求6所述的装置,其特征在于,还包括:
第三计算模块,用于根据与所述第一输入数据对应的第一交叉熵片段,计算与所述第一输入数据对应的第一概率值;
第四计算模块,用于根据与每个第二输入数据对应的第一交叉熵片段,计算与每个第二输入数据对应的第一概率值;
第三同步模块,用于将与每个第二输入数据对应的第一概率值同步给对应的第二子训练器,并获取每个第二子训练器同步的与所述第一输入数据对应的第二概率值;
第四确定模块,用于根据与所述第一输入数据对应的第一概率值及第二概率值,确定所述第一输入数据对应的全类别概率值。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的基于模型并行的分类模型计算方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的基于模型并行的分类模型计算方法。
CN201911257036.7A 2019-12-10 2019-12-10 基于模型并行的分类模型计算方法和装置 Active CN111079813B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911257036.7A CN111079813B (zh) 2019-12-10 2019-12-10 基于模型并行的分类模型计算方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911257036.7A CN111079813B (zh) 2019-12-10 2019-12-10 基于模型并行的分类模型计算方法和装置

Publications (2)

Publication Number Publication Date
CN111079813A true CN111079813A (zh) 2020-04-28
CN111079813B CN111079813B (zh) 2023-07-07

Family

ID=70313685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911257036.7A Active CN111079813B (zh) 2019-12-10 2019-12-10 基于模型并行的分类模型计算方法和装置

Country Status (1)

Country Link
CN (1) CN111079813B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582351A (zh) * 2020-04-30 2020-08-25 北京百度网讯科技有限公司 分类模型评价指标的确定方法、装置、设备及介质
CN113055381A (zh) * 2021-03-12 2021-06-29 山东大学 一种基于页型网络实现物联网DDoS流量的检测方法、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161170A1 (en) * 2009-07-17 2015-06-11 Google Inc. Image classification
US20170061330A1 (en) * 2015-08-31 2017-03-02 International Business Machines Corporation Method, system and computer program product for learning classification model
CN107330445A (zh) * 2017-05-31 2017-11-07 北京京东尚科信息技术有限公司 用户属性的预测方法和装置
CN110020147A (zh) * 2017-11-29 2019-07-16 北京京东尚科信息技术有限公司 模型生成、评论识别的方法、系统、设备及存储介质
CN110046656A (zh) * 2019-03-28 2019-07-23 南京邮电大学 基于深度学习的多模态场景识别方法
CN110414432A (zh) * 2019-07-29 2019-11-05 腾讯科技(深圳)有限公司 对象识别模型的训练方法、对象识别方法及相应的装置
US20200097709A1 (en) * 2017-12-12 2020-03-26 Tencent Technology (Shenzhen) Company Limited Classification model training method, server, and storage medium
US20200210893A1 (en) * 2017-07-25 2020-07-02 The University Of Tokyo Learning Method, Learning Program, Learning Device, and Learning System

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161170A1 (en) * 2009-07-17 2015-06-11 Google Inc. Image classification
US20170061330A1 (en) * 2015-08-31 2017-03-02 International Business Machines Corporation Method, system and computer program product for learning classification model
CN107330445A (zh) * 2017-05-31 2017-11-07 北京京东尚科信息技术有限公司 用户属性的预测方法和装置
US20200210893A1 (en) * 2017-07-25 2020-07-02 The University Of Tokyo Learning Method, Learning Program, Learning Device, and Learning System
CN110020147A (zh) * 2017-11-29 2019-07-16 北京京东尚科信息技术有限公司 模型生成、评论识别的方法、系统、设备及存储介质
US20200097709A1 (en) * 2017-12-12 2020-03-26 Tencent Technology (Shenzhen) Company Limited Classification model training method, server, and storage medium
CN110046656A (zh) * 2019-03-28 2019-07-23 南京邮电大学 基于深度学习的多模态场景识别方法
CN110414432A (zh) * 2019-07-29 2019-11-05 腾讯科技(深圳)有限公司 对象识别模型的训练方法、对象识别方法及相应的装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582351A (zh) * 2020-04-30 2020-08-25 北京百度网讯科技有限公司 分类模型评价指标的确定方法、装置、设备及介质
CN111582351B (zh) * 2020-04-30 2023-09-22 北京百度网讯科技有限公司 分类模型评价指标的确定方法、装置、设备及介质
CN113055381A (zh) * 2021-03-12 2021-06-29 山东大学 一种基于页型网络实现物联网DDoS流量的检测方法、设备及存储介质

Also Published As

Publication number Publication date
CN111079813B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
JP7166322B2 (ja) モデルを訓練するための方法、装置、電子機器、記憶媒体およびコンピュータプログラム
EP3916587A1 (en) Method and apparatus for recommending multimedia resource, electronic device and storage medium
CN111143686B (zh) 资源推荐方法及装置
CN111046257B (zh) 一种会话推荐方法、装置以及电子设备
CN110826634B (zh) 图像目标检测模型的训练方法、装置、电子设备及存储介质
CN111259222B (zh) 物品推荐方法、系统、电子设备及存储介质
CN111598249B (zh) 确定近似量子门的方法、装置、经典计算机和存储介质
CN111598246B (zh) 量子吉布斯态生成方法、装置及电子设备
CN111242306A (zh) 量子主成分分析的方法、装置、电子设备以及计算机可读存储介质
CN111737954A (zh) 文本相似度确定方法、装置、设备和介质
CN110706147B (zh) 图像处理的环境确定方法、装置、电子设备和存储介质
CN111598247A (zh) 量子吉布斯态生成方法、装置及电子设备
CN111079813A (zh) 基于模型并行的分类模型计算方法和装置
CN111966361A (zh) 用于确定待部署模型的方法、装置、设备及其存储介质
CN112529180A (zh) 模型蒸馏的方法和装置
CN112631775A (zh) 模型训练方法、装置、电子设备和计算机可读存储介质
CN111563198A (zh) 一种物料召回方法、装置、设备及存储介质
CN112541513B (zh) 一种模型训练方法、装置、设备及存储介质
CN110851726A (zh) 兴趣点选择方法、装置以及电子设备
CN111694648B (zh) 一种任务调度方法、装置以及电子设备
KR20220038607A (ko) 내적 연산 구현 방법, 장치, 전자 기기 및 기록 매체
CN111311000B (zh) 用户消费行为预测模型训练方法、装置、设备及存储介质
CN112560928B (zh) 负样本挖掘方法、装置、电子设备及存储介质
CN113656689B (zh) 模型生成方法和网络信息的推送方法
CN112346512A (zh) 时间同步方法和装置

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