CN114429195A - 混合专家模型训练的性能优化方法和装置 - Google Patents

混合专家模型训练的性能优化方法和装置 Download PDF

Info

Publication number
CN114429195A
CN114429195A CN202210071043.3A CN202210071043A CN114429195A CN 114429195 A CN114429195 A CN 114429195A CN 202210071043 A CN202210071043 A CN 202210071043A CN 114429195 A CN114429195 A CN 114429195A
Authority
CN
China
Prior art keywords
expert
shadow
server
current
input data
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.)
Pending
Application number
CN202210071043.3A
Other languages
English (en)
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202210071043.3A priority Critical patent/CN114429195A/zh
Priority to PCT/CN2022/082223 priority patent/WO2023137858A1/zh
Publication of CN114429195A publication Critical patent/CN114429195A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种混合专家模型训练的性能优化方法和装置,涉及神经网络技术领域,所述方法包括:在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成。本发明能够提高混合专家模型的训练速度和效率,减少混合专家模型在训练时所耗费的资源。

Description

混合专家模型训练的性能优化方法和装置
技术领域
本发明涉及神经网络技术领域,尤其涉及一种混合专家模型训练的性能优化方法和装置。
背景技术
对于神经网络中的混合专家模型,现有的训练方式主要有Zero Optimizer、Gshard和FastMoE等方式。但是,这些主流的训练方式在混合专家模型的训练过程中需要耗费大量的时间,而且也需要耗费较多的计算资源和电能,在速度和效率上还有进步的空间。因此,有必要提出一种混合专家模型训练的性能优化方法,以提高混合专家模型的训练速度和效率,减少混合专家模型在训练时所耗费的资源,进而使混合专家模型在训练时能够更快地收敛至稳定状态,尽早投入到实际应用中。
发明内容
本发明的一个目的在于提供一种混合专家模型训练的性能优化方法,以解决混合专家模型的训练过程耗费大量时间、计算资源和电能的问题。本发明的另一个目的在于提供一种混合专家模型训练的性能优化装置。本发明的再一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。
为了达到以上目的,本发明一方面公开了一种混合专家模型训练的性能优化方法,所述方法包括:
在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成;
所述判定当前专家是否被设置为影子专家具体包括:
计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间;
计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间;
根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家。
可选的,所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间,包括:
获取所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间;
根据所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,得到所述每个服务器在所述迭代计算中的第一延迟时间;
在所述每个服务器在所述迭代计算中的第一延迟时间中,选取所述第一延迟时间中的最大值作为所述第一总延迟时间。
可选的,所述获取所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,包括:
根据所述每个服务器的第一输入数据数量、隐层尺寸比例、所述混合专家模型的特征向量长度和计算吞吐量,得到所述第一计算时间;
根据所述每个服务器的第一输入数据数量、所述混合专家模型的特征向量长度和网络带宽,得到所述第一通信时间。
可选的,所述根据所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,得到所述每个服务器在所述迭代计算中的第一延迟时间,包括:
将所述每个服务器在所述迭代计算中的第一计算时间和第一通信时间相加,得到所述每个服务器在所述迭代计算中的第一延迟时间。
可选的,所述计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间,包括:
获取将所述当前专家添加至所述影子专家集合后,所述混合专家模型中的每个服务器在所述迭代计算中的第二计算时间和第二通信时间;
根据所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间,得到所述每个服务器在所述迭代计算中的第二延迟时间;
在所述每个服务器在所述迭代计算中的第二延迟时间中,选取所述第二延迟时间中的最大值作为所述第二总延迟时间。
可选的,所述获取将所述当前专家添加至所述影子专家集合后,所述混合专家模型中的每个服务器在所述迭代计算中的第二计算时间和第二通信时间,包括:
根据所述每个服务器的第二输入数据数量、隐层尺寸比例、所述混合专家模型的特征向量长度和计算吞吐量,得到所述第二计算时间;
根据所述影子专家集合中的影子专家的数量、隐层尺寸比例、所述混合专家模型的特征向量长度和网络带宽,得到所述第二通信时间。
可选的,所述根据所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间,得到所述每个服务器在所述迭代计算中的第二延迟时间,包括:
将所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间相加,得到所述每个服务器在所述迭代计算中的第二延迟时间。
可选的,所述根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家,包括:
判定所述第二总延迟时间是否小于第一总延迟时间;若是,则判定将所述当前专家设置为影子专家;若否,则判定不将所述当前专家设置为影子专家。
可选的,在所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间之前,还包括:
获取所述所有专家中的每一个的输入数据数量,根据所述所有专家中的每一个的输入数据数量,对所述所有专家由大到小进行排序,以按照所述排序后的顺序,依次对所述所有专家中的每一个,判定当前专家是否被设置为影子专家。
可选的,在所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间之前,还包括为所述混合专家模型中所有专家中的每一个匹配输入数据的过程:
对于所述混合专家模型的所有输入数据中的每一个,计算所述输入数据与所述混合专家模型中所有专家中的每一个的匹配分数,将所述输入数据与匹配分数最高的专家匹配;
对于所述混合专家模型中所有专家中的每一个,判断所述专家匹配的输入数据中经过上层网络的输入数据的数量是否小于第一预设数量;若是,结束为所述专家匹配输入数据的过程;若否,从所述经过上层网络的输入数据中选取匹配分数最高的第一预设数量的输入数据;
将未被选取的经过上层网络的输入数据中的每一个重新匹配至匹配分数最高的、不通过上层网络进行通信的专家。
可选的,通过以下过程确定所述第一预设数量:
根据上层网络带宽、下层网络带宽、每个下层网络中的每个服务器所需要发送的输入数据的数量和每个下层网络中的专家数,确定所述第一预设数量。
可选的,在所述根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家之后,还包括:
按预设分组方式对所述混合专家模型中所有专家所在的服务器进行分组得到多个服务器组;
对所述多个服务器组中的每一个,将当前服务器组接收其他服务器组发送的输入数据的过程、所述当前服务器组计算其他服务器组发送的输入数据的过程以及所述当前服务器组将计算结果发送回所述其他服务器组的过程按照各过程的先后顺序的依赖关系分配至多个线程上。
可选的,所述预设分组方式为基于成对交换算法或成组交换算法的分组方式。
可选的,所述多个线程,包括预设的第一线程和第二线程。
可选的,所述将当前服务器组接收其他服务器组发送的输入数据的过程、所述当前服务器组计算其他服务器组发送的输入数据的过程以及所述当前服务器组将计算结果发送回所述其他服务器组的过程按照各过程的先后顺序的依赖关系分配至多个线程上,具体包括:
将当前服务器组接收其他服务器组发送的输入数据的过程和所述当前服务器组将计算结果发送回其他服务器组的过程按照各过程的先后顺序的依赖关系分配至所述第一线程上,将当前服务器组计算其他服务器组发送的输入数据的过程按照各过程的先后顺序的依赖关系分配至所述第二线程上。
可选的,进一步包括迭代计算过程:
对影子专家集合中的每个影子专家进行复制得到影子模型,并将所有影子专家的影子模型发送至混合专家模型中的其他服务器;
通过混合专家模型中的所有服务器上的专家和影子模型基于对应的输入数据进行计算,得到专家和影子模型的梯度,将影子模型的梯度返回至对应的影子专家的服务器;
根据接收的所有影子模型的梯度得到影子专家的梯度,根据影子专家的梯度和其他专家的梯度得到综合梯度,根据综合梯度对所有专家进行更新。
为了达到以上目的,本发明的另一方面公开了一种混合专家模型训练的性能优化装置,所述装置包括:
影子专家设置模块,用于在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成;。
影子专家判定模块,用于计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间;计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间;所述影子专家判定模块,还用于根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法。
本发明提供的混合专家模型训练的性能优化方法和装置,通过在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成,能够减少训练过程中混合专家模型中的服务器中的单个专家处理的输入数据个数,进而减少服务器中的单个专家的处理负荷,同时能够减少输入数据跨服务器传输的通信次数,因而能够提高混合专家模型的训练速度和效率,减少混合专家模型在训练时所耗费的资源;通过计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间,能够得到基于当前影子专家集合的混合专家模型在一次训练过程中即一次迭代计算中所耗费的时间;通过计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间,能够得到将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型在一次训练过程中即一次迭代计算中所耗费的时间;通过根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家,能够判断出将当前专家设置为影子专家后,是否能够减少混合专家模型在一次训练过程中所耗费的时间,进而提高混合专家模型的训练速度和效率。综上所述,本发明提供的混合专家模型训练的性能优化方法和装置,能够提高混合专家模型的训练速度和效率,减少混合专家模型在训练时所耗费的资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例的一种混合专家模型训练的性能优化方法;
图2示出了本发明实施例的一种可选的步骤S101的具体方法流程;
图3示出了本发明实施例的一种可选的步骤S102的具体方法流程;
图4示出了本发明实施例的一种混合专家模型训练的性能优化装置的模块示意图;
图5示出了本发明实施例的一种可选的混合专家模型所涉及的网络架构;
图6示出了本发明实施例的一种可选的线程分配图;
图7示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
本发明实施例公开了一种混合专家模型训练的性能优化方法。所述方法包括:
在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成。
其中,所述判定当前专家是否被设置为影子专家具体包括:
计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间。
计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间。
根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家。
可以理解的是,在具体实施时,如图1所示,该方法具体包括如下步骤:
在一次迭代计算前,对于所述混合专家模型中的一个专家,分别执行步骤S101和S102。
S101:计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间。
S102:计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间。
之后,执行步骤S103。
S103:根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家。
若是,执行步骤S104。
S104:将当前专家添加至影子专家集合。
若否,执行步骤S105。
S105:不将当前专家添加至影子专家集合。
之后,执行步骤S106。
S106:判断是否所有专家都被判定完成。
若是,则结束所述方法的步骤;若否,则继续判定下一个专家。
本发明提供的混合专家模型训练的性能优化方法和装置,通过在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成,能够减少训练过程中混合专家模型中的服务器中的单个专家处理的输入数据个数,进而减少服务器中的单个专家的处理负荷,同时能够减少输入数据跨服务器传输的通信次数,因而能够提高混合专家模型的训练速度和效率,减少混合专家模型在训练时所耗费的资源;通过计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间,能够得到基于当前影子专家集合的混合专家模型在一次训练过程中即一次迭代计算中所耗费的时间;通过计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间,能够得到将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型在一次训练过程中即一次迭代计算中所耗费的时间;通过根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家,能够判断出将当前专家设置为影子专家后,是否能够减少混合专家模型在一次训练过程中所耗费的时间,进而提高混合专家模型的训练速度和效率。综上所述,本发明提供的混合专家模型训练的性能优化方法和装置,能够提高混合专家模型的训练速度和效率,减少混合专家模型在训练时所耗费的资源。
在一个可选的实施方式中,如图2所示,所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间,具体包括如下步骤:
S201:获取所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间。
S202:根据所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,得到所述每个服务器在所述迭代计算中的第一延迟时间。
S203:在所述每个服务器在所述迭代计算中的第一延迟时间中,选取所述第一延迟时间中的最大值作为所述第一总延迟时间。
具体的,一轮迭代计算,对应所述基于当前影子专家集合的混合专家模型的一次训练过程,包括前向计算和后向计算,所述前向计算和后向计算的过程和内容,为本领域公知常识,在这里不再赘述。
示例性的,所述混合专家模型可以位于但不局限于Transformer模型中的前馈层等模块,所述混合专家模型也可以位于神经网络中的其他模块或层,本发明实施例对此不做限制。
示例性的,所述第一计算时间为所述基于当前影子专家集合的混合专家模型的前向计算和后向计算中涉及的矩阵乘运算的时间的总和,所述运算方式并不局限于矩阵乘运算,本领域技术人员可以根据实际情况选择其他运算方式。
示例性的,所述第一通信时间,为所述基于当前影子专家集合的混合专家模型中的当前服务器将目标输入数据发送到能处理目标输入数据的专家所在的服务器的通信时间和将处理后的目标输入数据收回至所述当前服务器的通信时间的总和。
示例性的,所述每个服务器在所述迭代计算中的第一延迟时间,为所述基于当前影子专家集合的混合专家模型的每个服务器在一轮迭代计算中所花费的时间。
具体的,所述第一总延迟时间为所述基于当前影子专家集合的混合专家模型中在一轮迭代计算中所花费时间最长的服务器所花费的时间,即将当前影子专家集合中的所有影子专家复制后发送至混合专家模型中其他的所有服务器上后,混合专家模型的所有服务器在当前迭代计算中所花费的时间中最长的时间。
通过计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间,能够得到基于当前影子专家集合的混合专家模型在一次训练过程中即一次迭代计算中所耗费的时间。
在一个可选的实施方式中,所述获取所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,包括:
根据所述每个服务器的第一输入数据数量、隐层尺寸比例、所述混合专家模型的特征向量长度和计算吞吐量,得到所述第一计算时间;
根据所述每个服务器的第一输入数据数量、所述混合专家模型的特征向量长度和网络带宽,得到所述第一通信时间。
示例性的,所述第一计算时间为
Figure BDA0003482091270000091
其中,Bw为第一输入数据数量,α为隐层尺寸比例,H为所述混合专家模型的特征向量长度,P为计算吞吐量。因为在本发明实施例中,第一计算时间为前向计算和后向计算中涉及的矩阵乘运算的时间的总和,而前向计算需要进行一次矩阵乘操作,后向需要进行两次矩阵乘操作,总计有三次矩阵乘操作,而一次矩阵乘操作的时间为
Figure BDA0003482091270000092
总计有三次矩阵乘操作,所以第一计算时间为
Figure BDA0003482091270000101
示例性的,所述第一通信时间为
Figure BDA0003482091270000102
其中,Bw为第一输入数据数量,H为所述混合专家模型的特征向量长度,Wnet为网络带宽。因为在本发明实施例中,第一通信时间为当前服务器将目标输入数据发送到能处理目标输入数据的专家所在的服务器的通信时间和将处理后的目标输入数据收回至所述当前服务器的通信时间的总和,而前向计算和后向计算需分别进行两次将目标输入数据发送到能处理目标输入数据的专家所在的服务器的通信和将处理后的目标输入数据收回至所述当前服务器的通信,总计为四次通信,而一次通信的时间为
Figure BDA0003482091270000103
所以第一通信时间为
Figure BDA0003482091270000104
在一个可选的实施方式中,所述根据所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,得到所述每个服务器在所述迭代计算中的第一延迟时间,包括:
将所述每个服务器在所述迭代计算中的第一计算时间和第一通信时间相加,得到所述每个服务器在所述迭代计算中的第一延迟时间。
示例性的,所述第一延迟时间表示为
Figure BDA0003482091270000105
对应的,所述第一总延迟时间表示为如下式子:
Figure BDA0003482091270000106
其中,imbl表示负载不均衡性(imbalance),w表示服务器,B表示第一输入数据数量参数,Latimbl(B)表示第一总延迟时间。
在一个可选的实施方式中,如图3所示,所述计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间,具体包括如下步骤:
S301:获取将所述当前专家添加至所述影子专家集合后,所述混合专家模型中的每个服务器在所述迭代计算中的第二计算时间和第二通信时间;
S302:根据所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间,得到所述每个服务器在所述迭代计算中的第二延迟时间;
S303:在所述每个服务器在所述迭代计算中的第二延迟时间中,选取所述第二延迟时间中的最大值作为所述第二总延迟时间。
具体的,一轮迭代计算,对应将所述当前专家添加至所述影子专家集合后的所述混合专家模型的一次训练过程,包括前向计算和后向计算,所述前向计算和后向计算的过程和内容,为本领域公知常识,在这里不再赘述。
示例性的,所述混合专家模型可以位于但不局限于Transformer模型中的前馈层等模块,所述混合专家模型也可以位于神经网络中的其他模块或层,本发明实施例对此不做限制。
示例性的,所述第二计算时间为将所述当前专家添加至所述影子专家集合后的所述混合专家模型中的前向计算和后向计算中涉及的矩阵乘运算的时间的总和,所述运算方式并不局限于矩阵乘运算,本领域技术人员可以根据实际情况选择其他运算方式。
示例性的,所述第二通信时间,为将所述当前专家添加至所述影子专家集合后的所述混合专家模型的当前服务器将当前专家作为影子专家进行复制后得到的影子模型发送至混合专家模型中的其他服务器的通信时间。至于目标输入数据发送到能处理目标输入数据的专家所在的服务器的通信时间和将处理后的目标输入数据收回至所述当前服务器的通信时间的总和,由于假定了已经将当前专家作为影子专家进行复制后得到的影子模型发送至混合专家模型中,因而其他服务器上的目标输入数据无需再通过跨服务器的通信传送到对应的专家,只需在服务器内部传送到影子模型中处理即可,所以在这里目标输入数据发送到能处理目标输入数据的专家所在的服务器的通信时间和将处理后的目标输入数据收回至所述当前服务器的通信时间的总和忽略不计,为零。
示例性的,所述每个服务器在所述迭代计算中的第二延迟时间,为将所述当前专家添加至所述影子专家集合后的所述混合专家模型的每个服务器在一轮迭代计算中所花费的时间。
具体的,所述第二总延迟时间为将所述当前专家添加至所述影子专家集合后的所述混合专家模型中在一轮迭代计算中所花费时间最长的服务器所花费的时间,即将所述当前专家添加至所述影子专家集合后,并将已添加当前专家的所述影子专家集合中的所有影子专家复制后发送至混合专家模型中其他的所有服务器上后,混合专家模型的所有服务器在当前迭代计算中所花费的时间中最长的时间。
通过计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间,能够得到将所述当前专家添加至所述影子专家集合后的所述混合专家模型在一次训练过程中即一次迭代计算中所耗费的时间。
在一个可选的实施方式中,所述获取将所述当前专家添加至所述影子专家集合后,所述混合专家模型中的每个服务器在所述迭代计算中的第二计算时间和第二通信时间,包括:
根据所述每个服务器的第二输入数据数量、隐层尺寸比例、所述混合专家模型的特征向量长度和计算吞吐量,得到所述第二计算时间;
根据所述影子专家集合中的影子专家的数量、隐层尺寸比例、所述混合专家模型的特征向量长度和网络带宽,得到所述第二通信时间。
示例性的,所述第二计算时间为
Figure BDA0003482091270000121
其中,B'w为第二输入数据数量,α为隐层尺寸比例,H为所述混合专家模型的特征向量长度,P为计算吞吐量。因为在本发明实施例中,第二计算时间为前向计算和后向计算中涉及的矩阵乘运算的时间的总和,而前向计算需要进行一次矩阵乘操作,后向需要进行两次矩阵乘操作,总计有三次矩阵乘操作,而一次矩阵乘操作的时间为
Figure BDA0003482091270000122
总计有三次矩阵乘操作,所以第一计算时间为
Figure BDA0003482091270000123
具体的,所述第二输入数据数量B'w,之所以与本发明实施例中的第一输入数据数量Bw不同,是因为将当前专家作为影子专家进行复制得到影子模型,并将所有影子专家的影子模型发送至混合专家模型中的其他服务器后,所有在其他服务器上的、原本对应于当前专家的输入数据都无需被通过跨服务器的通信发送至所述当前专家所在的当前服务器处理,而只需在服务器内部发送至影子模型处理,所以此时重新计算每个服务器所需处理的输入数量得到第二输入数据数量B'w,需要注意的是,所述重新计算每个服务器所需处理的输入数量得到第二输入数据数量B'w的步骤,为本领域常规技术手段,这里不再赘述。
示例性的,所述第二通信时间为
Figure BDA0003482091270000124
其中,r为所述影子专家集合中的影子专家的数量,α为隐层尺寸比例,H为所述混合专家模型的特征向量长度,Wnet为网络带宽。
在一个可选的实施方式中,所述根据所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间,得到所述每个服务器在所述迭代计算中的第二延迟时间,包括:
将所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间相加,得到所述每个服务器在所述迭代计算中的第二延迟时间。
示例性的,所述第二延迟时间表示为
Figure BDA0003482091270000131
对应的,所述第二总延迟时间表示为如下式子:
Figure BDA0003482091270000132
其中,shadow表示影子,w表示服务器,B'表示第二输入数据数量参数,Latshadow(r,B')表示第二总延迟时间。
在一个可选的实施方式中,所述根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家,包括:
判定所述第二总延迟时间是否小于第一总延迟时间;若是,则判定将所述当前专家设置为影子专家;若否,则判定不将所述当前专家设置为影子专家。
通过根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家,能够判断出将当前专家设置为影子专家后,是否能够减少混合专家模型在一次训练过程中所耗费的时间,进而提高混合专家模型的训练速度和效率。
在一个可选的实施方式中,在所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间之前,还包括:
获取所述所有专家中的每一个的输入数据数量,根据所述所有专家中的每一个的输入数据数量,对所述所有专家由大到小进行排序,以按照所述排序后的顺序,依次对所述所有专家中的每一个,判定当前专家是否被设置为影子专家。
通过根据所述所有专家中的每一个的输入数据数量,对所述所有专家由大到小进行排序,能够减少后续判定和设置影子专家的计算复杂度,进而减少混合专家模型训练的性能优化过程的时间,也间接提高了混合专家模型的训练效率并减少了所耗费的计算资源。
在一个可选的实施方式中,进一步包括迭代计算过程:
对影子专家集合中的每个影子专家进行复制得到影子模型,并将所有影子专家的影子模型发送至混合专家模型中的其他服务器;
通过混合专家模型中的所有服务器上的专家和影子模型基于对应的输入数据进行计算,得到专家和影子模型的梯度,将影子模型的梯度返回至对应的影子专家的服务器;
根据接收的所有影子模型的梯度得到影子专家的梯度,根据影子专家的梯度和其他专家的梯度得到综合梯度,根据综合梯度对所有专家进行更新。
通过根据综合梯度对所有专家进行更新,能够提高混合专家模型中的专家根据输入计算出的输出的准确性,是神经网络中模型训练的必经过程,对于迭代计算过程的具体内容,为本领域现有技术中的公知常识,这里不再赘述。
在一个可选的实施方式中,在所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间之前,还包括为所述混合专家模型中所有专家中的每一个匹配输入数据的过程:
对于所述混合专家模型的所有输入数据中的每一个,计算所述输入数据与所述混合专家模型中所有专家中的每一个的匹配分数,将所述输入数据与匹配分数最高的专家匹配;
对于所述混合专家模型中所有专家中的每一个,判断所述专家匹配的输入数据中经过上层网络的输入数据的数量是否小于第一预设数量;若是,结束为所述专家匹配输入数据的过程;若否,从所述经过上层网络的输入数据中选取匹配分数最高的第一预设数量的输入数据;
将未被选取的经过上层网络的输入数据中的每一个重新匹配至匹配分数最高的、不通过上层网络进行通信的专家。
示例性的,所述计算所述输入数据与所述混合专家模型中所有专家中的每一个的匹配分数,可以通过但不限于混合专家模型中现有的门网络模块实现。具体的,所述将所述输入数据与匹配分数最高的专家匹配,即为令所述输入数据被输入到匹配分数最高的专家所在的服务器中,进而可以被输入到所述匹配分数最高的专家。
示例性的,如图5所示,在本发明实施例中,所述混合专家模型所涉及的网络架构分为上层网络和下层网络。
示例性的,所述上层网络可以为一台交换机和多个与所述交换机连接的路由器构成的网络,本领域技术人员可以根据实际情况确定上层网络的布置和范围,本发明实施例对此不做限制。
示例性的,所述下层网络可以为一台路由器和多个与所述路由器连接的服务器构成的网络,本领域技术人员可以根据实际情况确定下层网络的布置和范围,本发明实施例对此不做限制。
示例性的,所述经过上层网络的输入数据,可以为原本在某个下层网络中的服务器中的、需要被传输至其他下层网络中的服务器中的专家进行处理的输入数据。对应的,不经过上层网络的输入数据,可以为原本在某个下层网络中的服务器中的、仅需要被传输至同一下层网络中的服务器中的专家进行处理的输入数据。
示例性的,所述从所述经过上层网络的输入数据中选取匹配分数最高的第一预设数量的输入数据,为在当前专家所匹配的经过上层网络的输入数据中,保留匹配分数最高的第一预设数量的输入数据,而对于其他的当前专家所匹配的经过上层网络的输入数据,则断开匹配,即不让原本其他的当前专家所匹配的经过上层网络的输入数据被传输至当前专家所在的服务器中,进而不让原本其他的当前专家所匹配的经过上层网络的输入数据被传输至当前专家。
示例性的,所述不通过上层网络进行通信的专家,即为当前被传输到所述专家的输入数据均为不经过上层网络的输入数据的专家。
具体的,所述上层网络的带宽比下层网络的带宽低。所述上层网络的带宽比下层网络的带宽低,为本领域现有技术中,用于神经网络训练的硬件特点所导致的,在此不再赘述。此外,上层网络的带宽比下层网络的带宽低,也为现有技术中为了节省通信成本所进行的网络结构设计导致的。
通过为所述混合专家模型中所有专家中的每一个匹配输入数据,能够通过减少上层网络的拥塞,提高所述混合专家模型的迭代计算的吞吐量,进而提高混合专家模型的训练速度和效率。
在一个可选的实施方式中,通过以下过程确定所述第一预设数量:
根据上层网络带宽、下层网络带宽、每个下层网络中的每个服务器所需要发送的输入数据的数量和每个下层网络中的专家数,确定所述第一预设数量。
示例性的,所述第一预设数量,通过如下式子确定:
Figure BDA0003482091270000151
其中,L表示第一预设数量,B表示每个下层网络中的每个服务器所需要发送的输入数据的数量,Wnet表示上层网络带宽,Wlocal表示下层网络带宽,M表示每个下层网络中的专家的数量。
通过设置第一预设数量,可以限定每个服务器中接收的经过上层网络的输入数据的最大数量,进而能够减少上层网络和下层网络中的延迟,从而进一步提高混合专家模型的训练速度。
在一个可选的实施方式中,在所述根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家之后,还包括:
按预设分组方式对所述混合专家模型中所有专家所在的服务器进行分组得到多个服务器组;
对所述多个服务器组中的每一个,将当前服务器组接收其他服务器组发送的输入数据的过程、所述当前服务器组计算其他服务器组发送的输入数据的过程以及所述当前服务器组将计算结果发送回所述其他服务器组的过程按照各过程的先后顺序的依赖关系分配至多个线程上。
示例性的,所述预设的分组方式,需要遵循如下原则:
分组后,所述服务器组内的服务器之间的通信要尽量快;所分的服务器组在网络结构中要有连续性,以使服务器组之间的通信速度也要尽量快,例如所分的服务器组在同一交换机子网中。需要注意的是,对服务器进行分组的方式,可由本领域技术人员根据实际情况采用现有技术中的分组方式,本发明实施例对此不做限制。
通过对服务器分组、以及将当前服务器组接收其他服务器组发送的输入数据的过程、所述当前服务器组计算其他服务器组发送的输入数据的过程以及所述当前服务器组将计算结果发送回所述其他服务器组的过程按照各过程的先后顺序的依赖关系分配至多个线程上的步骤,可以利用多线程的同步性,提高服务器之间传输输入数据的速度和效率,进而提高混合专家模型的训练速度和效率,减少混合专家模型在训练时所耗费的资源。此外,通过按照依赖关系将各过程分配至多个线程,能够避免出现死锁的情况,保证混合专家模型的迭代计算能稳定执行。
需要说明的是,本发明实施例对于所述多个线程的线程个数,不做限制,本领域技术人员可以根据实际情况确定线程的个数。
在一个可选的实施方式中,所述预设分组方式为基于成对交换算法(PairwiseExchange)或成组交换算法(Groupwise Exchange)的分组方式。需要说明的是,成对交换算法和成组交换算法为本领域的现有技术,这里不再赘述。
在一个可选的实施方式中,所述多个线程,包括预设的第一线程和第二线程。
在一个可选的实施方式中,所述将当前服务器组接收其他服务器组发送的输入数据的过程、所述当前服务器组计算其他服务器组发送的输入数据的过程以及所述当前服务器组将计算结果发送回所述其他服务器组的过程按照各过程的先后顺序的依赖关系分配至多个线程上,具体包括:
将当前服务器组接收其他服务器组发送的输入数据的过程和所述当前服务器组将计算结果发送回其他服务器组的过程按照各过程的先后顺序的依赖关系分配至所述第一线程上,将当前服务器组计算其他服务器组发送的输入数据的过程按照各过程的先后顺序的依赖关系分配至所述第二线程上。
示例性的,如图6所示,S1表示当前服务器组接收其他服务器组中的第一服务器组发送的输入数据的过程,S2表示当前服务器组接收其他服务器组中的第二服务器组发送的输入数据的过程,S3表示当前服务器组接收其他服务器组中的第三服务器组发送的输入数据的过程,R1表示当前服务器组将计算结果发送回其他服务器组中的第一服务器组的过程,R2表示当前服务器组将计算结果发送回其他服务器组中的第二服务器组的过程,R3表示当前服务器组将计算结果发送回其他服务器组中的第三服务器组的过程,C1表示当前服务器组计算其他服务器组中的第一服务器组发送的输入数据的过程,C2表示当前服务器组计算其他服务器组中的第二服务器组发送的输入数据的过程,C3表示当前服务器组计算其他服务器组中的第三服务器组发送的输入数据的过程。
具体的,所述各过程的先后顺序的依赖关系为:按照所述机器组接收其他某一机器组发送的输入数据的过程、所述机器组计算其他某一机器组发送的输入数据的过程、所述机器组将计算结果发送回其他某一机器组的过程的顺序进行调度,且所述机器组接收其他某一机器组发送的输入数据的过程、所述机器组计算其他某一机器组发送的输入数据的过程、所述机器组将计算结果发送回其他某一机器组的过程在时间上不发生重叠。
示例性的,如图6所示,对于当前服务器和其他服务器组中的第一服务器之间的通信,有S1=>C1=>R1的顺序,且S1和R1均在第一线程上执行,C1在第二线程上执行。且由图可以看出,S1、C1和R1在时间轴上并不发生任何重叠。对于S2、C2、R2以及S3、C3、R3,可以参照上述对S1、C1、R1的描述且原理相同,这里不再赘述。需要注意的是,所述第一线程和第二线程共享同一时间轴,且线程分配图可由本领域技术人员根据本领域公知常识直接看懂,对于线程分配图的原理,这里不再赘述。
需要说明的是,本发明实施例的上述说明仅为举例,并不构成对本发明的限制,当前服务器组也不仅限于和其他服务器组中的第一服务器组、第二服务器组和第三服务器组进行通信,例如,当前服务器组可以和自己通信,也可以和其他服务器组中的一第四服务器组进行通信。
基于相同原理,本发明实施例公开了一种混合专家模型训练的性能优化装置400,如图4所示,包括:
影子专家设置模块401,用于在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成;
影子专家判定模块402,用于计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间;计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间;所述影子专家判定模块402,还用于根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家。
在一个可选的实施方式中,所述影子专家判定模块402包括第一总延迟时间确定单元,用于:
获取所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间;
根据所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,得到所述每个服务器在所述迭代计算中的第一延迟时间;
在所述每个服务器在所述迭代计算中的第一延迟时间中,选取所述第一延迟时间中的最大值作为所述第一总延迟时间。
在一个可选的实施方式中,所述第一总延迟时间确定单元,用于:
根据所述每个服务器的第一输入数据数量、隐层尺寸比例、所述混合专家模型的特征向量长度和计算吞吐量,得到所述第一计算时间;
根据所述每个服务器的第一输入数据数量、所述混合专家模型的特征向量长度和网络带宽,得到所述第一通信时间。
在一个可选的实施方式中,所述第一总延迟时间确定单元,用于:
将所述每个服务器在所述迭代计算中的第一计算时间和第一通信时间相加,得到所述每个服务器在所述迭代计算中的第一延迟时间。
在一个可选的实施方式中,所述影子专家判定模块402包括第二总延迟时间确定单元,用于:
获取将所述当前专家添加至所述影子专家集合后,所述混合专家模型中的每个服务器在所述迭代计算中的第二计算时间和第二通信时间;
根据所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间,得到所述每个服务器在所述迭代计算中的第二延迟时间;
在所述每个服务器在所述迭代计算中的第二延迟时间中,选取所述第二延迟时间中的最大值作为所述第二总延迟时间。
在一个可选的实施方式中,所述第二总延迟时间确定单元,用于:
根据所述每个服务器的第二输入数据数量、隐层尺寸比例、所述混合专家模型的特征向量长度和计算吞吐量,得到所述第二计算时间;
根据所述影子专家集合中的影子专家的数量、隐层尺寸比例、所述混合专家模型的特征向量长度和网络带宽,得到所述第二通信时间。
在一个可选的实施方式中,所述第二总延迟时间确定单元,用于:
将所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间相加,得到所述每个服务器在所述迭代计算中的第二延迟时间。
在一个可选的实施方式中,所述影子专家判定模块402,还用于:
判定所述第二总延迟时间是否小于第一总延迟时间;若是,则判定将所述当前专家设置为影子专家;若否,则判定不将所述当前专家设置为影子专家。
在一个可选的实施方式中,还包括排序模块,用于:
获取所述所有专家中的每一个的输入数据数量,根据所述所有专家中的每一个的输入数据数量,对所述所有专家由大到小进行排序,以按照所述排序后的顺序,依次对所述所有专家中的每一个,判定当前专家是否被设置为影子专家。
在一个可选的实施方式中,还包括匹配模块,用于:
对于所述混合专家模型的所有输入数据中的每一个,计算所述输入数据与所述混合专家模型中所有专家中的每一个的匹配分数,将所述输入数据与匹配分数最高的专家匹配;
对于所述混合专家模型中所有专家中的每一个,判断所述专家匹配的输入数据中经过上层网络的输入数据的数量是否小于第一预设数量;若是,结束为所述专家匹配输入数据的过程;若否,从所述经过上层网络的输入数据中选取匹配分数最高的第一预设数量的输入数据;
将未被选取的经过上层网络的输入数据中的每一个重新匹配至匹配分数最高的、不通过上层网络进行通信的专家。
在一个可选的实施方式中,所述匹配模块,还用于:
根据上层网络带宽、下层网络带宽、每个下层网络中的每个服务器所需要发送的输入数据的数量和每个下层网络中的专家数,确定所述第一预设数量。
在一个可选的实施方式中,还包括线程分配模块,用于:
按预设分组方式对所述混合专家模型中所有专家所在的服务器进行分组得到多个服务器组;
对所述多个服务器组中的每一个,将当前服务器组接收其他服务器组发送的输入数据的过程、所述当前服务器组计算其他服务器组发送的输入数据的过程以及所述当前服务器组将计算结果发送回所述其他服务器组的过程按照各过程的先后顺序的依赖关系分配至多个线程上。
在一个可选的实施方式中,所述预设分组方式为基于成对交换算法或成组交换算法的分组方式。
在一个可选的实施方式中,所述多个线程,包括预设的第一线程和第二线程。
在一个可选的实施方式中,所述线程分配模块,还用于:
将当前服务器组接收其他服务器组发送的输入数据的过程和所述当前服务器组将计算结果发送回其他服务器组的过程按照各过程的先后顺序的依赖关系分配至所述第一线程上,将当前服务器组计算其他服务器组发送的输入数据的过程按照各过程的先后顺序的依赖关系分配至所述第二线程上。
在一个可选的实施方式中,进一步包括迭代计算模块,用于:
对影子专家集合中的每个影子专家进行复制得到影子模型,并将所有影子专家的影子模型发送至混合专家模型中的其他服务器;
通过混合专家模型中的所有服务器上的专家和影子模型基于对应的输入数据进行计算,得到专家和影子模型的梯度,将影子模型的梯度返回至对应的影子专家的服务器;
根据接收的所有影子模型的梯度得到影子专家的梯度,根据影子专家的梯度和其他专家的梯度得到综合梯度,根据综合梯度对所有专家进行更新。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
下面参考图7,其示出了适于用来实现本申请实施例的计算机设备700的结构示意图。
如图7所示,计算机设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的工作和处理。在RAM703中,还存储有系统700操作所需的各种程序和数据。CPU701、ROM702、以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装如存储部分708。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (19)

1.一种混合专家模型训练的性能优化方法,其特征在于,包括:
在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成;
所述判定当前专家是否被设置为影子专家具体包括:
计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间;
计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间;
根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家。
2.根据权利要求1所述的方法,其特征在于,所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间,包括:
获取所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间;
根据所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,得到所述每个服务器在所述迭代计算中的第一延迟时间;
在所述每个服务器在所述迭代计算中的第一延迟时间中,选取所述第一延迟时间中的最大值作为所述第一总延迟时间。
3.根据权利要求2所述的方法,其特征在于,所述获取所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,包括:
根据所述每个服务器的第一输入数据数量、隐层尺寸比例、所述混合专家模型的特征向量长度和计算吞吐量,得到所述第一计算时间;
根据所述每个服务器的第一输入数据数量、所述混合专家模型的特征向量长度和网络带宽,得到所述第一通信时间。
4.根据权利要求2所述的方法,其特征在于,所述根据所述基于当前影子专家集合的混合专家模型中的每个服务器在所述迭代计算中的第一计算时间和第一通信时间,得到所述每个服务器在所述迭代计算中的第一延迟时间,包括:
将所述每个服务器在所述迭代计算中的第一计算时间和第一通信时间相加,得到所述每个服务器在所述迭代计算中的第一延迟时间。
5.根据权利要求1所述的方法,其特征在于,所述计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间,包括:
获取将所述当前专家添加至所述影子专家集合后,所述混合专家模型中的每个服务器在所述迭代计算中的第二计算时间和第二通信时间;
根据所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间,得到所述每个服务器在所述迭代计算中的第二延迟时间;
在所述每个服务器在所述迭代计算中的第二延迟时间中,选取所述第二延迟时间中的最大值作为所述第二总延迟时间。
6.根据权利要求5所述的方法,其特征在于,所述获取将所述当前专家添加至所述影子专家集合后,所述混合专家模型中的每个服务器在所述迭代计算中的第二计算时间和第二通信时间,包括:
根据所述每个服务器的第二输入数据数量、隐层尺寸比例、所述混合专家模型的特征向量长度和计算吞吐量,得到所述第二计算时间;
根据所述影子专家集合中的影子专家的数量、隐层尺寸比例、所述混合专家模型的特征向量长度和网络带宽,得到所述第二通信时间。
7.根据权利要求5所述的方法,其特征在于,所述根据所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间,得到所述每个服务器在所述迭代计算中的第二延迟时间,包括:
将所述每个服务器在所述迭代计算中的第二计算时间和第二通信时间相加,得到所述每个服务器在所述迭代计算中的第二延迟时间。
8.根据权利要求1所述的方法,其特征在于,所述根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家,包括:
判定所述第二总延迟时间是否小于第一总延迟时间;若是,则判定将所述当前专家设置为影子专家;若否,则判定不将所述当前专家设置为影子专家。
9.根据权利要求1所述的方法,其特征在于,在所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间之前,还包括:
获取所述所有专家中的每一个的输入数据数量,根据所述所有专家中的每一个的输入数据数量,对所述所有专家由大到小进行排序,以按照所述排序后的顺序,依次对所述所有专家中的每一个,判定当前专家是否被设置为影子专家。
10.根据权利要求1所述的方法,其特征在于,在所述计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间之前,还包括为所述混合专家模型中所有专家中的每一个匹配输入数据的过程:
对于所述混合专家模型的所有输入数据中的每一个,计算所述输入数据与所述混合专家模型中所有专家中的每一个的匹配分数,将所述输入数据与匹配分数最高的专家匹配;
对于所述混合专家模型中所有专家中的每一个,判断所述专家匹配的输入数据中经过上层网络的输入数据的数量是否小于第一预设数量;若是,结束为所述专家匹配输入数据的过程;若否,从所述经过上层网络的输入数据中选取匹配分数最高的第一预设数量的输入数据;
将未被选取的经过上层网络的输入数据中的每一个重新匹配至匹配分数最高的、不通过上层网络进行通信的专家。
11.根据权利要求10所述的方法,其特征在于,通过以下过程确定所述第一预设数量:
根据上层网络带宽、下层网络带宽、每个下层网络中的每个服务器所需要发送的输入数据的数量和每个下层网络中的专家数,确定所述第一预设数量。
12.根据权利要求1所述的方法,其特征在于,在所述根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家之后,还包括:
按预设分组方式对所述混合专家模型中所有专家所在的服务器进行分组得到多个服务器组;
对所述多个服务器组中的每一个,将当前服务器组接收其他服务器组发送的输入数据的过程、所述当前服务器组计算其他服务器组发送的输入数据的过程以及所述当前服务器组将计算结果发送回所述其他服务器组的过程按照各过程的先后顺序的依赖关系分配至多个线程上。
13.根据权利要求12所述的方法,其特征在于,所述预设分组方式为基于成对交换算法或成组交换算法的分组方式。
14.根据权利要求12所述的方法,其特征在于,所述多个线程,包括预设的第一线程和第二线程。
15.根据权利要求14所述的方法,其特征在于,所述将当前服务器组接收其他服务器组发送的输入数据的过程、所述当前服务器组计算其他服务器组发送的输入数据的过程以及所述当前服务器组将计算结果发送回所述其他服务器组的过程按照各过程的先后顺序的依赖关系分配至多个线程上,具体包括:
将当前服务器组接收其他服务器组发送的输入数据的过程和所述当前服务器组将计算结果发送回其他服务器组的过程按照各过程的先后顺序的依赖关系分配至所述第一线程上,将当前服务器组计算其他服务器组发送的输入数据的过程按照各过程的先后顺序的依赖关系分配至所述第二线程上。
16.根据权利要求1所述的方法,其特征在于,进一步包括迭代计算过程:
对影子专家集合中的每个影子专家进行复制得到影子模型,并将所有影子专家的影子模型发送至混合专家模型中的其他服务器;
通过混合专家模型中的所有服务器上的专家和影子模型基于对应的输入数据进行计算,得到专家和影子模型的梯度,将影子模型的梯度返回至对应的影子专家的服务器;
根据接收的所有影子模型的梯度得到影子专家的梯度,根据影子专家的梯度和其他专家的梯度得到综合梯度,根据综合梯度对所有专家进行更新。
17.一种混合专家模型训练的性能优化装置,其特征在于,包括:
影子专家设置模块,用于在一次迭代计算前,对于所述混合专家模型中所有专家中的每一个,判定当前专家是否被设置为影子专家,若是,将当前专家添加至影子专家集合,继续判定下一个专家是否被设置为影子专家直至所有专家被判定完成;
影子专家判定模块,用于计算基于当前影子专家集合的混合专家模型迭代计算的第一总延迟时间;计算将所述当前专家添加至所述影子专家集合后基于当前影子专家集合的混合专家模型迭代计算的第二总延迟时间;所述影子专家判定模块,还用于根据所述第一总延迟时间和第二总延迟时间,判定是否将所述当前专家设置为影子专家。
18.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-15中任一项所述方法。
19.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-15中任一项所述方法。
CN202210071043.3A 2022-01-21 2022-01-21 混合专家模型训练的性能优化方法和装置 Pending CN114429195A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210071043.3A CN114429195A (zh) 2022-01-21 2022-01-21 混合专家模型训练的性能优化方法和装置
PCT/CN2022/082223 WO2023137858A1 (zh) 2022-01-21 2022-03-22 混合专家模型训练的性能优化方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210071043.3A CN114429195A (zh) 2022-01-21 2022-01-21 混合专家模型训练的性能优化方法和装置

Publications (1)

Publication Number Publication Date
CN114429195A true CN114429195A (zh) 2022-05-03

Family

ID=81312604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210071043.3A Pending CN114429195A (zh) 2022-01-21 2022-01-21 混合专家模型训练的性能优化方法和装置

Country Status (2)

Country Link
CN (1) CN114429195A (zh)
WO (1) WO2023137858A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116502680A (zh) * 2023-06-30 2023-07-28 清华大学 一种用于混合专家模型的并行训练方法及装置
CN117899492A (zh) * 2024-03-20 2024-04-19 成都帆点创想科技有限公司 一种游戏玩法场景的实时推荐方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657802A (zh) * 2019-01-28 2019-04-19 清华大学深圳研究生院 一种混合专家强化学习方法及系统
CN112560991A (zh) * 2020-12-25 2021-03-26 中山大学 基于混合专家模型的个性化联邦学习方法
US20210117728A1 (en) * 2019-10-18 2021-04-22 Google Llc Framework for Training Machine-Learned Models on Extremely Large Datasets
US20210232895A1 (en) * 2020-01-27 2021-07-29 Google Llc Flexible Parameter Sharing for Multi-Task Learning
WO2021248125A1 (en) * 2020-06-05 2021-12-09 Google Llc Scalable transfer learning with expert models

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109923558A (zh) * 2016-11-04 2019-06-21 谷歌有限责任公司 混合专家神经网络
US11893502B2 (en) * 2017-12-20 2024-02-06 Advanced Micro Devices, Inc. Dynamic hardware selection for experts in mixture-of-experts model
EP3828773A1 (en) * 2019-11-28 2021-06-02 GoodAI Research s.r.o. Improved artificial intelligence system
CN112162861B (zh) * 2020-09-29 2024-04-19 广州虎牙科技有限公司 线程分配方法、装置、计算机设备及存储介质
CN112199287B (zh) * 2020-10-13 2022-03-29 北京理工大学 基于强化混合专家模型的跨项目软件缺陷预测方法
CN112560996B (zh) * 2020-12-24 2024-03-05 北京百度网讯科技有限公司 用户画像识别模型训练方法、设备、可读存储介质及产品
CN113902128B (zh) * 2021-10-12 2022-09-16 中国人民解放军国防科技大学 改善边缘设备利用效率的异步联邦学习方法、装置及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657802A (zh) * 2019-01-28 2019-04-19 清华大学深圳研究生院 一种混合专家强化学习方法及系统
US20210117728A1 (en) * 2019-10-18 2021-04-22 Google Llc Framework for Training Machine-Learned Models on Extremely Large Datasets
US20210232895A1 (en) * 2020-01-27 2021-07-29 Google Llc Flexible Parameter Sharing for Multi-Task Learning
WO2021248125A1 (en) * 2020-06-05 2021-12-09 Google Llc Scalable transfer learning with expert models
CN112560991A (zh) * 2020-12-25 2021-03-26 中山大学 基于混合专家模型的个性化联邦学习方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIAAO HE等: "FASTMOE: A FASTMIXTURE-OF-EXPERTTRAINING SYSTEM", ARXIV, 24 March 2021 (2021-03-24) *
田春岐;李静;王伟;张礼庆;: "一种基于机器学习的Spark容器集群性能提升方法", 信息网络安全, no. 04, 10 April 2019 (2019-04-10) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116502680A (zh) * 2023-06-30 2023-07-28 清华大学 一种用于混合专家模型的并行训练方法及装置
CN116502680B (zh) * 2023-06-30 2023-09-19 清华大学 一种用于混合专家模型的并行训练方法及装置
CN117899492A (zh) * 2024-03-20 2024-04-19 成都帆点创想科技有限公司 一种游戏玩法场景的实时推荐方法及系统

Also Published As

Publication number Publication date
WO2023137858A1 (zh) 2023-07-27

Similar Documents

Publication Publication Date Title
CN114429195A (zh) 混合专家模型训练的性能优化方法和装置
CN106202092A (zh) 数据处理的方法及系统
Deng et al. A data and task co-scheduling algorithm for scientific cloud workflows
CN113806018A (zh) 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法
CN113918314A (zh) 任务处理方法、边缘计算设备、计算机设备、介质
Jia et al. Low latency deployment of service-based data-intensive applications in cloud-edge environment
CN117271101B (zh) 一种算子融合方法、装置、电子设备及存储介质
CN114020469A (zh) 基于边缘节点的多任务学习方法、装置、介质与设备
Nasr et al. Cloudlet scheduling based load balancing on virtual machines in cloud computing environment
CN115412401B (zh) 训练虚拟网络嵌入模型及虚拟网络嵌入的方法和装置
CN116737370A (zh) 一种多资源调度方法、系统、存储介质及终端
CN111597035A (zh) 基于多线程的仿真引擎时间推进方法及系统
CN110196879B (zh) 数据处理方法、装置、计算设备及存储介质
CN112994911A (zh) 计算卸载方法、装置及计算机可读存储介质
CN114980216B (zh) 基于移动边缘计算的依赖型任务卸载系统及方法
Li et al. On scheduling of high-throughput scientific workflows under budget constraints in multi-cloud environments
CN115774577A (zh) 一种Spark GraphX参数调优方法、装置、电子设备及存储介质
CN113988277A (zh) 用于存算一体芯片的神经网络映射方法、装置、设备
CN113177632A (zh) 一种基于流水线并行的模型训练方法、装置以及设备
CN112540844A (zh) 集群内容器调度方法、装置、存储介质和电子设备
CN116980423B (zh) 模型调度方法、装置、计算系统、设备及可读存储介质
Zhong et al. Multiobjective African Vulture Scheduling Algorithm in Green Mobile Edge Computing
CN115965070B (zh) 计算图处理方法、装置、设备、存储介质以及程序产品
CN109495541B (zh) 基于跨数据中心的云服务工作流调度方法
US11502971B1 (en) Using multi-phase constraint programming to assign resource guarantees of consumers to hosts

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