D. Alistarh, D. Grubic, J. Li, R. Tomioka, and M. Vojnovic, “QSGD: Communication-Efficient SGD via Gradient Quantization and Encoding,” Advances in Neural Information Processing Systems, vol. 30, 2017, Accessed: Jul. 31, 2021. [Online]. Available: https://proceedings.neurips.cc/paper/2017/hash/6c340f25839e6acdc73414517203f5f0-Abstract.html

作为量化SGD系列三部曲的第二篇,本篇文章是从单机学习到联邦学习的一个重要过渡,在前人的基础上重点进行了理论分析的完善,成为了量化领域绕不开的经典文献。

简介

相较于上一篇IBM的文章,本文考虑用梯度量化来改善并行SGD计算中的通信传输问题,并重点研究了通信带宽收敛时间的关系(precision-variance trade-off)。具体而言,根据information-theoretic lower bounds,当调整每次迭代中传输的比特数时,梯度方差会发生改变,从而进行收敛性分析。实验结果表明在用ResNet-152训练ImageNet时能带来1.8倍的速率提升。

观点

  • QSGD基于两个算法思想

    • 保留原始统计性质的随机量化(来源于量化SGD的实验性质)
    • 对量化后梯度的整数部分有损编码(进一步降低比特数)
  • 减少通信开销往往会降低收敛速率,因此多训练带来的额外通信次数值不值,是神经网络量化传输需要考虑的重点
  • 可以把量化看作一个零均值的噪声,只是它碰巧能够让传输更加有效
  • 卷积层比其他层更容易遭受量化带来的性能下降,因此在量化方面,完成视觉任务的网络可能比深度循环网络获益更少

理论

  • 方差对于SGD收敛性的影响

    mini-batch操作可以看作是减少方差的一个方法,当第一项主导的时候,由于方差减少到了\(\sigma^2 /m\),因此收敛所需的迭代次数变为\(1/T\)

  • 无损的parallel SGD就是一种mini batch,因此将定理换一种写法(其实就是写成不等式右边趋于零时),得到收敛所需迭代次数与方差的关系


    通常第一项会主导迭代次数,因此结论:收敛所需的迭代次数与随机梯度的二阶方差界\(B\)成线性关系

  • 随机量化与编码

    • 随机量化

      量化水平数量\(s\)(没有包含0),量化水平在\([0,1]\)均匀分布。构造的目的为:1)preserves the value in expectation;2)introduce minimal variance

      • 对于向量中的每个分量单独量化
      • 进行\(|v_i|/\|v\|_2\)操作后能保证每个分量都落在\([0,1]\)区间内,从而转化为\([0,1]\)上的量化
      • 最终的上下取值概率之比就是量化点到上下量化水平的距离之比

      好像和投影距离是等价的?

      如此量化后有良好的统计特性(在这个量化值下有最小的方差)

    • 编码

      Elias integer encoding,基本思想是大的整数出现的频率会更低,因此循环的编码第一个非零元素的位置

      将整数转变为二进制序列,编码后的长度为\(|\operatorname{Elias}(k)|=\log k+\log \log k+\ldots+1 \leq(1+o(1)) \log k+1\)

    可得在给定量化方差界\(\left(\|v\|_{2}, \sigma, \zeta\right)\)后,需要传输的比特数上界为


    注:此时1bit传输作为\(s=1\)的稀疏特例

  • 将两个定理合并后的结果如下。由于QSGD计算的是接口变量方差,因此可以很便利地结合到各种与方差相关的随机梯度分析框架中。

    • Smooth convex QSGD

    • Smooth non-convex

  • QSGD在实际应用中的两个变种

    • 将一个向量进一步分为若干bucket来量化,显然bucket size越大方差越大
    • 在向量scaling的时候选用最大分量值而不是向量的二范数

实验

  • 全精度SGD传\(32n\)比特,QSGD最少可以只传\(2.8n+32\)比特,在两倍迭代次数下,可以带来节约\(5.7\)倍的带宽

  • 实验结果

    • 性能上几乎超越了大模型

      • 要用大模型才有量化的价值

      We will not quantize small gradient matrices (< 10K elements), since the computational cost of quantizing them significantly exceeds the reduction in communication.

    • 计算和通信的开销

      • 增加并行后主要耗时在通信上
  • 实验部分还没有完全搞懂(比如protocol部分、GPU的并行)

借鉴

  • 文章在QSGD的基础上,从stochastic variance-reduced variant角度又继续分析QSVRG,覆盖到了指数收敛速率。也就是通过添加新技术来说明原始方法的扩展性。
  • 这篇文章的基础是communication complexity lower bound of DME,因此建立传输比特数和方差的关系是直接拿过来的。而方差和收敛性的分析也是常用的,因此在承认DME的基础上很容易得到tight bound。
  • 这篇文章的写作并不算优秀,但是内容十分solid和extensive,绝对是经典之作。

【论文考古】量化SGD QSGD: Communication-Efficient SGD via Gradient Quantization and Encoding的更多相关文章

  1. NeurIPS 2017 | QSGD: Communication-Efficient SGD via Gradient Quantization and Encoding

    由于良好的可扩展性,随机梯度下降(SGD)的并行实现是最近研究的热点.实现并行化SGD的关键障碍就是节点间梯度更新时的高带宽开销.因此,研究者们提出了一些启发式的梯度压缩方法,使得节点间只传输压缩后的 ...

  2. 【论文考古】分布式优化 Communication Complexity of Convex Optimization

    J. N. Tsitsiklis and Z.-Q. Luo, "Communication complexity of convex optimization," Journal ...

  3. 论文笔记——A Deep Neural Network Compression Pipeline: Pruning, Quantization, Huffman Encoding

    论文<A Deep Neural Network Compression Pipeline: Pruning, Quantization, Huffman Encoding> Prunin ...

  4. 【论文考古】联邦学习开山之作 Communication-Efficient Learning of Deep Networks from Decentralized Data

    B. McMahan, E. Moore, D. Ramage, S. Hampson, and B. A. y Arcas, "Communication-Efficient Learni ...

  5. 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》

    论文信息 论文标题:Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering论文作者:Chaki ...

  6. 【论文阅读】ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

    ShuffleNet: An Extremely Efficient Convolutional Neural Network for MobileDevices

  7. [论文]CA-Tree: A Hierarchical Structure for Efficient and Scalable Coassociation-Based Cluster Ensembles

    作者:Tsaipei Wang, Member, IEEE 发表:IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART B: CYBERNET ...

  8. 【论文考古】知识蒸馏 Distilling the Knowledge in a Neural Network

    论文内容 G. Hinton, O. Vinyals, and J. Dean, "Distilling the Knowledge in a Neural Network." 2 ...

  9. 【论文阅读】PBA-Population Based Augmentation:Efficient Learning of Augmentation Policy Schedules

    参考 1. PBA_paper; 2. github; 3. Berkeley_blog; 4. pabbeel_berkeley_EECS_homepage; 完

随机推荐

  1. 布客&#183;ApacheCN 编程/大数据/数据科学/人工智能学习资源 2020.2

    特约赞助商 公告 我们愿意普及区块链技术,但前提是互利互惠.我们有大量技术类学习资源,也有大量的人需要这些资源.如果能借助区块链技术存储和分发,我们就能将它们普及给我们的受众. 我们正在招募项目负责人 ...

  2. Swift字符串的介绍

    字符串的介绍 字符串在任何的开发中使用都是非常频繁的 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"" ...

  3. nginx开发: 模块nginx_tcp_proxy_module

    nginx支持ws\wss连接,接入nginx_tcp_proxy_module模块 nginx版本1.14.2,在nginx_tcp_proxy_module模块中的上下行数据接口中处理数据解包与打 ...

  4. Unsupported major.minor version 52.0报错问题解决方案

    感谢原文:https://blog.csdn.net/wangmaohong0717/article/details/82869359 1.问题描述 工程启动的时候,报错如下: nested exce ...

  5. IAAS, SAAS, PAAS

    原文是Pizza‐as‐a‐Service: a detailed view,用来类比Cloud Service Models.出处来自于Data Sovereignty and the Cloud ...

  6. js读取txt文件并下载

    //我在vue中测试, 可行, 这个只适用于google浏览器, ie需要xObject对象 // 下载txt if (/(txt)$/.test(name[1])) { var xhr = new ...

  7. json解析出现:java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXX

    感谢大佬:https://blog.csdn.net/one_ink/article/details/99817676 一.出错原因 当我们利用json解析中的toBean方法时,如果它的属性里面包含 ...

  8. 文件I/O流、文件、FileInputStreaam、FileOutputStream、FileReader、FileWriter的介绍和使用

    一.文件:保存数据的地方 1.文件流:文件在程序中是以流的形式类操作的 类比: 流:数据在数据源(文件)和程序(内存)之间经历的路径 输入流:数据从数据源(文件)到程序(内存)的路径 输出流:数据从程 ...

  9. suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用

    文章目录 编译部署nginx 下载nginx源码包 编译nginx 配置nginx.conf 配置nginx为systemctl管理 分发nginx二进制文件和配置文件 启动kube-nginx服务 ...

  10. InfluxDB 2.x Open Source Time Series Database

    1. 说明 目前,大家普遍还在采用 InfluxDB 1.x 的版本,官方2.x的版本已经发布一段时间了, 其主推flux语言且自带前端炫酷图表. 2. 官方网站 https://www.influx ...