文章目录
DeepReduce: A Sparse-tensor Communication Framework for Federated Deep Learning论文阅读
概览
年份/期刊:NIPS/2021
整体流程:
- 提出一种位于机器学习框架(Tesorflow,Pytorch)和通信库之间的框架DeepReduce,该框架主要为API,该框架将稀疏张量分解为<key,value>,并将key、value分别用目前常用方法以及本文提出的方法进行压缩
- 提出一种基于Bloom滤波器的索引压缩器,和一种基于曲线拟合的值压缩器
系统架构
- 在传输端,获取模型的稀疏张量,或使用GRACE库对张量进行稀疏化操作。稀疏张量通常表示为<key,value>元组
- 用非零值的key组成的数组,或者由01构成的字符串B表示key,方便进行索引值压缩
- 对value进行压缩
- 将压缩后的key和value结构、重新排序信息和任何解压的数据组合在一个容器中传至通信库
- 接收端进行解压缩以及索引的重排序
key压缩方法
Bloom有损压缩器,使用k个哈希函数将每个S集合中的项(非零value的索引)插入到大小为m的Bloom过滤器B中, 因此Bloom存在误差false positives (FP).
类似考研408里学到的哈希表,查找快,占用空间小,但是会有数据存储的冲突问题
总共分为Native,P0,P1,P2三种方法,大体思路还是解决因为FP问题而导致的解压方数据还原错误问题
P0传递了所有的FP位置和正确位置
而P1和P2则在P0的基础上,对其信息随机选取一部分,通信量小但是精度不如P0,例如P3认为FP主要是散列函数的冲突产生的,把P中的元素分到一个个冲突集中,如果冲突集中只有一个元素,则直接加入,若有多个元素,则随机选取
value压缩方法
浅蓝色表示CIFAR-10上一层ResNet20的梯度值, 通过对这些值进行排序,我们获得了一条可以近似为光滑凸曲线的曲线。作者由此提出了一种新的基于曲线拟合的值压缩方法
通过多项式回归,非线性近似,非线性回归的方式,来利用网络真实的参数来拟合这条曲线
实验
1.本地集群实验
数据集:CIFAR-10
网络:ResNet-20
来验证本文提出的key压缩器和value压缩器性能
key值压缩效果图,纵轴为Top-1准确度,横轴为训练步数,Top-r为稀疏器
FP的比率设置为10^-3,baseline为无压缩数据传输和普通Top-r稀疏器进行对比
结果:
①本文所提出的P0-P2方法,最终都能达到与baseline相同的精度
②P0较早达到收敛,且传输的信息量比Top-r方法少33%
value值压缩效果图
结果:
①都达到了与无压缩baseline相同的精度
②Dexp压缩方法比Poly方法稍好
实验还验证了DeepReduce,将其与稀疏模型或者Top-r稀疏器结合后,在ML-20m上训练NCF,用BF-P0进行索引压缩,用他人提出的QSGD、SKCompress进行值压缩相结合:结果达到baseline准确度,同时数据量缩小5倍
QSGD:量化SGD(QSGD),这是一系列具有收敛保证和良好实用性能的压缩方案。QSGD允许用户平滑地权衡通信带宽和收敛时间:节点可以调整每次迭代发送的比特数,但代价可能更高。我们证明了这种权衡是内在的,因为如果将其提高到某个阈值以上,就会违反信息论的下限。QSGD保证了凸目标和非凸目标在异步条件下的收敛性,并且可以推广到随机方差缩减技术。
SKCompress:算法结合了两种不同的压缩方法,即前向索引压缩和簇间压缩,以优化通信效率。实验结果表明,SKCompress可以在减少通信量的同时,保持与标准算法相当的收敛速度和模型精度
2.现实生活中基于云端的联邦系统
基于FedML部署的联邦学习系统,真实的Stack Overflow[67]数据集自然地在342477个客户端之间进行了分区
通信数据量和通信时间的对比,baseline为FedAvg和Top-r稀疏器
结果:
①P0-P2都进一步压缩了数据量
②P0+QSGD的方式,数据量比Top-r小3.2倍,压缩数据至6.2%,准确度几乎不下降
③DeepReduce的解码时间高于Top-r,但是通信时间相比其低15%
3.DeepReduce组件架构验证
数据集:CIFAR-10
网络:ResNet-20
主要与Top-r方法进行比较数据量和解压缩时间
提到效果比不过SKCompress,但是该方法需要在特定的模型上才起作用
总结
本文提到,压缩与
- 通信库communication library(e.g., NCCL, Gloo)
- 压缩器实现细节the implementation details of each compressor
- 计算硬件the computing hardware (e.g., faster GPUs)
- 加速器possible accelerators (e.g., NICs with FPGAs)
- 压缩算法
有关
该篇主要提出开源的API-----DeepReduce,可以适配多种主流的压缩算法,来降低大规模联合学习部署中的通信开销,算是改进了压缩器的实现细节
提出的索引压缩方式或许可取,但是value值压缩方式在论文的实验中没有太多体现,应该不太行