【韩松】Deep Gradient Comression_一只神秘的大金毛_新浪博客

《Deep Gradient Compression》

作者韩松,清华电子系本科,Stanford PhD,深鉴科技联合创始人。主要的研究方向是,神经网络模型压缩以及硬件架构加速。

 

论文链接:https://arxiv.org/pdf/1712.01887.pdf

本篇文章发表在 ICLR 2018,韩松之前有一系列模型压缩的研究,比如其博士毕业论文《EFFICIENT METHODS AND HARDWARE FOR DEEP LEARNING》,以及获得 ICLR 2016最佳论文的《Deep Compression:Compressing deep neural networks with pruning trained quantization and Huffman coding》。

 

算法与模型压缩这个方向,前期的主要工作都是针对于模型的Inference阶段,现在的情况是,Inference compression已经做得很不错了。所以自然得考虑Training阶段的模型压缩。

 

本篇文章即主要针对模型的Training过程进行压缩。因为Training的领域这么多年都没有什么大的变化,基本上都是围绕着GD(Gradient Descent)以及其变体(比如SGD、momentum、Adam)做文章。所以本文针对distributed SGD进行压缩,主要思想是,小于一定阈值的gradient对于系统的每一次迭代影响是非常小的,可以将其积累到一定的阈值,而后一并传递。但是这样的流程,会产生一定的时延效应影响进度,所以文章又采取了一些方法来克服这种方式的时延带来的影响。

 

下面是文章的主体梳理:

 

 

【Abstract】

多节点分布式训练会遇到带宽限制的问题,尤其是在移动设备上的训练。本文发现99.9%的gradint传递都是冗余的,所以提出一种Deep Gradient Compression(DGC)的方法来减少通信带宽communication bandwidth。

 

为了防止压缩导致精度损失,DGC采用四种方法:①动量修正(momentum correction)、②局部梯度修剪(local gradient clipping)、③动量因子掩藏(momentum factor masking)、④预训练(warm-up training)。

 

DGC可以达到270x到600x的无损压缩率,梯度大小,ResNet50从97M降到0.35M。可以在1G以太网中完成大规模分布式训练。

 

 

一、介绍

讲了一些分布式训练的工作,同步SGD是主流的方法。但是问题在于网络通信带宽成为进一步扩大训练规模的瓶颈,在移动设备上尤为严重(更低的网络带宽、断续的网络连接、更昂贵的移动数据协议)。

 

引出DGC是用来解决训练高通信带宽的问题,其实贡献主要的压缩率的方法(积累梯度传播)是另两篇文献提出的,DGC方法整合了这些方法,同时解决了这些方法(延时效应)的精度损失问题。

 

实验测试,测试了三种应用,用CNN图像分类(CIFAR10和ImageNet),RNN语言模型(Penn Treebank),语音识别(Librispeech Corpus)。结果显示最高可以无损压缩600倍。

 

 

二、相关工作

相关工作有,异步SGD。主要有梯度量化、梯度稀疏两大类压缩方法。

a)      梯度量化

二值SGD(1 bit),语音应用10X加速。QSGD。TernGrad三值SGD(对应于三值网络)。

b)     梯度稀疏

Aji&Heafield(2017)提出Gradient Dropping(文中多次提到这份工作),

 

 

三、DGC

a)      梯度稀疏 gradient sparsification

想法是通过只传送重要的gradient来降低通信带宽,可以简要概括成 稀疏化更新。 重要的梯度,简单认为是大于一定阈值的梯度。为了防止信息损失,其余“不重要”的梯度,被局部累加起来。当其累加到阈值的时候再进行传送。算法流程如下表1:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值