边缘分布式机器学习

目录

  • 通信机制
    • 同步Synchronous
    • 异步Asynchronous
    • 半同步/延时同步
    • 通信的拓扑结构
      • 基于迭代式MapReduce的通信(同步模式)
      • 基于MPI之AllReduce的通信(同步模式)
        • AllReduce有很多变种
      • 基于参数服务器的通信(多为异步)
  • 去中心化算法
    • D-PSGD
  • 通信频率及通信量
    • 降低通信频率
    • 降低通信时间-通信隐藏
    • 减少通信数据量:梯度压缩
      • 梯度稀疏化
      • 模型低秩化处理
      • 梯度量化
  • 总结

通信机制

同步Synchronous

在这里插入图片描述

基于同步障
步调一致,收敛性有保证
等待严重,延迟大
Bulk Synchronous Parallel

异步Asynchronous

在这里插入图片描述

基于参数服务器(或者锁)
自主步调,等待少
收敛性差

半同步/延时同步

在这里插入图片描述

Stale Synchronous
这衷平衡

通信的拓扑结构

基于迭代式MapReduce的通信(同步模式)

在这里插入图片描述

基于MPI之AllReduce的通信(同步模式)

在这里插入图片描述

AllReduce有很多变种

星形拓扑、树形拓扑、蝶形拓扑、环形拓扑
pytorch、TensorFlow和caffe2等框架都实现AllReduce/Ring-AllReduce
在这里插入图片描述

基于参数服务器的通信(多为异步)

在这里插入图片描述

去中心化算法

D-PSGD

在这里插入图片描述

通信频率及通信量

如何减少通信开销?

  • 降低通信频率:Batch训练
  • 降低通信时间:通信隐藏
  • 减少通信数据量:梯度压缩(过滤、量化)
    在这里插入图片描述

降低通信频率

由于通信间隔会导致各个机器间存在一定的不一致,对优化带来一定影响。

该方法在凸优化问题下有理论保证,但在处理神经网络等非凸模型时缺乏理论证明,往往需要超参数的设置来取得较好的训练效果。
在这里插入图片描述
在这里插入图片描述

降低通信时间-通信隐藏

非对称的推送和获取,异步推送
在参数服务器架构下,推送模型更新和获取最新的全局模型两种操作采取不同的频率
谷歌提出的第一代分布式机器学习系统DistBelief [Dean J; NIPS2012]则采用了这种方法
与增加通信间隔类似,调整推送和获取的间隔时间也会给模型训练带来一定的精度损失
在这里插入图片描述
计算和传输流水线
模型的训练和网络通信构成流水线
减少整体的训练时间开销
模型更新的延迟稍有所增加

减少通信数据量:梯度压缩

梯度稀疏化:设置闻值,过滤掉不重要的梯度更新
模型低秩化:矩阵低秩分解,不重要的参数不通信
梯度量化: 对梯度值进行量化减少bit数
在这里插入图片描述

梯度稀疏化

  • 梯度稀疏化是对模型梯度进行过滤

  • 在每次迭代只发送部分参数:

    • 固定闽值稀疏化 [Strom N.ISCA 2015]
    • TopK稀疏化[Aji A F,et al. arXiv:1704.05021]
    • Deep Gradient Compression [Lin Y, et al.arXiv:1712.01887 ]
    • GTopk稀疏化[Shaohuai Shi,et al.ICDCS 2019]
    • 基于熵的梯度稀疏化 [Di Kuang,et al.HPCC 2019]
  • 通常梯度稀疏化需要压缩率较大,需要配合相应的优化算法实现模型精度与通信效率的平衡。

在这里插入图片描述

模型低秩化处理

  • 模型低秩化处理通过低秩分解压缩参数来减少通信量。
  • 探索参数中的低秩结构: 矩阵低秩分解,将原来比较大的参数矩阵分解成几个较小的矩阵的乘积
    在这里插入图片描述
  • 精度损失、压缩与解压缩开销

梯度量化

  • 对梯度值进行量化减少bit数
  • 降低精度,显著降低通信量
  • 主要方法
    • 1bit量化[Seide F,et al.2014]
    • QSGD [Alistarh D, et al. NIPS 2017]
    • TernGrad [Wen W, et al. NIPS 2017]
      在这里插入图片描述
      在这里插入图片描述

总结

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[mysql]索引优化-2

目录 一、分页查询优化1.根据自增且连续的主键排序的分页查询2.根据非主键字段排序的分页查询 二、Join关联查询优化1.嵌套循环连接 Nested-Loop Join(NLJ) 算法2.基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法 三、count(*)查询优化1.查询mysql自己维护的总行数2.sho…

Linux进程空间地址

程序地址空间回顾 问题引入 ---------------明天再写0.0

Zyxel NBG2105 身份验证绕过

直接访问如下payload则会以管理员身份跳转到 home.htm页面 ​​/login_ok.htm漏洞证明 查看本页面的cookie,login为1 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的信息、…

Linux文件缓冲区

文章目录 1. 缓冲区现象2. 用户级和系统级缓冲区3. 缓冲区刷新4. 为什么要有缓冲区5. 文件打印的全缓冲6. 模拟实现C语言文件标准库 本章gitee代码仓库:重定向、模拟C语言文件标准库 1. 缓冲区现象 我们这里分别调用了4个差不多的函数,但是结果是有一定差…

【云备份项目两万字总结】服务端篇 -----附源码

项目总结 整体回顾逐步实现utill.hppconfig.hppdata.hpphot.hppservice.hpp 代码 整体回顾 服务端的目标是: 对客户端的请求进行处理管理客户端上传的文件 于客户端进行数据交换,我们需要引入网络,所以我们引入第三方库----httplib.h库&am…

如何在 Python 中执行 MySQL 结果限制和分页查询

Python MySQL 限制结果 限制结果数量 示例 1: 获取您自己的 Python 服务器 选择 “customers” 表中的前 5 条记录: import mysql.connectormydb mysql.connector.connect(host"localhost",user"您的用户名",password"您的密码"…

xml schema中的sequence的含义

https://www.w3.org/TR/xmlschema-1/#element-sequence xml schema中的sequence的含义:包含的元素必须按规定的顺序出现。通过属性maxOccurs和minOccurs可以定义最多、最少出现的次数。最多可以定义不限制次数,最少可以定义0次。默认是最少出现1次&…

Python基础入门例程54-NP54 被5整除的数字(循环语句)

最近的博文: Python基础入门例程53-NP53 前10个偶数(循环语句)-CSDN博客 Python基础入门例程52-NP52 累加数与平均值(循环语句)-CSDN博客 Python基础入门例程51-NP51 列表的最大与最小(循环语句)-CSDN博客 目录 最近的博文: 描述 输入描述&#xf…

Spring面试题:(六)Spring注解开发原理

ioc过程 发现只要将bean注册到BeanDefinitionMap中就可以创建bean对象 如何将xml配置的bean注册到BeanDefinitionMap 通过注解注册的bean过程一样 注册bean的接口:BeanDefinitionRegistryPostProcessor 开启组件扫描的两种方式:xml和注解 xml方式…

c++类对象内存模型(一)

C对象模型可以概括为以下2部分: 1. 语言中直接支持面向对象程序设计的部分,主要涉及如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等。 2. 对于各种支持的底层实现机制。在c语言中,“数据”和…

PySide/PYQT如何用Qt Designer和代码来设置文字属性,如何设置文字颜色?

文章目录 📖 介绍 📖🏡 环境 🏡📒 实现方法 📒📝 Qt Designer设置📝 代码📖 介绍 📖 本人介绍如何使用Qt Designer/代码来设置字体属性(包含字体颜色) 🏡 环境 🏡 本文使用Pyside6来进行演示📒 实现方法 📒 📝 Qt Designer设置 首先打开Qt De…

VUE Slot

在某些场景中&#xff0c;我们可能想要为子组件传递一些模板片段&#xff0c;让子组件在它们的组件中渲染这些片段. <template><h3>ComponentA</h3><ComponentB><h3>插槽传递视图内容</h3></ComponentB> </template> <scr…

第6 章 布局管理及多窗口技术

6.1 控件布局技术 所谓GUI界面&#xff0c;归根结底&#xff0c;就是一堆可视化控件的叠加。创建一个窗口&#xff0c;把按钮放上面&#xff0c;把图标放上面&#xff0c;这样就成了一个界面。在放置时&#xff0c;控件的位置尤为重要。我们必须指定控件放在哪里&#xff0c;以…

JDK1.8 新特性(一)【默认方法、静态方法和Lambda表达式】

前言 今天学习Java8 新特性&#xff0c;主要是之前在学习 Scala、JavaFX 中遇到一些 Lambda 表达式&#xff0c;感觉 lambda 表达式确实很简洁&#xff0c;很有必要学一学。 目录 前言 1、接口的默认方法与静态方法 编写接口 编写接口的实现类 测试 2、Lambda表达式&am…

xsschallenge通关攻略详解

xsschallenge通过攻略 文章目录 xsschallenge通过攻略第一关第二关第三关第四关第五关第六关第七关第八关第九关第十关第十一关第十二关第十三关 简述 xsschallenge挑战攻略 ps: 终极测试代码 <sCr<ScRiPt>IPT>OonN"\/(hrHRefEF)</sCr</ScRiPt>IPT&g…

【Go入门】面向对象

【Go入门】面向对象 前面两章我们介绍了函数和struct&#xff0c;那你是否想过函数当作struct的字段一样来处理呢&#xff1f;今天我们就讲解一下函数的另一种形态&#xff0c;带有接收者的函数&#xff0c;我们称为method method 现在假设有这么一个场景&#xff0c;你定义…

2.4 - 网络协议 - TCP协议工作原理,报文格式,抓包实战,UDP报文,UDP检错原理

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 TCP协议 1、TCP协议工作原理2、TCP协议报文格式3、…

Accelerate 0.24.0文档 一:极速入门

文章目录 一、概述1.1 PyTorch DDP1.2 Accelerate 分布式训练简介1.2.1 实例化Accelerator类1.2.2 将所有训练相关 PyTorch 对象传递给 prepare()方法1.2.3 启用 accelerator.backward(loss) 1.3 Accelerate 分布式评估1.4 accelerate launch 二、Accelerate 进阶2.1 notebook_…

Home Assistant使用ios主题更换背景

Home Assistant使用ios主题、更换背景 lovelace-ios-dark-mode-theme 默认前置情况&#xff0c;1、已安转HACS插件2、搜索安装 IOS Dark Mode Theme1&#xff09;第一、二步应该很容易实现&#xff0c;configuration.yaml文件很容易被找到2&#xff09;而本人在进行第三步操作时…

时间序列预测实战(十四)Transformer模型实现长期预测并可视化结果(附代码+数据集+原理介绍)

论文地址->Transformer官方论文地址 官方代码地址->暂时还没有找到有官方的Transformer用于时间序列预测的代码地址 个人修改地址-> Transformer模型下载地址CSDN免费 一、本文介绍 这篇文章给大家带来是Transformer在时间序列预测上的应用&#xff0c;这种模型最…