Communication Efficient Large-Scale Training with Adams Convergence Speed

news/2025/2/13 21:29:02/文章来源:https://www.cnblogs.com/MTandHJ/p/18714453

目录
  • 1-bit Adam
    • 1-bit SGD
  • 代码

Seide F., Fu H., Droppo J., Li G. and Yu D. 1-bit stochastic gradient descent and its application to data-parallel distributed training of speed dnns. 2014.

Tang H., Gan S., Awan A. A., Rajbhandari S., Li C., Lian X., Liu J., Zhang C. and He Y. 1-bit Adam: Communication efficient large-scale training with adam's convergence speed. ICML, 2021.

本文提出了一种 Adam 预训练的 1-bit SGD 优化方法.

1-bit Adam

  • 在数据并行的分布式训练中, 需要将各个节点的梯度 allreduce 在一起, 这里面不可避免存在一些通信代价.

  • 为此, 本文希望在梯度交换前, 先将梯度进行(量化)压缩, 以减少通信代价.

1-bit SGD

  • 首先, 我们讲实现 1-bit SGD 的可能性.

  • vanilla SGD:

    \[\bm{x}_{t+1} = \bm{x}_t - \gamma \bm{g}_t = \bm{x}_0 - \gamma \sum_{s=0}^t \bm{g}_s. \]

  • SGD 带压缩的梯度:

    \[\bm{x}_{t+1} = \bm{x}_t - \gamma C_{\omega} [\bm{g}_t] = \bm{x}_t - \gamma (\bm{g}_t - \bm{\delta}_t) = \bm{x}_0 - \gamma \sum_{s=0}^t \bm{g}_s + \underbrace{\gamma \sum_{s=0}^t \bm{\delta}_s}_{\text{history compression error}}. \]

    这里 \(C_w = \frac{1}{N} \sum_{n=1}^N Q^{-1} \circ Q(g; n)\), \(N\) 表示总的节点数, \(Q, Q^{-1}\) 分别表示量化与反量化操作.

  • 显然如果不进行任何处理, 累积的误差是非常惊人的. 幸而, 之前的工作提出了一种误差补偿 (error compensation) 机制:

    \[\begin{align*}\bm{x}_{t+1}&= \bm{x}_t - \gamma C_{\omega} [\bm{g}_t + \bm{\delta}_{t-1}]= \bm{x}_t - \gamma (\bm{g}_t - \underbrace{\bm{\delta}_t + \bm{\delta}_{t-1}}_{\text{error cancellation}}) \\&= \bm{x}_0 - \gamma \sum_{s=0}^t \bm{g}_s + \gamma \sum_{s=0}^t (\bm{\delta}_s - \bm{\delta}_{s-1}) \\&= \bm{x}_0 - \gamma \sum_{s=0}^t \bm{g}_s + \gamma \bm{\delta}_t. \end{align*} \]

    因此误差不会累积.

  • 这里需要说明一下具体的流程:

    1. 每个 node 计算得到梯度 \(\bm{g}_t\), 以及上一次量化的误差 \(\bm{\delta}_{t-1}\), 传递如下信号:

      \[Q(\bm{g}_t + \bm{\delta}_{t-1}). \]

    2. 计算当前的误差累积:

      \[\bm{\delta}_{t} = \bm{g}_t - Q^{-1} \circ Q(\bm{g}_t + \bm{\delta}_{t-1}). \]

  • 因此, 1bit-SGD 是没法降低显存在占用的, 因为我们要维护额外的 \(\bm{\delta}_t\), 它的作用主要是降低平均梯度时所带来的通信代价.

  • 然而, 上面的推导依赖对梯度的线性累积, 如果是 Adam 这种非线性的优化器, 误差补偿也没法阻止误差的累积. 因此, 本文所提出的 1-bit Adam 的流程如下:

    1. 在一开始, 采用正常的 Adam 进行更新, 得到二阶动量的一个估计 (因为作者发现, Adam 的二阶动量在训练一段时间后趋于稳定);
    2. 固定二阶动量, 并开始量化梯度, 转而采用 1-bit SGD 的格式更新.

  • 所以本质上, 1-bit Adam 还是一个 1-bit SGD 方法, 相当于设置了一个更合理的学习率? 实际上, 作者的二阶动量会逐步区域稳定的这个假设也是不合理的, 至少我做实验的经常会观察的逐步增加的二阶动量.

代码

[DeepSpeed]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/883412.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于粒子群算法的网络最优节点部署优化matlab仿真

1.程序功能描述基于粒子群算法的网络最优节点部署优化,实现WSN网络的节点覆盖最大化。 2.测试软件版本以及运行结果展示MATLAB2022A版本运行 3.核心程序%使用PSO优化剩余WSN节点位置以覆盖洞 Numv = 2*(N); func = @(x)fobjs(x,Rmax,area); Vmin = zeros(Numv,1);…

边坡智能监测识别摄像头

边坡智能监测识别摄像头具备24小时不间断的视频监控能力,可以随时捕捉到边坡的动态变化,并记录所有视频数据。通过深度学习模型,该设备可以自动识别不同类型的异常现象,包括土体位移、裂缝扩展等,大幅提升检测准确率。一旦发现异常情况,系统会立即向相关人员发送警报信息…

AI滴漏监测识别摄像机

AI滴漏监测识别摄像机具备24小时不间断的视频监控能力,可以随时查看现场情况,并记录所有视频数据。一旦检测到液体泄漏,系统会立即向管理人员发送警报信息,以便迅速采取措施进行处理。AI滴漏监测识别摄像机设计坚固,可以在各种复杂环境中稳定工作,包括极端温度、高湿度等…

Fastjson反序列化漏洞原理与漏洞复现

根据这位大佬文章学习 https://blog.csdn.net/Bossfrank/article/details/130100893 Fastjson反序列化 一:json是啥 json是一种格式json全称是JavaScript object notation。即JavaScript对象标记法,使用键值对进行信息的存储。点击查看代码 {"name":"BossFran…

串串全家桶

目前有:马拉车Manacher 用途: 该算法可在 \(O(n)\) 的时间复杂度下求出以每一个点(和缝,即回文串长为偶数的情况)为中心的最长回文串长度。 做法: 前置:定义朴素算法为,对于每一个点为中心的情况,暴力枚举是否可以扩展两边,直到不能扩展,此时得到结果。 代码如下,其…

C#字符串拼接的6种方式及其性能分析对比

前言 在C#编程中字符串拼接是一种常见且基础的操作,广泛应用于各种场景,如动态生成SQL查询、构建日志信息、格式化用户显示内容等。然而,不同的字符串拼接方式在性能和内存使用上可能存在显著差异。今天咱们一起来看看在C#中字符串拼接的常见6种方式及其使用BenchmarkDotNet…

寒假集训专题五:搜索

ESAY1:自然数的拆分 P2404 自然数的拆分问题 题目描述 任何一个大于 \(1\) 的自然数 \(n\),总可以拆分成若干个小于 \(n\) 的自然数之和。现在给你一个自然数 \(n\),要求你求出 \(n\) 的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,…

多模态 AI 怎么玩?这里有 18 个脑洞

在 RTE 开发者社区,我们会和大家一起探索全球最前沿的 Real-Time AI 技术,和最有想法的新兴场景。Google 近期举办了一场名为「MultiModal Hackathon」的限时编程活动,聚焦于 多模态与 Gemini 2.0 的最新能力。活动汇聚了 200 多位开发者,共同探索多模态 AI、实时 AI、生成…

Svelte 最新中文文档翻译(7)—— snippet 与 @render

前言 Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…

基环树 DP:学习笔记

总述 定义 基环树,是一个 \(N\) 个点和 \(N\) 条边的连通图,特征是图中有且仅有一个环。特别的,如果不连通且每个连通块的点数和边数都相等,那么这就是一个基环树森林。 基环树 DP,顾名思义,就是在一个基环树上 DP,或是 DP 的结构类似基环树。相对于正常的树型 DP,一般…

数字孪生如何让GIS场景视效瞬间高大上?带你了解鲸孪生中的GIS系统

GIS与数字孪生的结合非常紧密,而山海鲸可视化作为一个数字孪生平台,也将GIS系统整合在了鲸孪生功能之中。 GIS中包含了大量的数据,例如遥感数据、地形数据、倾斜摄影数据等,能够为数字孪生系统提供非常好的补充。同时,传统的GIS系统整体视觉效果相对较差,与其他模型和数据…

2 分支 多个思路

利用分支,你就可以在同一个代码基础上同时处理多个完全没有关联、相互独立的工作。考虑以下场景。 假设你正在改一个 Bug-A,此时已经产生了大量的代码修改,并且离修复完成还有很长一段时间(起码得明天)。此时,有一个着急但简单的 Bug-B 需要你立即完成,并在一个小时内同…