一种面向联邦学习的双向自适应梯度压缩方法及系统技术方案

技术编号:38253377 阅读:11 留言:0更新日期:2023-07-27 10:18
本发明专利技术提供了一种面向联邦学习的双向自适应梯度压缩方法及系统。该方法包括:服务器自适应确定本轮训练的量化位宽和压缩率,向各个客户端传输梯度或模型参数;客户端根据相关参数计算本轮梯度并压缩,预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器;服务器对各客户端的压缩梯度进行解压、聚合和再压缩处理,根据各个客户端上传的收敛速度预测值计算全局收敛速度预测值,更新全局模型和发送队列。本发明专利技术的方法通过自适应梯度压缩率和量化位宽,在保证模型精度的同时提升通信效率;设计稀疏化和量化中的编码方式以及新颖的双向梯度压缩策略,降低通信开销,提高每轮可参与的客户端数量,缓解在大规模联邦学习中的带宽瓶颈。习中的带宽瓶颈。习中的带宽瓶颈。

【技术实现步骤摘要】
一种面向联邦学习的双向自适应梯度压缩方法及系统


[0001]本专利技术涉及联邦学习
,尤其涉及一种面向联邦学习的双向自适应梯度压缩方法及系统。

技术介绍

[0002]随着深度学习的快速发展,人们对数据的隐私保护越来越重视。联邦学习作为一种新型分布式学习范式,可以使多方能够在不暴露其私有训练数据的情况下构建联合模型。然而,在大规模联邦学习系统的训练中,模型参数和梯度的传输不仅导致通信时间长、传输效率低,还限制了参与联邦学习的客户端数量。为克服上述问题,常用方法是对传输梯度进行压缩。
[0003]梯度压缩分为梯度量化和梯度稀疏化。梯度量化指降低梯度数据的位数,以更快地将梯度数据传输完毕。常见的梯度量化方法包括:1

bit SGD、Q

SGD、ECQ

SGD、Sign

SGD。但这种策略会降低梯度数据的精度,从而降低训练精度。梯度稀疏化指在梯度传输时有选择地传输一部分梯度,以减少通信时间。常见的梯度稀疏化方法包括:TopK、DGC、RedSync、GaussianKSGD。但这种策略可能导致重要的梯度不被传输,使模型精度降低。这种策略还需要额外传输梯度的位置信息,降低了数据的压缩率。
[0004]此外,目前现有技术中的梯度稀疏化仅用于对上行数据的压缩,这在大规模联邦学习中还不能有效缓解带宽受限问题。

技术实现思路

[0005]本专利技术的实施例提供了一种面向联邦学习的双向自适应梯度压缩方法及系统,以实现有效地提高网络带宽受限环境中联邦学习模型支持的客户端数量。
[0006]为了实现上述目的,本专利技术采取了如下技术方案。
[0007]根据本专利技术的一方面,提供了一种面向联邦学习的双向自适应梯度压缩方法,包括:
[0008]服务器自适应确定本轮训练的量化位宽和压缩率,选择本轮参与训练的客户端,向各个客户端传输梯度或模型参数;
[0009]客户端根据所述服务器发送的相关参数更新本地模型;根据本地数据集计算本轮梯度并进行压缩,根据训练情况预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器;
[0010]服务器对各客户端上传的压缩梯度进行解压、聚合和再压缩处理,根据各个客户端上传的收敛速度预测值计算全局收敛速度预测值,更新全局模型;
[0011]服务器更新发送队列,本轮结束。
[0012]优选地,所述的服务器自适应确定本轮训练的量化位宽和压缩率,选择本轮参与训练的客户端,向各个客户端传输梯度或模型参数,包括:
[0013]在联邦学习过程中,服务器自适应确定本轮训练的量化位宽和压缩率,服务器获
取第t+1轮收敛速度预测值b
t
,q
t+1
表示为第t+1轮梯度的量化位宽,q
t
表示为第t轮梯度的量化位宽,σ表示为可设置的超参数,q
max
表示为梯度的最大量化位宽;当b
t
<σ且q
t
<q
max
时,q
t+1
=q
t
+1,否则q
t+1
=q
t
;r
t+1
表示为第t+1轮梯度的压缩率,γ1、γ2表示为可设置的超参数;使用公式r
t+1
=γ1*(b
t
)2+γ2计算第t+1轮梯度的压缩率;
[0014]服务器选择本轮参与训练的客户端,c
t
表示为第t轮参与训练的客户端的数量;如果第t

1轮发生网络拥堵,c
t
=c
t
‑1/2;如果第t

1轮没有发生网络拥堵,c
t
=c
t
‑1+1;服务器根据已确定的数量c
t
随机选择本轮参与训练的客户端;
[0015]服务器向本轮参与训练的客户端传输梯度或模型参数。
[0016]优选地,所述的服务器向本轮参与训练的客户端传输梯度或模型参数,包括:
[0017]如果是第一轮训练,服务器向本轮参与训练的客户端传输初始压缩率、初始量化位宽和初始模型参数;
[0018]如果不是第一轮训练,t表示为本轮训练的轮数,e
k
表示为第k个客户端最新一次参与训练的轮数,m表示为可设置的超参数;服务器计算本轮参与训练的各个客户端距离上次参与训练的轮数t

e
k
;对于第k个客户端,如果t

e
k
≤m,服务器从发送队列中从后向前获取t

e
k
个多轮梯度,将自适应压缩率、自适应量化位宽和多轮梯度发送给该客户端;如果t

e
k
>m,服务器将自适应压缩率、自适应量化位宽和本轮全局模型参数发送给该客户端。
[0019]优选地,所述的客户端根据所述服务器发送的相关参数更新本地模型;根据本地数据集计算本轮梯度并进行压缩,根据训练情况预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器,包括:
[0020]如果客户端接收服务器下发的全局模型参数,客户端将接收的全局模型参数设置为本地模型参数;
[0021]如果客户端接收服务器下发的多轮梯度,客户端将服务器发送的每轮梯度的位置编码信息的每一个值由十进制转换为二进制,并按顺序放入位置掩码列表;将位置掩码列表中值为1的元素的索引作为解码后的位置信息;将服务器发送的每轮梯度的四元组信息还原成值信息列表;将解码后的位置信息、值信息列表转换成梯度列表;
[0022]将转换后的多轮梯度按位相加,得到多轮梯度聚合结果,将本地模型参数与聚合后梯度相加,得到更新后的本地模型参数,所述梯度列表的计算如下:
[0023][0024][0025]y
i
=sign(G
i
)*(G
i
)
max
*Gq
i
/q
t
[0026][0027][0028]其中,代表位置掩码列表,代表值信息列表,代表梯度列表,t代表第t轮训练,s代表客户端接收的第s轮梯度,l代表第l层模型的梯度;sign(G
i
)代表梯度G
i
的符号,Gq
i
代表梯度G
i
量化后的值,q
t
代表量化位宽。
[0029]梯度聚合和模型更新的计算公式如下:
[0030][0031][0032]其中,代表第t轮时客户端模型第l层的参数。
[0033]客户端根据全局模型参数和本地数据集进行本地训练,计算本轮梯度;客户端根据训练情况预测下一轮训练的收敛速度,客户端第t轮的损失值表示为客户端第t轮损失的水平值表本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向联邦学习的双向自适应梯度压缩方法,其特征在于,包括:服务器自适应确定本轮训练的量化位宽和压缩率,选择本轮参与训练的客户端,向各个客户端传输梯度或模型参数;客户端根据所述服务器发送的相关参数更新本地模型;根据本地数据集计算本轮梯度并进行压缩,根据训练情况预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器;服务器对各客户端上传的压缩梯度进行解压、聚合和再压缩处理,根据各个客户端上传的收敛速度预测值计算全局收敛速度预测值,更新全局模型;服务器更新发送队列,本轮结束。2.根据权利要求1所述的方法,其特征在于,所述的服务器自适应确定本轮训练的量化位宽和压缩率,选择本轮参与训练的客户端,向各个客户端传输梯度或模型参数,包括:在联邦学习过程中,服务器自适应确定本轮训练的量化位宽和压缩率,服务器获取第t+1轮收敛速度预测值b
t
,q
t+1
表示为第t+1轮梯度的量化位宽,q
t
表示为第t轮梯度的量化位宽,σ表示为可设置的超参数,q
max
表示为梯度的最大量化位宽;当b
t
<σ且q
t
<q
max
时,q
t+1
=q
t
+1,否则q
t+1
=q
t
;r
t+1
表示为第t+1轮梯度的压缩率,γ1、γ2表示为可设置的超参数;使用公式r
t+1
=γ1*(b
t
)2+γ2计算第t+1轮梯度的压缩率;服务器选择本轮参与训练的客户端,c
t
表示为第t轮参与训练的客户端的数量;如果第t

1轮发生网络拥堵,c
t
=c
t
‑1/2;如果第t

1轮没有发生网络拥堵,c
t
=c
t
‑1+1;服务器根据已确定的数量c
t
随机选择本轮参与训练的客户端;服务器向本轮参与训练的客户端传输梯度或模型参数。3.根据权利要求2所述的方法,其特征在于,所述的服务器向本轮参与训练的客户端传输梯度或模型参数,包括:如果是第一轮训练,服务器向本轮参与训练的客户端传输初始压缩率、初始量化位宽和初始模型参数;如果不是第一轮训练,t表示为本轮训练的轮数,e
k
表示为第k个客户端最新一次参与训练的轮数,m表示为可设置的超参数;服务器计算本轮参与训练的各个客户端距离上次参与训练的轮数t

e
k
;对于第k个客户端,如果t

e
k
≤m,服务器从发送队列中从后向前获取t

e
k
个多轮梯度,将自适应压缩率、自适应量化位宽和多轮梯度发送给该客户端;如果t

e
k
>m,服务器将自适应压缩率、自适应量化位宽和本轮全局模型参数发送给该客户端。4.根据权利要求2或者3所述的方法,其特征在于,所述的客户端根据所述服务器发送的相关参数更新本地模型;根据本地数据集计算本轮梯度并进行压缩,根据训练情况预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器,包括:如果客户端接收服务器下发的全局模型参数,客户端将接收的全局模型参数设置为本地模型参数;如果客户端接收服务器下发的多轮梯度,客户端将服务器发送的每轮梯度的位置编码信息的每一个值由十进制转换为二进制,并按顺序放入位置掩码列表;将位置掩码列表中值为1的元素的索引作为解码后的位置信息;将服务器发送的每轮梯度的四元组信息还原成值信息列表;将解码后的位置信息、值信息列表转换成梯度列表;将转换后的多轮梯度按位相加,得到多轮梯度聚合结果,将本地模型参数与聚合后梯
度相加,得到更新后的本地模型参数,所述梯度列表的计算如下:度相加,得到更新后的本地模型参数,所述梯度列表的计算如下:y
i
=sign(G
i
)*(G
i
)
max
*Gq
i
/q
tt
其中,代表位置掩码列表,代表值信息列表,代表梯度列表,t代表第t轮训练,s代表客户端接收的第s轮梯度,l代表第l层模型的梯度;sign(G
i
)代表梯度G
i
的符号,Gq
i
代表梯度G
i
量化后的值,q
t
代表量化位宽。梯度聚合和模型更新的计算公式如下:梯度聚合和模型更新的计算公式如下:其中,代表第t轮时客户端模型第l层的参数。客户端根据全局模型参数和本地数据集进行本地训练,计算本轮梯度;客户端根据训练情况预测下一轮训练的收敛速度,客户端第t轮的损失值表示为客户端第t轮损失的水平值表示为客户端第t轮损失的趋势值表示为其中t表示训练轮次,k表示第k个客户端,利用公式计算第t轮损失的水平值,α1表示为水平权重,利用公式计算第t轮损失的趋势值,α2表示为趋势值权重;将第t轮损失的趋势值作为第t+1轮...

【专利技术属性】
技术研发人员:孙永奇隋一凡廖鑫亭原继东李浥东
申请(专利权)人:北京交通大学
类型:发明
国别省市:

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

1