机器学习模型的分布式训练方法及装置、电子设备、介质[发明专利]

(19)国家知识产权局
(12)发明专利
(10)授权公告号 (45)授权公告日 (21)申请号 202110704799.2
(22)申请日 2021.06.24
(65)同一申请的已公布的文献号
申请公布号 CN  113487036 A
(43)申请公布日 2021.10.08
(73)专利权人 浙江大学
地址 310058 浙江省杭州市西湖区余杭塘
路866号
(72)发明人 高云君 杨克宇 陈璐 曾志豪 
(74)专利代理机构 杭州求是专利事务所有限公
司 33200
专利代理师 应孔月
(51)Int.Cl.
G06N  20/00(2019.01)(56)对比文件CN  112231742 A ,2021.01.15CN  110533175 A ,2019.12.03CN 
109951438 A ,2019.06.28WO  2017098581 A1,2017.06.15US  2019213470 A1,2019.07.11宋匡时 等,.一个轻量级分布式机器学习系统的设计与实现.《计算机工程》.2020,第46卷(第1期),Jiawei  Jiang  等,.SKCompress: compressing  sparse  and  nonuniform  gradient  in  distributed  machine  learning.《The  VLDB  Journal  volume》.2020,第2020年卷审查员 杜学惠
(54)发明名称机器学习模型的分布式训练方法及装置、电子设备、介质(57)摘要本发明公开了一种机器学习模型的分布式训练方法及装置、电子设备、介质,该方法采用梯度键值对表示所述梯度向量中的非零元素;保留绝对值大于设定阈值的所述梯度值;通过倒数映射的方式,将保留的梯度值转化为梯度倒数值;将所述梯度倒数值进行对数量化,得到梯度量化整数,作为压缩的梯度值;根据保留的梯度值对应的梯度键求相邻梯度键的增量,获得增量梯度键;根据所述增量梯度键,得到长度标志位;对所述增量梯度键根据对应长度标志位进行二进制编码,组合长度标志位和二进制编码得到压缩的梯度键;再将所述压缩的梯度值和梯度键用于节点间传输,降低了各节点传输的梯度数据通信量,进而达到了提升机器学习模型分布式训练效
率的技术效果。权利要求书2页  说明书6页  附图4页CN 113487036 B 2022.06.17
C N  113487036
B
1.一种机器学习模型的分布式训练方法,其特征在于,应用于子节点,该方法包括:
获取机器学习模型分布式训练过程中产生的梯度向量;
采用梯度键值对表示所述梯度向量中的非零元素,所述梯度键值对包括梯度键和梯度值;
保留绝对值大于设定阈值的所述梯度值;
通过倒数映射的方式,将保留的梯度值转化为梯度倒数值;
将所述梯度倒数值进行对数量化,得到梯度量化整数,作为压缩的梯度值;
根据保留的梯度值对应的梯度键求相邻梯度键的增量,获得增量梯度键;
根据所述增量梯度键,得到长度标志位;
对所述增量梯度键根据对应长度标志位进行二进制编码,组合长度标志位和二进制编码得到压缩的梯度键;
将所述压缩的梯度值和梯度键发送给主节点,以使得所述主节点将所有子节点发送的所述压缩的梯度值和梯度键进行解压,并将解压后的梯度值和梯度键进行聚合,得到更新后的梯度向量;
接收所述更新后的梯度向量,进行所述机器学习模型更新;
其中通过倒数映射的方式,将保留的梯度值转化为梯度倒数值,包括:
对所述保留的梯度值,进行所有梯度值绝对值的求和;
将求得的梯度值绝对值之和除以单个所述保留的梯度值,以得到对应梯度值的梯度倒数值;
将所述梯度倒数值进行对数量化,得到梯度量化整数,包括:
对所述梯度倒数值,利用给定底数取得对应对数值;
通过取上整操作将所述对数值转化为量化整数;
若所述梯度倒数值对应的梯度值为负数,则为所述量化整数分配一个负号标记,得到量化整数;
根据保留的梯度值对应的梯度键求相邻梯度键的增量,获得增量梯度键,包括:
将保留的梯度值对应的梯度键分为最小的梯度键和其余梯度键,其中所述最小的梯度键用本身作为增量梯度键,所述其余梯度键均与前一个梯度键计算差值,得到增量梯度键;
根据所述增量梯度键,得到长度标志位,包括:
根据所述增量梯度键的最大值,得到各长度标志位的表示范围;
根据所述增量梯度键大小以及各长度标志位的表示范围,得到所述增量梯度键对应最小长度的长度标志位。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取更新后的机器学习模型分布式训练过程中产生的梯度向量,重复分布式训练,直到所述机器学习模型训练收敛。
3.一种机器学习模型的分布式训练装置,其特征在于,应用于子节点,该装置包括:
获取模块,用于获取机器学习模型分布式训练过程中产生的梯度向量;
表示模块,用于采用梯度键值对表示所述梯度向量中的非零元素,所述梯度键值对包括梯度键和梯度值;
保留模块,用于保留绝对值大于设定阈值的所述梯度值;
转化模块,用于通过倒数映射的方式,将保留的梯度值转化为梯度倒数值;
对数量化模块,用于将所述梯度倒数值进行对数量化,得到梯度量化整数,作为压缩的梯度值;
保留模块,用于根据保留的梯度值对应的梯度键求相邻梯度键的增量,获得增量梯度键;
求解模块,用于根据所述增量梯度键,得到长度标志位;
编码模块,用于对所述增量梯度键根据对应长度标志位进行二进制编码,组合长度标志位和二进制编码得到压缩的梯度键;
发送模块,用于将所述压缩的梯度值和梯度键发送给主节点,以使得所述主节点将所有子节点发送的所述压缩的梯度值和梯度键进行解压,并将解压后的梯度值和梯度键进行聚合,得到更新后的梯度向量;
接收训练模块,用于接收所述更新后的梯度向量,进行所述机器学习模型更新;
其中通过倒数映射的方式,将保留的梯度值转化为梯度倒数值,包括:
对所述保留的梯度值,进行所有梯度值绝对值的求和;
将求得的梯度值绝对值之和除以单个所述保留的梯度值,以得到对应梯度值的梯度倒数值;
将所述梯度倒数值进行对数量化,得到梯度量化整数,包括:
对所述梯度倒数值,利用给定底数取得对应对数值;
通过取上整操作将所述对数值转化为量化整数;
若所述梯度倒数值对应的梯度值为负数,则为所述量化整数分配一个负号标记,得到量化整数;
根据保留的梯度值对应的梯度键求相邻梯度键的增量,获得增量梯度键,包括:
将保留的梯度值对应的梯度键分为最小的梯度键和其余梯度键,其中所述最小的梯度键用本身作为增量梯度键,所述其余梯度键均与前一个梯度键计算差值,得到增量梯度键;
根据所述增量梯度键,得到长度标志位,包括:
根据所述增量梯度键的最大值,得到各长度标志位的表示范围;
根据所述增量梯度键大小以及各长度标志位的表示范围,得到所述增量梯度键对应最小长度的长度标志位。
4.根据权利要求3所述的装置,其特征在于,还包括:
迭代训练模块,用于获取更新后的机器学习模型分布式训练过程中产生的梯度向量,重复分布式训练,直到所述机器学习模型训练收敛。
5.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1‑2任一项所述的方法。
6.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1‑2中任一项所述方法的步骤。
机器学习模型的分布式训练方法及装置、电子设备、介质
技术领域
[0001]本发明涉及机器学习技术领域,尤其涉及一种机器学习模型的分布式训练方法及装置、电子设备、介质。
背景技术
[0002]机器学习在现代社会的各个领域有着广阔的应用场景,包括但不限于计算机视觉、自然语言处
理、语音识别等。随着以互联网技术和社会的发展,机器学习能使用的数据正以前所未有的速度不断增长和累积,此时单独一台机器往往无法有效地训练模型。因此,分布式机器学习训练成为了行业热点。
[0003]在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
[0004]分布式机器学习模型训练通常采用分布式梯度下降,即在分布式环境中使用随机梯度下降法(支持大量机器学习模型进行训练的核心优化方法,需要进行多轮迭代)训练机器学习模型。此时,训练数据集被划分到多台机器(即分布式工作节点)上,每个分布式工作节点都拥有相应的训练数据划分以及完整模型参数的本地副本,每台机器使用本地数据集独立计算本地梯度,并通过网络通信进行梯度交互以及聚合更新。由于随机梯度下降法是一个迭代的过程,整个训练过程会处理很多轮,各个机器之间均需要传输大量的梯度数据,这会产生高额的梯度通信量,带来计算资源利用效率低下、训练时间冗长等问题。
发明内容
[0005]本发明实施例的目的是提供一种机器学习模型的分布式训练方法及装置、电子设备、介质,以解决现有机器学习模型对计算资源利用效率低下、训练时间冗长的问题。[0006]根据本申请实施例的第一方面,提供一种机器学习模型的分布式训练方法,应用于子节点,该方法包括:
[0007]获取机器学习模型分布式训练过程中产生的梯度向量;
[0008]采用梯度键值对表示所述梯度向量中的非零元素,所述梯度键值对包括梯度键和梯度值;
[0009]保留绝对值大于设定阈值的所述梯度值;
[0010]通过倒数映射的方式,将保留的梯度值转化为梯度倒数值;
[0011]将所述梯度倒数值进行对数量化,得到梯度量化整数,作为压缩的梯度值;[0012]根据保留的梯度值对应的梯度键求相邻梯度键的增量,获得增量梯度键;[0013]根据所述增量梯度键,得到长度标志位;
[0014]对所述增量梯度键根据对应长度标志位进行二进制编码,组合长度标志位和二进制编码得到压缩的梯度键;
[0015]将所述压缩的梯度值和梯度键发送给主节点,以使得所述主节点将所有子节点发送的所述压缩的梯度值和梯度键进行解压,并将解压后的梯度值和梯度键进行聚合,得到更新后的梯度向量;
[0016]接收所述更新后的梯度向量,进行所述机器学习模型更新。
[0017]进一步地,还包括:
[0018]获取更新后的机器学习模型分布式训练过程中产生的梯度向量,重复分布式训练,直到所述机器学习模型训练收敛。
[0019]根据本发明实施例的第二方面,提供一种机器学习模型的分布式训练装置,应用于子节点,该装置包括:
[0020]获取模块,用于获取机器学习模型分布式训练过程中产生的梯度向量;[0021]表示模块,用于采用梯度键值对表示所述梯度向量中的非零元素,所述梯度键值对包括梯度键和梯度值;
[0022]保留模块,用于保留绝对值大于设定阈值的所述梯度值;
[0023]转化模块,用于通过倒数映射的方式,将保留的梯度值转化为梯度倒数值;[0024]对数量化模块,用于将所述梯度倒数值进行对数量化,得到梯度量化整数,作为压缩的梯度值;
[0025]保留模块,用于根据保留的梯度值对应的梯度键求相邻梯度键的增量,获得增量梯度键;
[0026]求解模块,用于根据所述增量梯度键,得到长度标志位;
[0027]编码模块,用于对所述增量梯度键根据对应长度标志位进行二进制编码,组合长度标志位和二进制编码得到压缩的梯度键;
[0028]发送模块,用于将所述压缩的梯度值和梯度键发送给主节点,以使得所述主节点将所有子节点发送的所述压缩的梯度值和梯度键进行解压,并将解压后的梯度值和梯度键进行聚合,得到更新后的梯度向量;
[0029]接收训练模块,用于接收所述更新后的梯度向量,进行所述机器学习模型更新。[0030]进一步地,还包括:
[0031]迭代训练模块,用于获取更新后的机器学习模型分布式训练过程中产生的梯度向量,重复分布式训练,直到所述机器学习模型训练收敛。
[0032]根据本发明实施例的第三方面,提供一种电子设备,包括:
[0033]一个或多个处理器;
[0034]存储器,用于存储一个或多个程序;
[0035]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
[0036]根据本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如第一方面所述方法的步骤。
[0037]本申请的实施例提供的技术方案可以包括以下有益效果:
[0038]由上述实施例可知,本申请采用梯度键值对表示所述梯度向量中的非零元素,所述梯度键值对包括梯度键和梯度值;保留绝对值大于设定阈值的所述梯度值;通过倒数映射的方式,将保留的梯度值转化为梯度倒数值;将所述梯度倒数值进行对数量化,得到梯度量化整数,作为压缩的梯度值;根据保留的梯度值对应的梯度键求相邻梯度键的增量,获得增量梯度键;根据所述增量梯度键,得到长度标志位;对所述增量梯度键根据对应长度标志位进行二进制编码,组合长度标志位和二进制编码得到压缩的梯度键;再将所述压缩的梯

本文发布于:2024-09-21 03:16:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/741394.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:梯度   机器   学习
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议