首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种面向分布式模型训练的网内多跳梯度汇聚方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京理工大学

摘要:本发明公开了一种面向分布式模型训练的网内多跳梯度汇聚方法,该方法由控制器根据网络状态计算分布式模型训练的网内多跳梯度汇聚结构,并根据所计算的网内多跳梯度汇聚结构标记各训练节点所发送的梯度分片,利用可编程交换机可以灵活解析数据包的特点,在梯度分片经过可编程交换机时,通过多个可编程交换机协作执行梯度分片在数据中心网络内的多次汇聚与转发,从而大量缩减模型梯度通信所产生的网络流量,同时增加了分布式模型训练的吞吐量,加速了模型训练。

主权项:1.一种面向分布式模型训练的网内多跳梯度汇聚方法,所述的分布式模型训练包含一个控制器、至少一个本地训练节点、至少一个可编程交换机节点和至少一个模型汇聚服务器节点,其特征在于,包括以下步骤:步骤S1、控制器根据网络状态计算网内多跳梯度汇聚结构控制器根据收集到的网络资源状态计算分布式模型训练所对应的网内多跳梯度汇聚结构,并将该汇聚结构发送到模型汇聚服务器节点与各训练节点,所述的网内多跳梯度汇聚结构包含以下两方面:第一方面,分布式模型训练系统中从各训练节点发送至模型汇聚服务器节点的梯度流所经过路径上的可编程交换机节点集合以及节点集合内各节点的汇聚元信息,其中,任一个训练节点发送至模型汇聚服务器节点的梯度流所经过路径上的可编程交换机节点集合与节点集合内各节点的汇聚元信息按照从该训练节点到模型汇聚服务器节点的梯度流路径上所经过节点的顺序排序;任一个训练节点发送至模型汇聚服务器节点的梯度流所经过路径上的可编程交换机节点集合内各节点的汇聚元信息包含梯度流是否应该在该节点上发生汇聚、该节点上应该发生汇聚的训练节点个数与梯度流在该节点上转发的出端口号;第二方面,分布式模型训练系统中从模型汇聚服务器节点发送至各训练节点的梯度全局汇聚结果流所经过路径上的可编程交换机节点集合以及节点集合内各节点的汇聚元信息,其中模型汇聚服务器节点发送至任一个训练节点的梯度全局汇聚结果流所经过路径上的可编程交换机节点集合与节点集合内各节点的汇聚元信息按照从模型汇聚服务器节点到该训练节点的梯度全局汇聚结果流路径上所经过节点的顺序排序;模型汇聚服务器节点发送至任一个训练节点的梯度全局汇聚结果流所经过路径上的可编程交换机节点集合内各节点的汇聚元信息包含是否有梯度流在该节点上发生了汇聚与梯度全局汇聚结果流在该节点上转发的出端口号;所述步骤S1中的网内多跳梯度汇聚结构中,从任一个训练节点到模型汇聚服务器节点的梯度流所经过路径上的可编程交换机节点集合与从模型汇聚服务器节点到该训练节点的梯度全局汇聚结果流所经过路径上的可编程交换机节点集合内包含的节点完全一致,节点集合内各节点的排序顺序相反;所述步骤S1中当各训练节点与模型汇聚服务器节点收到由控制器下发的网内多跳梯度汇聚结构后,由各训练节点与模型汇聚服务器节点在内存中保存该网内多跳梯度汇聚结构;步骤S2、各训练节点根据相应的网内多跳梯度汇聚结构标记梯度分片根据控制器下发的网内多跳梯度汇聚结构中各训练节点发送至模型汇聚服务器节点的梯度流所经过路径上的可编程交换机节点集合以及节点集合内各节点的汇聚元信息,各训练节点将训练好的梯度分片进行标记,并将梯度分片的目的地址设置为模型汇聚服务器节点,之后各训练节点将梯度分片发送至网络中;步骤S3、可编程交换机节点处理梯度分片步骤S3.1、可编程交换机节点判断梯度分片是否应该发生汇聚当梯度分片到达某可编程交换机节点时,根据梯度分片标记中节点集合内的首个节点的汇聚元信息判断该梯度分片是否应该在该可编程交换机节点上发生汇聚,若不应该汇聚则执行步骤S3.2,否则执行步骤S3.3;步骤S3.2、可编程交换机节点转发不应该汇聚的梯度分片若该梯度分片不应该在该可编程交换机节点上发生汇聚,则该可编程交换机节点记录梯度分片标记中节点集合内的首个节点的汇聚元信息中的转发出端口号,之后删除梯度分片标记中节点集合内的首个节点及其汇聚元信息,并根据所记录的转发出端口号将梯度分片转发至网络中下一跳节点,并执行步骤S3.6;步骤S3.3、可编程交换机节点汇聚应该汇聚的梯度分片若该梯度分片应该在该可编程交换机节点上发生汇聚,则该可编程交换机节点将该梯度分片分配到特定的内存单元进行汇聚,并将该内存单元中所记录的已经汇聚的训练节点个数增加1,并执行步骤S3.4;步骤S3.4、可编程交换机节点判断梯度分片是否完成汇聚当该梯度分片汇聚完成后,该可编程交换机节点比对相应内存单元中已经汇聚的训练节点个数与该梯度分片标记中节点集合内的首个节点的汇聚元信息中该可编程交换机节点上应该发生汇聚的训练节点个数,若二者相等,代表该可编程交换机已完成对应该在其上发生汇聚的训练节点的相应梯度片段的汇聚,则执行步骤S3.5,如果二者不相等,执行步骤S3.7;步骤S3.5、可编程交换机节点转发梯度分片汇聚结果可编程交换机节点记录该梯度分片标记中节点集合内的首个节点的汇聚元信息中的转发出端口号,之后删除梯度分片标记中节点集合内的首个节点及其汇聚元信息,将相应内存单元中的梯度汇聚结果写入梯度分片,并根据所记录的转发出端口号将携带梯度汇聚结果的梯度分片转发至网络中下一跳节点,之后进入步骤S3.6;步骤S3.6、网络下一跳节点是否是可编程交换机节点若下一跳节点是可编程交换机节点,则重复执行步骤S3,若下一跳节点是模型汇聚服务器节点则执行步骤S4;步骤S3.7、可编程交换机节点丢弃梯度分片;步骤S4、模型汇聚服务器节点处理梯度片段步骤S4.1、模型汇聚服务器节点执行梯度全局汇聚产生梯度全局汇聚结果分片当梯度分片到达模型汇聚服务器节点时,该模型汇聚服务器节点进行梯度全局汇聚,当所有训练节点对应的梯度分片全部完成汇聚后,该模型汇聚服务器节点产生N个梯度全局汇聚结果分片,每个梯度全局汇聚结果分片携带相同的梯度全局汇聚结果,N等于分布式模型训练中训练节点的个数;步骤S4.2、模型汇聚服务器节点标记梯度全局汇聚结果分片模型汇聚服务器节点将N个梯度全局汇聚结果分片的目的地址依次设置为各训练节点,之后,模型汇聚服务器节点根据步骤S1中内存中保存的网内多跳梯度汇聚结构中的从模型汇聚服务器节点发送至各训练节点的梯度全局汇聚结果流所经过路径上的可编程交换机节点集合以及节点集合内各节点的汇聚元信息,将N个梯度全局汇聚结果分片分别进行标记后发送至网络,其中,每个梯度全局汇聚结果分片标记模型汇聚服务器节点发送至某个训练节点的梯度全局汇聚结果流所经过路径上的可编程交换机节点集合与节点集合内各节点的汇聚元信息;步骤S5、可编程交换机节点处理梯度全局汇聚结果步骤S5.1、可编程交换机节点判断是否有梯度分片在其上发生了汇聚当梯度全局汇聚结果分片到达某可编程交换机节点时,根据该梯度全局汇聚结果分片标记中节点集合内的首个节点的汇聚元信息判断是否有梯度分片在该可编程交换机节点上发生了汇聚,若有梯度分片在该可编程交换机节点上发生了汇聚,代表梯度分片对应的特定内存单元中的梯度汇聚结果需要被清空,以供其被重复使用来汇聚梯度,则执行步骤S5.2,否则执行步骤S5.3;步骤S5.2、可编程交换机节点清空特定内存单元的梯度汇聚结果若有梯度分片在该可编程交换机节点上发生了汇聚,则该可编程交换机节点清空特定内存单元的梯度汇聚结果,之后执行步骤S5.3;步骤S5.3、可编程交换机节点转发梯度全局汇聚结果分片可编程交换机节点记录梯度全局汇聚结果分片标记中节点集合内的首个节点的汇聚元信息中的转发出端口号,之后删除梯度全局汇聚结果分片标记中节点集合内的首个节点及其汇聚元信息,并根据所记录的转发出端口号将梯度全局汇聚结果分片转发至网络中下一跳节点,并执行步骤S5.4;步骤S5.4、网络下一跳节点是否是训练节点若下一跳节点是训练节点,则执行步骤S6,若下一跳节点是可编程交换机节点则重复执行步骤S5;步骤S6、训练节点收到梯度全局汇聚结果并更新本地模型当梯度全局汇聚结果分片到达训练节点时,训练节点使用梯度全局汇聚结果分片中携带的梯度全局汇聚结果更新本地模型,以供该训练节点使用更新后的本地模型执行下一轮迭代训练。

全文数据:

权利要求:

百度查询: 北京理工大学 一种面向分布式模型训练的网内多跳梯度汇聚方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。