[发明专利]模型的分布式训练方法、装置和系统在审
申请号: | 202010018911.2 | 申请日: | 2020-01-08 |
公开(公告)号: | CN113094168A | 公开(公告)日: | 2021-07-09 |
发明(设计)人: | 蒋丰泽;李传勇;王兴达 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54;G06N20/00 |
代理公司: | 北京恒博知识产权代理有限公司 11528 | 代理人: | 范胜祥 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 模型 分布式 训练 方法 装置 系统 | ||
本发明公开了模型的分布式训练方法、装置和系统。所述方法包括:由本节点上的参数服务器角色存储模型的至少部分参数,以使所述对等网络中的全部参数服务器角色共同存储所述模型的全部参数;在每轮训练开始时,由本节点上的工作者角色从各节点上的参数服务器角色拉取模型的最新参数,根据本轮训练的训练数据以及根据所述最新参数计算梯度更新,并在该轮训练结束后,将计算得到的梯度更新发送给各节点上的参数服务器角色。该技术方案通过在对等网络的各节点中分别部署参数服务器角色和工作者角色,使各参数服务器角色可只保存部分模型参数,兼顾了通信和存储,极大地缓解了通信压力和存储压力。
技术领域
本发明涉及机器学习领域,具体涉及模型的分布式训练方法、装置和系统。
背景技术
机器学习是目前用于图像识别、自然语言处理等领域的重要技术手段,机器学习的模型训练则是其中最为关键的部分。由于模型训练所依赖的训练数据通常较多,计算规模较大,因此分布式训练得到了广泛应用。然而目前的模型分布式训练架构存在诸多问题:例如,部分中心化的架构使得服务器容易成为通信瓶颈,而部分去中心化的架构由无法适用于模型参数规模较大的场景,等等。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的模型的分布式训练方法、装置和系统。
依据本发明的一个方面,提供了一种模型的分布式训练方法,其中,所述方法应用于对等网络的节点中,所述方法包括:
由本节点上的参数服务器角色存储模型的至少部分参数,以使所述对等网络中的全部参数服务器角色共同存储所述模型的全部参数;
在每轮训练开始时,由本节点上的工作者角色从各节点上的参数服务器角色拉取模型的最新参数,根据本轮训练的训练数据以及根据所述最新参数计算梯度更新,并在该轮训练结束后,将计算得到的梯度更新发送给各节点上的参数服务器角色。
可选地,所述由本节点上的参数服务器角色存储模型的至少部分参数包括:
在内存中存储参数,以及在外部存储器中以检查点机制备份存储相应的参数;
该方法还包括:
在本节点中的训练进程崩溃时,利用所述外部存储器中存储的参数恢复训练进程。
可选地,节点间的通信使用TCP协议。
可选地,角色间的通信是基于ZeroMQ消息队列实现的。
可选地,所述由本节点上的工作者角色从各节点上的参数服务器角色拉取模型的最新参数、以及所述将计算得到的梯度更新发送给各节点上的参数服务器角色包括:
通过哈希算法确定待通信的参数服务器角色所在的目标节点;
若所述目标节点为本节点,则通信数据包括与所述最新参数/梯度更新对应的内存指针;
若所述目标节点为其他节点,则对通信数据进行压缩处理。
可选地,所述由本节点上的工作者角色从各节点上的参数服务器角色拉取模型的最新参数,根据本轮训练的训练数据以及根据所述最新参数计算梯度更新,并在该轮训练结束后,将计算得到的梯度更新发送给各节点上的参数服务器角色包括:
通过多线程异步执行模型最新参数的拉取、梯度更新的计算以及发送。
可选地,本节点上的参数服务器角色存储的参数是基于分桶策略确定的。
可选地,所述分桶策略是基于参数访问频率确定的。
可选地,本节点上的参数服务器角色和工作者角色通过同一训练进程实现。
依据本发明的另一方面,提供了一种模型的分布式训练装置,其中,所述装置应用于对等网络的节点中,所述装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010018911.2/2.html,转载请声明来源钻瓜专利网。