分布式训练方法、系统、设备及存储介质转让专利
申请号 : CN202010599075.1
文献号 : CN111753997B
文献日 : 2021-08-27
发明人 : 董大祥 , 巩伟宝 , 刘毅 , 于佃海 , 马艳军 , 王海峰
申请人 : 北京百度网讯科技有限公司
摘要 :
权利要求 :
1.一种分布式训练方法,所述方法基于分布式训练系统,其中,所述分布式训练系统用于根据训练数据进行模型训练,所述分布式训练系统包括:任务信息服务器、数据服务器和计算服务器,其中所述数据服务器的数目为多个,所述计算服务器的数目是可变的;
所述分布式训练方法包括:
所述任务信息服务器向多个数据服务器中的至少第一数据服务器发送第一训练请求和可用的第一计算服务器信息;
所述第一数据服务器根据所述第一训练请求向所述第一计算服务器发送第一批训练数据;
所述第一计算服务器根据所述第一批训练数据进行模型训练,并在训练完成后将模型参数发送给所述第一数据服务器进行保存,以及将所述第一批训练数据的标识信息发送给所述任务信息服务器进行记录;
其中,在各个计算服务器上不存储模型参数;所述各个计算服务器之间不存在信息交互。
2.根据权利要求1所述的方法,还包括:在开始训练之前,各个数据服务器从分布式文件系统下载训练数据和待训练的模型的信息。
3.根据权利要求1所述的方法,其中,所述各个数据服务器包括一参数服务器;
在所述第一计算服务器将训练后的模型参数发送给所述第一数据服务器之后,所述方法还包括:将所述训练后的模型参数保存在所述第一数据服务器中的第一参数服务器中。
4.根据权利要求1所述的方法,还包括:所述任务信息服务器对系统中的各个计算服务器进行探活检测,如果系统中可用计算服务器的数量不变,则令各个数据服务器中的参数服务器保存最新的模型参数。
5.根据权利要求1所述的方法,还包括:所述任务信息服务器对系统中的各个计算服务器进行探活检测,如果系统中可用计算服务器的数量发生变化,则更新可用计算服务器列表,并且令各个数据服务器中的参数服务器重新加载上一次探活检测时的模型参数。
6.根据权利要求4或5所述的方法,还包括:在所述任务信息服务器进行探活检测时,系统暂停训练处理,在完成探活检测后,所述任务信息服务器根据当前的模型参数以及记录的已完成训练的训练数据的标识信息,向各个数据服务器发送新的训练请求。
7.根据权利要求1所述的方法,其中,所述任务信息服务器为静态节点。
8.一种分布式训练系统,包括:任务信息服务器、数据服务器和计算服务器,其中所述数据服务器的数目为多个,所述计算服务器的数目是可变的,所述分布式训练系统用于根据训练数据进行模型训练;其中,所述任务信息服务器用于向各个数据服务器发送训练请求和可用计算服务器信息;
所述数据服务器用于根据接收到的训练请求向可用计算服务器发送训练数据;
所述计算服务器用于根据接收到的训练数据进行模型训练,并在训练完成后将模型参数发送给所述数据服务器进行保存,以及将训练完成的所述训练数据的标识信息发送给所述任务信息服务器进行记录;
其中,各个计算服务器不用于存储模型参数;所述各个计算服务器之间不存在信息交互。
9.根据权利要求8所述的分布式训练系统,其中,所述各个数据服务器还用于在系统开始训练之前从分布式文件系统下载训练数据和待训练的模型的信息。
10.根据权利要求8所述的分布式训练系统,其中,所述各个数据服务器包括一参数服务器,所述参数服务器用于保存所述训练后的模型参数。
11.根据权利要求8所述的分布式训练系统,其中,所述任务信息服务器还用于对系统中的各个计算服务器进行探活检测,如果系统中可用计算服务器的数量不变,所述任务信息服务器令各个数据服务器中的参数服务器保存最新的模型参数。
12.根据权利要求8所述的分布式训练系统,其中,所述任务信息服务器还用于对系统中的各个计算服务器进行探活检测,如果系统中可用计算服务器的数量发生变化,所述任务信息服务器更新可用计算服务器列表,并且令各个数据服务器中的参数服务器重新加载上一次探活检测时的模型参数。
13.根据权利要求11或12所述的分布式训练系统,其中,在所述任务信息服务器进行探活检测时,系统暂停训练处理;
所述任务信息服务器还用于在完成探活检测后,根据当前的模型参数以及记录的已完成训练的训练数据的标识信息,向各个数据服务器发送新的训练请求。
14.根据权利要求8所述的分布式训练系统,其中,所述任务信息服务器为静态节点。
15.一种电子设备,其特征在于,包括:至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至7中任一项所述的方法。
说明书 :
分布式训练方法、系统、设备及存储介质
技术领域
背景技术
而,在云上训练的场景中,训练资源的配额通常会因为整体集群的调度而动态变化,常规的
深度学习框架无法在动态计算资源的条件下正常训练,拖累了训练效率。
发明内容
括:任务信息服务器、数据服务器和计算服务器,其中所述数据服务器的数目为多个,所述
计算服务器的数目是可变的;所述分布式训练方法包括:所述任务信息服务器向多个数据
服务器中的至少第一数据服务器发送第一训练请求和可用的第一计算服务器信息;所述第
一数据服务器根据所述第一训练请求向所述第一计算服务器发送第一批训练数据;所述第
一计算服务器根据所述第一批训练数据进行模型训练,并在训练完成后将模型参数发送给
所述第一数据服务器进行保存,以及将所述第一批训练数据的标识信息发送给所述任务信
息服务器进行记录;其中,在各个计算服务器上不存储模型参数。
变的,所述分布式训练系统用于根据训练数据进行模型训练;其中,所述任务信息服务器用
于向各个数据服务器发送训练请求和可用计算服务器信息;所述数据服务器用于根据接收
到的训练请求向可用计算服务器发送训练数据;所述计算服务器用于根据接收到的训练数
据进行模型训练,并在训练完成后将模型参数发送给所述数据服务器进行保存,以及将训
练完成的所述训练数据的标识信息发送给所述任务信息服务器进行记录;其中,各个计算
服务器不用于存储模型参数。
性分布式训练系统对计算节点的及时快速的伸缩调节,使系统整体算力趋于最优。
附图说明
具体实施方式
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
务信息服务器、数据服务器和计算服务器,其中该数据服务器的数目为多个,该计算服务器
的数目是可变的;该分布式训练方法包括:
给该任务信息服务器进行记录;其中,在各个计算服务器上不存储模型参数。
算服务器发送训练数据,由计算服务器完成训练过程,并且,各个计算服务器上不存储模型
参数,而是将模型参数发送给数据服务器进行保存,使得计算节点尽可能的轻量化,在退出
或加入系统时对系统整体影响较小,并且,在各个计算服务器上不存储模型参数,占用资源
少,使得计算资源能够用于模型训练,提高计算资源的算力,此外,计算服务器还将训练数
据的标识信息发送给任务信息服务器进行记录,也就是由任务信息服务器记录训练的进
度,从而能够向系统中各计算节点配置训练任务,实现分布式训练系统的整体高效运行。
中对计算节点的快速调节,使系统算力集中在模型训练中,提高系统整体的训练效率。
300的数目是可变的,该分布式训练系统用于根据训练数据进行模型训练;其中,
送给该任务信息服务器100进行记录;其中,各个计算服务器300不用于存储模型参数。
程中对计算节点的快速调节,使系统算力趋于最优。
个静态节点包括数据服务和参数服务,图3还包括4个弹性节点,对应为计算节点(即计算服
务器)。
进行训练,训练完毕后再将模型参数返回给数据服务器保存,既能够保持模型参数更新,又
能够降低计算节点退出/加入时对系统的影响。
参数保存在该第一数据服务器中的第一参数服务器中。
新的模型参数。
节点数未发生变化,说明系统可继续平稳训练,这时将当前最新的模型参数保存参数服务
中,可为后续系统的节点变化时提供回退基础。
数据服务器中的参数服务器重新加载上一次探活检测时的模型参数。
时的模型参数,也就是退回到上一次探活检测时的数据版本,确保训练过程无误。
数据的标识信息,向各个数据服务器发送新的训练请求。
的中央节点,其应为静态节点,可理解为处于不能被终止或者说被杀死的计算节点上,使任
务信息服务器具备高可用性,确保系统稳定。
算服务器的轻量化,可快速动态调节的能力,具有重要的应用意义和价值。
述实施例中的对应描述,在此不再赘述。
助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种
形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算
装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限
制本文中描述的和/或者要求的本申请的实现。
安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令
进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口
的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。
在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器
一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器
阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器1001为例。
训练方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计
算机执行本申请所提供的弹性分布式训练方法。
指令/模块。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,
从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的弹性分布式训
练方法。
备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非
瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些
实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可
以通过网络连接至搜索结果的分析处理电子设备。上述网络的实例包括但不限于互联网、
企业内部网、局域网、移动通信网及其组合。
者其他方式连接,本申请图4实施例中以通过总线连接为例。
摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括
显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以
包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、发光二极管(Light Emitting
Diode,LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算
机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执
行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少
一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系
统、该至少一个输入装置、和该至少一个输出装置。
计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指
令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光
盘、存储器、可编程逻辑装置(programmable logic device,PLD)),包括,接收作为机器可
读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数
据提供给可编程处理器的任何信号。
LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该
键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交
互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者
触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户
的输入。
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网
(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和互联网。
算机程序来产生客户端和服务器的关系。
只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。