边缘分布式机器学习

news2024/11/18 21:37:21

目录

  • 通信机制
    • 同步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]
      在这里插入图片描述
      在这里插入图片描述

总结

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网康NS-ASG安全网关任意文件读取

此文件没有对身份进行校验即可下载任意文件 构造payload访问漏洞url: ​​/admin/cert_download.php?filegjxbstxdt.txt&certfile../../../../../../../../etc/passwd漏洞证明: 文笔生疏,措辞浅薄,望各位大佬不吝赐教&…

【算法练习Day46】判断子序列不同的子序列

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 判断子序列不同的子序列总结…

【C++笔记】二叉搜索树的模拟实现

【C笔记】二叉搜索树的模拟实现 一、二叉搜索树的概念二、二叉搜索树的模拟实现2.0、定义二叉树节点2.1、非递归接口实现2.1.1、插入2.1.2、查找2.1.3、删除 2.2、递归接口实现2.2.1、插入2.2.2、查找2.2.3、删除 三、升级为K-V模型 一、二叉搜索树的概念 二叉搜索树的概念&am…

grpc使用教程

准备 1,安装grpc go get -u google.golang.org/grpc2, 安装go语言protobuf生成器protoc-gen-go go get -u google.golang.org/protobuf/cmd/protoc-gen-go3, 通过下面连接,找到合适版本并安装protoc工具,如windows选择 protoc-3.19.5-win64.…

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

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

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

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

C++算法:包含三个字符串的最短字符串

涉及知识点 有序集合 字符串 题目 给你三个字符串 a ,b 和 c , 你的任务是找到长度 最短 的字符串,且这三个字符串都是它的 子字符串 。 如果有多个这样的字符串,请你返回 字典序最小 的一个。 请你返回满足题目要求的字符串。…

2023年09月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 用枚举算法求解“100以内既能被3整除又能被4整除的元素”时,在下列数值范围内,算法执行效率最高的是?( ) A:1~101 B:4~100 C:12~100 D:12~96 答案:D 题目要求找出在 100…

面向对象特征【继承性】

文章目录 基本概念继承的语法继承性的细节方法的重写方法重写的要求 基本概念 继承性允许子类继承父类的属性和方法。在Java中,使用关键字extends来实现继承。例如: class Animal {void eat() {System.out.println("动物正在吃");} }class D…

绝了!现在制作电子期刊这么快而有效了?

​随着科技的进步,制作电子期刊已经变得越来越简单和高效。现在,您只需要一台电脑或手机,就可以快速制作出精美的电子期刊,而且还能有效地吸引读者的注意力。 但是如何快而有效的制作电子期刊呢? 1.首先打开FLBOOK在线…

2023第六届泰迪杯数据分析

第六届带队”指导“请私信本人,团队包含技能赛双一等,数学建模省一,泰迪杯挖掘国一,研究生队友。 去年一等作品可视化图如下,私信获取源码

[直播自学]-[汇川easy320]搞起来(4)看文档 查找设备(续)

2023.11.12 周六 19:05 补充一下关于以太网查找设备,如果设置如下: 然后点击测试: 点击ping:

Windows下Oracle安装和卸载

Windows下Oracle安装和卸载 1、Windows下安装Oracle 安装的版本:win32_11gR2_database。 解压之后双击setup.exe程序。 点击是。 配置安全更新,去掉复选框,点下一步。 提示未指定电子邮件地址,点是跳过。 配置安装选项&#xf…

Java继承和多态(1)

🐵本主题将分为篇文章,本篇文章将主要对继承进行讲解 一、介绍继承 1.1 什么是继承 假如有两个类:A类和B类,A类在保持原有成员变量和方法的基础上可以使用B类的成员变量和方法,此时就称A类继承了B类,A类为…

4.1每日一题(多元函数微分:偏导数判定(链导法、定义、先代后求))

链导法:如果每一层复合都可导(即在判断点要可导),则复合函数一定可导;如果中间层有不可导,就不方便使用链导法了(在(0,0)点不可导) 当链导法不好用时应该直接…

微信支付平台C#SDK_微信支付.net SDK

一、微信支付平台C# SDK V3 https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat/blob/main/docs/WechatTenpayV3 接口对应整理: https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat/blob/main/docs/WechatTenpayV3/Basic_Mod…

vue3响应式api

响应式api——compositon api setup: 不要再想this问题执行是在beforeCreated之前 beforeCreated:也就是创建了一个实例 created:挂载了数据 通过形参props接收,只读 以后所有代码都写到setup中 判断是否只读:isReadon…

大数据可视化数据大屏可视化模板【可视化项目案例-05】

🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本文选自专栏:可视化技术专栏100例 可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不…

数据结构:AVLTree的插入和删除的实现

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》 文章目录 前言一、AVLTree二、AVLTree的插入插入新增节点调整平衡因子旋转左单旋(新增节点位于较高右子树的右侧)右单旋(新增节点位于较高左子树的左侧)右左双旋(新增节点在较高右子树的左子…

多数据源切换

多数据源切换 1.jdbcTemplate2.使用切面3.mybatis层次的多数据源4.spring的dynamic自动注入 项目中经常会有多个数据源,那么如何处理呢 有4种方法 准备: 创建两个数据库 CREATE SCHEMA test DEFAULT CHARACTER SET utf8mb4 ; CREATE SCHEMA school DEFA…