用于训练机器学习模型的方法、装置、设备和介质制造方法及图纸

技术编号:36396985 阅读:10 留言:0更新日期:2023-01-18 10:02
提供了用于训练机器学习模型的方法、装置、设备和介质。机器学习模型包括第一子模型和第二子模型,第一子模型位于计算系统中的第一计算节点,并且第二子模型位于计算系统中的第二计算节点。在该方法中,在用于训练机器学习模型的训练阶段中并且在第一计算节点处,接收用于训练机器学习模型的第一组训练数据。从第二计算节点获取第二子模型。分别向第一子模型和获取的第二子模型输入第一组训练数据,以确定用于更新第一子模型的第一更新参数和用于更新第二子模型的第二更新参数。向第二计算节点传输第二更新参数。以此方式,可以预先获取将被使用的子模型,并且可以降低训练过程期间的数据传输量。间的数据传输量。间的数据传输量。

【技术实现步骤摘要】
用于训练机器学习模型的方法、装置、设备和介质


[0001]本公开的示例实施方式总体涉及机器学习,特别地涉及用于训练机器学习模型的方法、装置、设备和计算机可读存储介质。

技术介绍

[0002]可以利用机器学习模型来执行多种应用环境中的任务。随着待处理任务的复杂化,机器学习模型的结构也变得更加复杂并且大小也随之增加,这导致难以在单一的计算节点处训练机器学习模型。目前已经提出了在多个计算节点处训练机器学习模型的分布式训练方式,然而,在训练期间需要在各个计算节点之间传输训练数据。传输过程一方面需要占用大量带宽,另一方面阻塞式的训练过程导致各个计算节点不得不等待接收到训练数据之后,才能确定模型的更新参数。此时,如何以更为有效的方式来利用多个计算节点训练机器学习模型,成为一个亟待解决的问题。

技术实现思路

[0003]在本公开的第一方面,提供了一种用于训练机器学习模型的方法。机器学习模型包括第一子模型和第二子模型,第一子模型位于计算系统中的第一计算节点,并且第二子模型位于计算系统中的第二计算节点。在该方法中,在第一计算节点处,接收用于训练机器学习模型的第一组训练数据。从第二计算节点获取第二子模型。分别向第一子模型和获取的第二子模型输入第一组训练数据,以确定用于更新第一子模型的第一更新参数和用于更新第二子模型的第二更新参数。
[0004]在本公开的第二方面,提供了一种用于训练机器学习模型的装置。在此,机器学习模型包括第一子模型和第二子模型,第一子模型位于计算系统中的第一计算节点,并且第二子模型位于计算系统中的第二计算节点。该装置包括:接收模块,被配置用于在第一计算节点处,接收用于训练机器学习模型的第一组训练数据;获取模块,被配置用于从第二计算节点获取第二子模型;确定模块,被配置用于分别向第一子模型和获取的第二子模型输入第一组训练数据,以确定用于更新第一子模型的第一更新参数和用于更新第二子模型的第二更新参数;以及传输模块,被配置用于向第二计算节点传输第二更新参数。
[0005]在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。指令在由至少一个处理单元执行时使设备执行第一方面的方法。
[0006]在本公开的第四方面,提供了一种计算机可读存储介质。介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面的方法。
[0007]应当理解,本内容部分中所描述的内容并非旨在限定本公开的实施方式的关键特征或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的描述而变得容易理解。
可以表示各个数据之间的关联关系。例如,可以基于目前已知的和/或将在未来开发的多种技术方案来获取上述关联关系。
[0026]可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
[0027]可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
[0028]例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
[0029]作为一种可选的但非限制性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹出窗口的方式,弹出窗口中可以以文字的方式呈现提示信息。此外,弹出窗口中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信息的选择控件。
[0030]可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。
[0031]在此使用的术语“响应于”表示相应的事件发生或者条件得以满足的状态。将会理解,响应于该事件或者条件而被执行的后续动作的执行时机,与该事件发生或者条件成立的时间,二者之间未必是强关联的。例如,在某些情况下,后续动作可在事件发生或者条件成立时立即被执行;而在另一些情况下,后续动作可在事件发生或者条件成立后经过一段时间才被执行。
[0032]示例环境
[0033]图1示出了本公开的实现方式能够在其中实现的示例环境100的框图。在图1的环境100中,可以利用训练数据(例如,标记(token))112来训练机器学习模型110。在此,机器学习模型110可以是基于混合专家系统(Mixture of Experts,缩写MoE)实现的模型。MoE可以将任务分解为若干子任务,在每个子任务上训练相应的子模型(也称为专家模型)。可以利用门控模型(Gating Model)来确定将要激活哪个子模型。如图1所示,基于MoE的机器学习模型110可以包括上游模型120、门控模型122和多个子模型130、132、

、以及134。进一步,可以将机器学习模型110的输出作为下游模型114的输入。
[0034]由于训练开销的增加,难以在单一计算节点处训练机器学习模型110。目前已经开发出了“以专家为中心(expert

centric)”的技术方案,以便在多个计算节点处分别训练各个子模型。简言之,“以专家为中心”的技术方案是指分别在多个计算节点处部署多个子模型,子模型的位置固定不变并且在各个计算节点之间传输训练数据。图2示出了根据一个技术方案的用于训练机器学习模型的过程的框图200。如图2所示,可以在计算节点210处部署并且训练子模型130,可以在计算节点220处部署并且训练子模型132。具体地,可以向计算节点210输入数据0和数据1,并且向计算节点220输入数据2和数据3。
[0035]在训练过程中,各个子模型需要利用各个数据以便完成训练过程。此时,对于某个计算节点而言,需要向其他计算节点传输该计算节点本地处的训练数据。例如,计算节点
210需要向计算节点220传输数据0,以便在计算节点220处利用数据0和数据3确定子模型132的更新参数。又例如,计算节点220需要向计算节点210传输数据2,以便在计算节点220处利用数据1和数据2确定子模型130的更新参数。此时,需要在计算节点210和220之间执行“全量(all

to

all)”通信230,也即,将计算节点处的全部数据发送至全部其他计算节点。进一步,在已经确定各个子模型的更新参数之后,也需要执行“全量”通信232,以便向各个子模型所在的计算节点返回响应的更新参数。
[0036]将会理解,图2仅示意性示出了两个计算节点210和220之间的通信,当存在更多计算节点时,多个计算节点之间的通信将会占用大量通信带宽。进一步,由于各个子模型需本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于训练机器学习模型的方法,所述机器学习模型包括第一子模型和第二子模型,所述第一子模型位于计算系统中的第一计算节点,并且所述第二子模型位于所述计算系统中的第二计算节点,所述方法包括:在所述第一计算节点处,接收用于训练所述机器学习模型的第一组训练数据;从所述第二计算节点获取所述第二子模型;分别向所述第一子模型和获取的所述第二子模型输入所述第一组训练数据,以确定用于更新所述第一子模型的第一更新参数和用于更新所述第二子模型的第二更新参数;以及向所述第二计算节点传输所述第二更新参数。2.根据权利要求1的所述方法,其中获取所述第二子模型包括:在用于训练所述机器学习模型的训练阶段的开始时间点,从所述第二计算节点获取所述第二子模型。3.根据权利要求1的所述方法,其中获取所述第二子模型包括:响应于确定所述第一计算节点和所述第二计算节点两者位于所述计算系统中的第一计算设备,从所述第二计算节点的存储器向所述第一计算节点的存储器写入所述第二子模型。4.根据权利要求3的所述方法,其中向所述第一计算节点的所述存储器写入所述第二子模型包括:基于所述第一计算节点的所述存储器的存储器容量和所述第二子模型的大小,确定所述第一计算节点的所述存储器可容纳的子模型的阈值数量;以及响应于确定所述第一计算节点的所述存储器中的子模型的数量低于所述阈值数量,向所述第一计算节点的所述存储器写入所述第二子模型。5.根据权利要求4的所述方法,其中所述第一计算节点的所述存储器包括所述机器学习模型的第三子模型,所述方法进一步包括:响应于确定所述第一计算节点的所述存储器中的子模型的所述数量等于所述阈值数量,响应于确定所述第一计算节点的所述存储器中的所述第三子模型的第三更新参数已经被传输,从所述第一计算节点的所述存储器释放所述第三子模型;以及向所述第一计算节点的所述存储器写入所述第二子模型。6.根据权利要求4的所述方法,其中所述第一计算设备进一步包括第三计算节点,以及向第一计算节点的所述存储器写入所述第二子模型进一步包括:响应于接收到来自所述第三计算节点的读取所述第二子模型的请求,确定分别由所述第一计算节点和所述第三计算节点读取所述第二子模型的顺序;以及基于所述顺序来分别由所述第一计算节点和所述第三计算节点读取所述第二子模型,以便向所述第一计算节点的所述存储器和所述第三计算节点的所述存储器的写入所述第二子模型。7.根据权利要求3的所述方法,其中获取所述第二子模型进一步包括:响应于确定所述第一计算节点和所述第二计算节点分别位于所述计算系统中的所述第一计算设备和第二计算设备,经由所述第一计算设备和所述第二计算设备之间的第一类型的通信链路,从所述第二计算设备的存储器向所述第一计算设备的存储器写入所述第二子模型;以及经由所述第一计算设备和所述第一计算节点之间的第二类型的通信链路,从所述第一
计算设备的所述存储器向所述第一计算节点的所述存储器写入所述第二子模型。8.根据权利要求7的所述方法,其中所述第一计算设备进一步包括第三计算节点,以及所述方法进一步包括:响应于来自所述第三计算节点的请求,经由所述第一计算设备和所述第三计算节点之间的第二类型的通信链路,从所述...

【专利技术属性】
技术研发人员:江逸敏刘俊材朱亦博
申请(专利权)人:脸萌有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1