本技术实施例涉及分布式学习领域,尤其涉及针对分布式学习的通信压缩方法以及相关设备。
背景技术:
1、目前主流的联邦学习通信压缩技术主要采用参数稀疏化、量化、索引编码等压缩技术来降低模型传输过程中的通信开销。稀疏化用于在整个模型中选出一部分变化较大的数据作为待传输的备选参数(浮点数)。量化用于对这些备选参数进行更少位数的表示,从而减少浮点数的通信开销。索引编码用于进一步压缩备选参数位置信息所需要的通信开销。
2、经过稀疏化后的待同步参数受到模型量化技术和位置编码算法的处理之后,真正参与联邦学习训练的参数值的可压缩性很大(约16~32倍),然而,用于标记具体的待同步参数的位置索引的可压缩性相对较小(约2~3倍)。
3、这导致每轮训练传输给聚合设备的数据(参数值以及对应的位置索引)中,参数值与位置索引所占的通信开销往往不够合理。尽管二者都通过了进一步的压缩操作,但是最终大部分的通信开销用于传输对模型训练无用的位置索引,因此传输效率相对低下。
技术实现思路
1、本技术实施例提供了针对分布式学习的通信压缩方法以及相关设备,用于提升数据传输效率。
2、本技术实施例第一方面提供一种针对分布式学习的通信压缩方法,包括:
3、将目标神经网络中每层的参数划分为至少一个备选参数块,其中每层对应的多个备选参数块中每个备选参数块包含的备选参数对应的相对位置索引相同;
4、从每层对应的多个备选参数块中选择至少一个参数块,确定为每层对应的目标参数块;
5、基于每层对应的目标参数块,确定每层对应的待同步参数块,其中待同步参数块与目标参数块一一对应,每层对应的待同步参数块的第一范数的期望值、与所述每层对应的备选参数块的第一范数的期望值相同;
6、将每层对应的待同步参数块以及每层对应的位置索引发送至聚合装置。
7、在一种具体实现方式中,所述将目标神经网络中每层的参数划分为至少一个备选参数块,包括:
8、若所述目标神经网络中的任一层包含四个维度,则从通道维度将所述任一层的参数划分为n个备选参数块,其中n为所述任一层的通道数量与所述任一层对应的下一层的通道数量的乘积;
9、若所述目标神经网络中的任一层包含两个维度,则从所述两个维度中的任一维度将所述任一层的参数划分为n个备选参数块,其中n为所述任一维度的数量;
10、若所述目标神经网络中的任一层包含一个维度,则将所述任一层的参数划分为n个备选参数块,其中n为所述任一层的参数数量。
11、在一种具体实现方式中,所述从每层对应的多个备选参数块中选择至少一个参数块,确定为每层对应的目标参数块,包括:
12、根据第一概率公式,计算每层对应的每个备选参数块的第一概率,所述第一概率公式与所述第一范数对应;
13、基于第一概率以及预设条件,从每层对应的多个备选参数块中选择至少一个参数块,确定为每层对应的目标参数块;
14、所述基于每层对应的目标参数块,确定每层对应的待同步参数块,包括:
15、根据第一缩放公式以及每层对应的目标参数块,确定每层对应的待同步参数块。
16、在一种具体实现方式中,所述从每层对应的多个备选参数块中选择至少一个参数块,确定为每层对应的目标参数块,包括:
17、根据第一概率公式,计算每层对应的每个备选参数块的第一概率,所述第一概率公式与所述第一范数对应;
18、基于所述第一概率以及预设条件,从每层对应的多个备选参数块中选择至少一个参数块,确定为每层对应的一筛参数块;
19、根据第二概率公式,计算每层对应的每个一筛参数块的第二概率;
20、基于所述第二概率以及所述预设条件,从每层对应的多个一筛参数块中选择至少一个参数块,确定为每层对应的目标参数块;
21、所述基于每层对应的目标参数块,确定每层对应的待同步参数块,包括:
22、根据第二缩放公式以及每层对应的目标参数块,确定每层对应的待同步参数块。
23、在一种具体实现方式中,所述根据第一概率公式,计算每层对应的每个备选参数块的第一概率,所述第一概率公式与所述第一范数对应,包括:
24、根据以下公式计算每层对应的每个备选参数块的第一概率:
25、
26、其中,表示所述目标神经网络的任一层对应的第i个备选参数块的第一概率,ti表示所述任一层对应的第i个备选参数块,t表示所述任一层对应的每个备选参数块组成的集合。
27、在一种具体实现方式中,所述根据第二概率公式,计算每层对应的每个一筛参数块的第二概率,包括:
28、根据以下公式计算每层对应的每个一筛参数块的第二概率:
29、
30、其中,表示所述目标神经网络的任一层对应的第j个一筛参数块的第二概率,表示所述任一层对应的第j个一筛参数块,t1表示所述任一层对应的每个一筛参数块组成的集合。
31、在一种具体实现方式中,所述根据第二缩放公式以及每层对应的目标参数块,确定每层对应的待同步参数块,包括:
32、根据以下公式计算每层对应的目标参数块中,每个目标参数对应的目标量级:
33、
34、其中,表示所述目标神经网络的任一层对应的第k个目标参数块对应的目标量级,t1表示所述任一层对应的一筛参数块组成的集合,t∞表示所述任一层对应的目标参数块组成的集合,mk表示所述任一层对应的第k个目标参数块包含的目标参数的数量;
35、根据预设量化条件,确定每个目标参数对应的保留符号值;
36、将所述每个目标参数对应的目标量级以及所述每个目标参数对应的保留符号值的积,确定为所述每个目标参数对应的待同步参数;
37、按照对应的目标参数在对应的目标参数块中的位置组装每个待同步参数,得到每个目标参数块对应的待同步参数块。
38、在一种具体实现方式中,所述基于每层对应的目标参数块,确定每层对应的待同步参数块,包括:
39、将每层对应的参数块数量除以所述每层对应的每个目标参数块的商,确定为所述每层对应的每个目标参数块对应的目标量级;
40、将每个目标参数以及所述每个目标参数对应的目标量级的积,确定为所述每个目标参数对应的待同步参数;
41、按照对应的目标参数在对应的目标参数块中的位置组装每个待同步参数,得到每个目标参数块对应的待同步参数块。
42、本技术实施例第二方面提供一种训练装置,包括:
43、划分单元,用于将目标神经网络中每层的参数划分为至少一个备选参数块,其中每层对应的多个备选参数块中每个备选参数块包含的备选参数对应的相对位置索引相同;
44、确定单元,用于从每层对应的多个备选参数块中选择至少一个参数块,确定为每层对应的目标参数块;
45、所述确定单元,还用于基于每层对应的目标参数块,确定每层对应的待同步参数块,其中待同步参数块与目标参数块一一对应,每层对应的待同步参数块的第一范数的期望值、与所述每层对应的备选参数块的第一范数的期望值相同;
46、发送单元,用于将每层对应的待同步参数块以及每层对应的位置索引发送至聚合装置。
47、在一种具体实现方式中,所述划分单元,具体用于若所述目标神经网络中的任一层包含四个维度,则从通道维度将所述任一层的参数划分为n个备选参数块,其中n为所述任一层的通道数量与所述任一层对应的下一层的通道数量的乘积;
48、若所述目标神经网络中的任一层包含两个维度,则从所述两个维度中的任一维度将所述任一层的参数划分为n个备选参数块,其中n为所述任一维度的数量;
49、若所述目标神经网络中的任一层包含一个维度,则将所述任一层的参数划分为n个备选参数块,其中n为所述任一层的参数数量。
50、在一种具体实现方式中,所述确定单元,具体用于根据第一概率公式,计算每层对应的每个备选参数块的第一概率,所述第一概率公式与所述第一范数对应;
51、基于第一概率以及预设条件,从每层对应的多个备选参数块中选择至少一个参数块,确定为每层对应的目标参数块;
52、所述确定单元,具体用于根据第一缩放公式以及每层对应的目标参数块,确定每层对应的待同步参数块。
53、在一种具体实现方式中,所述确定单元,具体用于根据第一概率公式,计算每层对应的每个备选参数块的第一概率,所述第一概率公式与所述第一范数对应;
54、基于所述第一概率以及预设条件,从每层对应的多个备选参数块中选择至少一个参数块,确定为每层对应的一筛参数块;
55、根据第二概率公式,计算每层对应的每个一筛参数块的第二概率;
56、基于所述第二概率以及所述预设条件,从每层对应的多个一筛参数块中选择至少一个参数块,确定为每层对应的目标参数块;
57、所述确定单元,具体用于根据第二缩放公式以及每层对应的目标参数块,确定每层对应的待同步参数块。
58、在一种具体实现方式中,所述确定单元,具体用于根据以下公式计算每层对应的每个备选参数块的第一概率:
59、
60、其中,表示所述目标神经网络的任一层对应的第i个备选参数块的第一概率,ti表示所述任一层对应的第i个备选参数块,t表示所述任一层对应的每个备选参数块组成的集合。
61、在一种具体实现方式中,所述确定单元,具体用于根据以下公式计算每层对应的每个一筛参数块的第二概率:
62、
63、其中,表示所述目标神经网络的任一层对应的第j个一筛参数块的第二概率,表示所述任一层对应的第j个一筛参数块,t1表示所述任一层对应的每个一筛参数块组成的集合。
64、在一种具体实现方式中,所述确定单元,具体用于根据以下公式计算每层对应的目标参数块中,每个目标参数对应的目标量级:
65、
66、其中,表示所述目标神经网络的任一层对应的第k个目标参数块对应的目标量级,t1表示所述任一层对应的一筛参数块组成的集合,t∞表示所述任一层对应的目标参数块组成的集合,mk表示所述任一层对应的第k个目标参数块包含的目标参数的数量;
67、根据预设量化条件,确定每个目标参数对应的保留符号值;
68、将所述每个目标参数对应的目标量级以及所述每个目标参数对应的保留符号值的积,确定为所述每个目标参数对应的待同步参数;
69、按照对应的目标参数在对应的目标参数块中的位置组装每个待同步参数,得到每个目标参数块对应的待同步参数块。
70、在一种具体实现方式中,所述确定单元,具体用于将每层对应的参数块数量除以所述每层对应的每个目标参数块的商,确定为所述每层对应的每个目标参数块对应的目标量级;
71、将每个目标参数以及所述每个目标参数对应的目标量级的积,确定为所述每个目标参数对应的待同步参数;
72、按照对应的目标参数在对应的目标参数块中的位置组装每个待同步参数,得到每个目标参数块对应的待同步参数块。
73、本技术实施例第三方面提供一种训练装置,包括:
74、中央处理器,存储器以及输入输出接口;
75、所述存储器为短暂存储存储器或持久存储存储器;
76、所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行第一方面所述的方法。
77、本技术实施例第四方面提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如第一方面所述的方法。
78、本技术实施例第五方面提供一种计算机存储介质,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如第一方面所述的方法。
79、从以上技术方案可以看出,本技术实施例具有以下优点:因为划分备选参数块时,保证了每层对应的多个备选参数块中每个备选参数块的位置索引相同。所以,在将每层对应的至少一个备选参数块以及对应的位置索引发送至聚合装置时,若任一层需要传输n个备选参数块,则这n个备选参数块包含的备选参数对应的相对位置索引均相同,因此,这n个备选参数块仅需传输任一备选参数块的位置索引,或者说仅需传输相应层所对应的位置索引,从而在相同通信量的情况下可以传递更多的参数和更少的位置索引,极大地提升了通信效率以及训练效率。