本发明涉及联邦学习,尤其涉及一种面向联邦学习的双向自适应梯度压缩方法及系统。
背景技术:
1、随着深度学习的快速发展,人们对数据的隐私保护越来越重视。联邦学习作为一种新型分布式学习范式,可以使多方能够在不暴露其私有训练数据的情况下构建联合模型。然而,在大规模联邦学习系统的训练中,模型参数和梯度的传输不仅导致通信时间长、传输效率低,还限制了参与联邦学习的客户端数量。为克服上述问题,常用方法是对传输梯度进行压缩。
2、梯度压缩分为梯度量化和梯度稀疏化。梯度量化指降低梯度数据的位数,以更快地将梯度数据传输完毕。常见的梯度量化方法包括:1-bit sgd、q-sgd、ecq-sgd、sign-sgd。但这种策略会降低梯度数据的精度,从而降低训练精度。梯度稀疏化指在梯度传输时有选择地传输一部分梯度,以减少通信时间。常见的梯度稀疏化方法包括:topk、dgc、redsync、gaussianksgd。但这种策略可能导致重要的梯度不被传输,使模型精度降低。这种策略还需要额外传输梯度的位置信息,降低了数据的压缩率。
3、此外,目前现有技术中的梯度稀疏化仅用于对上行数据的压缩,这在大规模联邦学习中还不能有效缓解带宽受限问题。
技术实现思路
1、本发明的实施例提供了一种面向联邦学习的双向自适应梯度压缩方法及系统,以实现有效地提高网络带宽受限环境中联邦学习模型支持的客户端数量。
2、为了实现上述目的,本发明采取了如下技术方案。
3、根据本发明的一方面,提供了一种面向联邦学习的双向自适应梯度压缩方法,包括:
4、服务器自适应确定本轮训练的量化位宽和压缩率,选择本轮参与训练的客户端,向各个客户端传输梯度或模型参数;
5、客户端根据所述服务器发送的相关参数更新本地模型;根据本地数据集计算本轮梯度并进行压缩,根据训练情况预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器;
6、服务器对各客户端上传的压缩梯度进行解压、聚合和再压缩处理,根据各个客户端上传的收敛速度预测值计算全局收敛速度预测值,更新全局模型;
7、服务器更新发送队列,本轮结束。
8、优选地,所述的服务器自适应确定本轮训练的量化位宽和压缩率,选择本轮参与训练的客户端,向各个客户端传输梯度或模型参数,包括:
9、在联邦学习过程中,服务器自适应确定本轮训练的量化位宽和压缩率,服务器获取第t+1轮收敛速度预测值bt,qt+1表示为第t+1轮梯度的量化位宽,qt表示为第t轮梯度的量化位宽,σ表示为可设置的超参数,qmax表示为梯度的最大量化位宽;当bt<σ且qt<qmax时,qt+1=qt+1,否则qt+1=qt;rt+1表示为第t+1轮梯度的压缩率,γ1、γ2表示为可设置的超参数;使用公式rt+1=γ1*(bt)2+γ2计算第t+1轮梯度的压缩率;
10、服务器选择本轮参与训练的客户端,ct表示为第t轮参与训练的客户端的数量;如果第t-1轮发生网络拥堵,ct=ct-1/2;如果第t-1轮没有发生网络拥堵,ct=ct-1+1;服务器根据已确定的数量ct随机选择本轮参与训练的客户端;
11、服务器向本轮参与训练的客户端传输梯度或模型参数。
12、优选地,所述的服务器向本轮参与训练的客户端传输梯度或模型参数,包括:
13、如果是第一轮训练,服务器向本轮参与训练的客户端传输初始压缩率、初始量化位宽和初始模型参数;
14、如果不是第一轮训练,t表示为本轮训练的轮数,ek表示为第k个客户端最新一次参与训练的轮数,m表示为可设置的超参数;服务器计算本轮参与训练的各个客户端距离上次参与训练的轮数t-ek;对于第k个客户端,如果t-ek≤m,服务器从发送队列中从后向前获取t-ek个多轮梯度,将自适应压缩率、自适应量化位宽和多轮梯度发送给该客户端;如果t-ek>m,服务器将自适应压缩率、自适应量化位宽和本轮全局模型参数发送给该客户端。
15、优选地,所述的客户端根据所述服务器发送的相关参数更新本地模型;根据本地数据集计算本轮梯度并进行压缩,根据训练情况预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器,包括:
16、如果客户端接收服务器下发的全局模型参数,客户端将接收的全局模型参数设置为本地模型参数;
17、如果客户端接收服务器下发的多轮梯度,客户端将服务器发送的每轮梯度的位置编码信息的每一个值由十进制转换为二进制,并按顺序放入位置掩码列表;将位置掩码列表中值为1的元素的索引作为解码后的位置信息;将服务器发送的每轮梯度的四元组信息还原成值信息列表;将解码后的位置信息、值信息列表转换成梯度列表;
18、将转换后的多轮梯度按位相加,得到多轮梯度聚合结果,将本地模型参数与聚合后梯度相加,得到更新后的本地模型参数,所述梯度列表的计算如下:
19、
20、
21、yi=sign(gi)*(gi)max*gqi/qt
22、
23、
24、其中,代表位置掩码列表,代表值信息列表,代表梯度列表,t代表第t轮训练,s代表客户端接收的第s轮梯度,l代表第l层模型的梯度;sign(gi)代表梯度gi的符号,gqi代表梯度gi量化后的值,qt代表量化位宽。
25、梯度聚合和模型更新的计算公式如下:
26、
27、
28、其中,代表第t轮时客户端模型第l层的参数。
29、客户端根据全局模型参数和本地数据集进行本地训练,计算本轮梯度;客户端根据训练情况预测下一轮训练的收敛速度,客户端第t轮的损失值表示为客户端第t轮损失的水平值表示为客户端第t轮损失的趋势值表示为其中t表示训练轮次,k表示第k个客户端,利用公式计算第t轮损失的水平值,α1表示为水平权重,利用公式计算第t轮损失的趋势值,α2表示为趋势值权重;将第t轮损失的趋势值作为第t+1轮训练中第k个客户端收敛速度的预测值;
30、客户端对梯度进行压缩,将压缩梯度和收敛速度预测值上传给服务器。
31、优选地,所述的客户端对梯度进行压缩,包括:
32、gt表示为第t轮梯度,vt表示为第t轮动量,gt表示为第t轮累计梯度;对第t轮梯度使用公式vt=vt-1+β·gt进行动量修正,β表示为可设置的超参数;对动量使用gt=gt-1+vt进行梯度累积;
33、rt表示为第t轮服务器发送的压缩率,scl表示为第t轮中第l层累积梯度的个数;客户端将每层模型的梯度分别按照绝对值从大到小排序,将排序后第(rt*scl)个梯度的绝对值作为第l层梯度的阈值;在每层模型的梯度中筛选出非零的、绝对值大于阈值的梯度,获取筛选后梯度的值信息和位置信息;
34、客户端将位置信息转换为位置掩码列表,梯度发送则掩码列表对应位置值为1,不发送则为0,将位置掩码列表采用位运算的方式压缩为位置编码信息;
35、对于相应位置的梯度值信息,qt表示为第t轮服务器发送的量化位宽,表示为筛选后第l层累积梯度的最大值,表示为筛选后第l层第i个累积梯度的值,表示为筛选后第l层第i个累积梯度量化后的值,sign(x)表示为数值x的符号,abs(x)表示为数值x的绝对值;将用32位二进制码表示;将qt用eliasγ码表示;计算筛选后第l层第i个累积梯度的符号用1位二进制码表示;利用公式量化筛选后第l层第i个累积梯度,并转换为eliasγ码;使用四元组编码第l层梯度的值信息;
36、客户端将位置编码信息、值信息作为梯度压缩的结果。
37、优选地,所述的服务器对各客户端上传的压缩梯度进行解压、聚合和再压缩处理,根据各个客户端上传的收敛速度预测值计算全局收敛速度预测值,更新全局模型,包括:
38、服务器将各客户端发送的位置编码信息的每一个值由十进制转换为二进制,并按顺序放入位置掩码列表,将位置掩码列表中值为1的元素的索引作为解码后的位置信息;将服务器发送的每轮梯度的四元组信息还原成值信息列表;将解码后的位置信息、值信息列表转换成梯度列表;
39、将各客户端的梯度按本地数据集大小加权平均,得到梯度聚合结果,聚合梯度的计算如下:
40、
41、其中,代表第k个客户端在第t轮训练中第l层模型的梯度,nk代表第k个客户端本地数据集的大小;
42、服务器使用与客户端相同的梯度稀疏化和量化方法压缩梯度聚合结果,得到压缩梯度;
43、服务器计算所有客户端的加权平均值bt作为第t+1轮收敛速度的全局收敛速度预测值,其中t表示训练轮次,k表示第k个客户端,全局收敛速度预测值的计算如下:
44、
45、其中,nk代表第k个客户端本地数据集的大小;
46、服务器对所述压缩梯度进行解压,将全局模型参数与解压后梯度相加,得到更新后的全局模型。
47、优选地,所述的服务器更新发送队列,包括:
48、服务器更新发送队列,压缩梯度入队列;t表示为本轮训练的轮数,ek表示为第k个客户端最新一次参与训练的轮数,t表示为清理发送队列的周期,n表示为发送队列的长度;当t%t=0时,将发送队列中n-max{t-ek}个元素出队列。
49、根据本发明的另一个方面,提供了一种面向联邦学习的双向自适应梯度压缩系统,包括:服务器和客户端;
50、所述的服务器,用于自适应确定本轮训练的量化位宽和压缩率,选择本轮参与训练的客户端,向各个客户端传输梯度或模型参数;
51、所述的客户端,用于根据所述服务器发送的相关参数更新本地模型;根据本地数据集计算本轮梯度并进行压缩,根据训练情况预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器;
52、所述的服务器,还用于对各客户端上传的压缩梯度进行解压、聚合和再压缩处理,根据各个客户端上传的收敛速度预测值计算全局收敛速度预测值;更新全局模型和发送队列。
53、优选地,所述服务器包括:
54、客户端管理器,用于客户端的选择和自适应压缩参数配置,利用发送队列保存多轮下行传输梯度;
55、记忆器,用于梯度的动量修正和梯度累积;
56、压缩器,用于梯度的压缩和解压;
57、聚合器,用于上行梯度的聚合;
58、所述客户端包括:
59、记忆器,用于梯度的动量修正和梯度累积;
60、压缩器,用于梯度的压缩和解压;
61、聚合器,用于下行梯度的聚合。
62、根据本发明的另一个方面,提供了一种计算机产品,包括计算机程序,所述计算机程序当在一个或多个处理器上运行时,用于实现如上所述的面向联邦学习的双向自适应梯度压缩方法,该方法包括:
63、服务器自适应确定本轮训练的量化位宽和压缩率,选择本轮参与训练的客户端,向各个客户端传输梯度或模型参数;
64、客户端根据所述服务器发送的相关参数更新本地模型;根据本地数据集计算本轮梯度并进行压缩,根据训练情况预测下一轮训练的收敛速度,将压缩梯度和收敛速度预测值上传给服务器;
65、服务器对各客户端上传的压缩梯度进行解压、聚合和再压缩处理,根据各个客户端上传的收敛速度预测值计算全局收敛速度预测值;
66、服务器更新全局模型和发送队列。
67、由上述本发明的实施例提供的技术方案可以看出,本发明方法和系统通过自适应梯度压缩率和量化位宽,在保证模型精度的同时提升通信效率;设计稀疏化和量化编码方式以及新颖的双向梯度压缩策略,降低通信开销,提高在网络带宽受限环境中联邦学习模型支持的客户端数量,缓解在大规模联邦学习中的带宽瓶颈。
68、本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。