高级分布式系统-第15讲 分布式机器学习--分布式机器学习算法

news2024/12/28 5:38:32

高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客

分布式机器学习算法

按照通信步调,大致可以分为同步算法和异步算法两大类。

同步算法下,通信过程中有一个显式的全局同步状态,称之为同步屏障。当工作节点运行到同步屏障 ,就会进入等待状态,直到其工作节点均运行到同步屏障为止。接下来不同工作节点的信息被聚合并分发回来,然后各个工作节点据此开展下一轮的模型训练。

异步算法下,各个工作节点不再需要等待,而是以一个或多个全局服务器为作为中介,实现对全局模型的更新和读取。这样可以显著减少通信时间,从而获得更好的多机扩展性。

同步算法--同步SGD算法(SSGD)

同步算法--同步SGD算法(SSGD)最基础的同步算法,将SGD套用到同步的BSP框架中。

实际上就是将各个工作节点依据本地训练数据所得到的梯度叠加起来,整个过程等价于一个批量大小增加K倍的单机SGD算法。

特点:由于在每一个小批量更新之后都有一个同步过程,通信频率较高。

同步SGD算法优点与缺点

优点:在每个小批量计算的计算量很大,模型规模不大的情况下,可以获得理想的加速性能。

缺点:小批量中样本较少,模型规模较大时,可能会花费数倍于计算时间的代价进行通信。

解决方法:

 在通信环节加入时空滤波,减少通信量

 扩大本地学习时的批量大小,拉长本地训练时间

启发:

随着批量大小的增加,随机梯度的方差变小,会降低算法跳出某些局部最优解的可能。

 当批量大小较大,模型比较容易收敛到优化曲面比较尖锐的局部最优;当批量大小较小时,会收敛到优化曲面

相对平缓的的局部最优点。

 考虑到小批量中的样本较多时求得的梯度更加准确,我们可以相应地增加习率使得每步更新得更多一些,从而

解决收敛变慢的问题。

同步和异步的融合

同步和异步算法有各自的优缺点和适用场景,如果可以把它们结合起来应用,取长补短,或许可以更好地达到收敛速率与收敛精度的平衡。

分布式机器学习理论

分布式机器学习的目标:适用大规模计算资源,充分利用大数据来训练数据,从而加速训练速度或者实现训练规模的突破。

 收敛性:具有良好的收敛性质,能够以可接受的收敛速率收敛到(正则化)经验风险的最优模型;

 加速比:相比与对应的单机优化算法,达到同样的模型精度所需要的时间明显降低,甚至随着工作节点的增加,需要的时间以线性的阶数减少;

 泛化性:不出现过拟合现象,不仅训练性能好,测试性能也好。

为了达到更好的加速比,会人为的减少工作节点之间的通信量

分布式机器学习系统

目前使用的分布式机器学习系统大多可以被三种架构所覆盖,可分为三种:基于IMR的系统、基于参数服务器的系统和基于数据流的系统

基于IMR的系统主要的适用场景是“同步数据并行。它从大数据处理平台演化而来,运行逻辑比较简单。

基于参数服务器的系统可以同时支持同步和异步的并行算法。它的接口简单明了、逻辑清晰,可以很方便、灵活地与单机算法相结合。

基于数据流的系统由一个有向无环图定义,可以灵活地描述复杂地并行模式。

基于参数服务器的系统--Multiverso参数服务器

采用数据表的结构存储参数。依据模型的不同,数据有不同的具体形式:可以是简单向量,也可以是矩阵、张量或哈希表;可以使稠密的形式,也可以稀疏的形式。

Multiverso系统使用消息驱动的服务模式,也就是用一个消息队列接收并保存来向工作节点的请求。服务器端会监听队列中的消息,并按照请求的类别由相应的消息响应函数完成服务。为了提高服务器端处理的效率,Multiverso系统采用线程池对请求并行处理。

Multiverso系统实现同步和异步算法

Multiverso系统的客户端逻辑

包含的功能:用户接口(API),客户端的存储逻辑和客户端的发送逻辑。

 客户端的存储逻辑

包含两个部分:一是用来存储从参数服务器端获得的全局参数,二是用来保存本地产生的模型。

 客户端的发送逻辑

在网络传输前对数据进行分包和聚合。在接受参数服务器端传来的最新参数时,客户端也需要将来自不同服务器的信息汇总,然后把信息存储到本地模型容器之中。

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

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

相关文章

MySQL索引创建原则和失效问题

一.索引创建原则 数据量较大,且查询比较频繁的表常作为查询条件、分组、排序的字段字段内容区分度高内容较长,使用前缀索引尽量创建联合索引要控制索引的数量如果索引列不能存储NULL值,请在创建表示使用NOT NULL约束它 二.索引失效 违反最左前缀法则范围查询右边的列,不能使用…

可持续技术:2024 年技术趋势的绿色创新

随着我们步入2024年,对可持续技术解决方案的关注从未如此强烈。从可再生能源到环保小工具,科技行业正朝着更环保、更可持续的未来大步迈进。 在快速发展的技术领域,创新是推动我们走向可持续未来的动力。随着我们步入2024年,对可持…

基于Docker Compose单机实现多级缓存架构2024

文章目录 一、环境参考二、专栏简介三、扩展 一、环境参考 NameVersionDocker Desktop for Windows4.23.0Openjdk8MySQL8.2.0Redis7.2Canal1.1.7OpenResty1.21.4.3-3-jammy-amd64Lua-Caffeine- 二、专栏简介 多级缓存实现过程比较长,将拆分为多个文章分步讲述。如…

[我的rust付费栏目]rust跟我学(一)已上线

大家好,我是开源库get_local_info的作者带剑书生,get_local_info诞生半个月,现在已经获得500的下载量,并获社区日更前五名,后被西安城市开发者社区收录(【我的Rust库】get_local_info 0.1.5发布_rust_科比布…

CMake 实战构建TcpServer项目 静态库/动态库

爱编程的大丙CMake: 20. 举例 - 下_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV14s4y1g7Zj?p20&spm_id_frompageDriver&vd_sourcea934d7fc6f47698a29dac90a922ba5a3 hehedalinux:~/Linux/LinuxServerCpp$ ls Buffer.cpp Log.h Buffe…

墙地砖外形检测的技术方案-图像分割

基础原理 由于对碗口进行缺口检测,因此只需要碗口的边界信息。得到陶瓷碗区域填充后的图像,对图像进行边缘检测。这是属于图像分割中的内容,在图像的边缘中,可以利用导数算子对数字图像求差分,将边缘提取出来。 案例…

shell脚本算术运算

算术运算符 注意: 不是单引号,是键盘左上角那个反单引号条件表达式要放在方括号之间,并且要有空格,例如:[ a a ab]是错误的,必须写成[ $a $b ]。cost_Minexpr $cost_time / 60 前后不能有空格,否则出…

【第十四课】并查集(acwing-836合并集合 / 做题思路 /c++代码)

目录 错误思路(但能骗分emm)--邻接矩阵(可以跳过) 思路 存在的问题 代码如下 并查集 思路 代码如下 一些解释 错误思路(但能骗分emm)--邻接矩阵(可以跳过) 思路 刚看到这道题我自己做的时候,因为之前学的trie树的时候意识到使用二维数组的含义,…

如何配置Pycharm服务器并结合内网穿透工具实现远程开发

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

开启C++之旅(下):引用、内联函数及现代特性(auto和范围for循环)

上次介绍了:开启C之旅(上):探索命名空间与函数特性(缺省参数和函数重载) 今天就接着进行c入门的知识讲解 文章目录 1.引用1.1引用概念1.2引用特性1.3常引用其他情况 1.4引用使用场景1.4.1做参数1.4.2做返回…

使用VSCode内的jupyter编写R语言:绘制中国省份地区热力图

R语言绘制中国省份地区热力图教程 1、R语言的安装和编辑器的选择 对于一门从未接触过的编程语言,相信大家的吐槽点和我一样:又要安装软件,配置环境!其实R语言的安装和环境配置并不复杂,只需要安装两部分内容&#xf…

第15届蓝桥STEMA测评真题剖析-2023年12月17日Scratch编程初中级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第166讲。 第15届蓝桥第3次STEMA测评,这是2023年12月17日举办的STEMA,比赛仍然采取线上形式。这…

ESP32-Touch(Arduino)

Touch Touch传感器是一种外围设备,具有内部振荡器电路,可在固定时间段内测量相应GPIO引脚上的充电/放电频率。 因此,这些触摸传感器也被称为电容式传感器。例如,如果您触摸这些引脚中的任何一个,手指电荷将改变这个周…

Vue学习计划-Vue3--核心语法(十)Proxy响应式原理

Proxy响应式原理 1.Vue2的响应式 实现原理: 对象类型:通过Object.defineProperty()对属性的读取、修改进行拦截(数据劫持)数组类型:通过重写更新数组的一系列方法来实现拦截,(对数组的变更方法…

【数学建模】图论模型

文章目录 图的基础理论及networkx简介图的基本概念图的表示及Networkx简介图的表示NetworkX简介 最短路算法及其Python实现固定起点到其余各点的最短路算法每对顶点间的最短路算法最短路应用 最小生成树算法及其networkx实现基本概念最小生成树算法最小生成树应用 匹配问题最大…

【JavaEE进阶】 利用Spring简单实现加法计算器和用户登录

文章目录 🎍序言🌳加法计算器🚩准备工作🚩约定前后端交互接⼝🌲后端服务器代码的书写 🌴用户登录🚩效果展示🚩准备工作🚩约定前后端交互接⼝🎈需求分析&#…

【leetcode刷题】模拟专题

模拟 一、替换所有的问号1、题目链接2、解析3、代码 二、提莫攻击1、题目链接2、解析3、代码 三、Z字形变换1、题目链接2、解析3、代码 四、外观数列1、题目链接2、解析3、代码 五、数青蛙1、题目链接2、解析3、代码 一、替换所有的问号 1、题目链接 leetcode链接 2、解析 3、…

【排序算法】一、排序概念和直接插入排序(C/C++)

「前言」文章内容是排序算法之直接插入排序的讲解。(所有文章已经分类好,放心食用) 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、排序概念的介绍二、直接插入排序2.1 原理2.2 代码实现(C/C&#xf…

鸿蒙开发-UI-布局-层叠布局

鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 文章目录 前言 一、基本概念 二、对齐方式 三、Z序控制 四、使用场景 总结 前言 上文详细学习了线性布局,学习了线性容器内子元素在主轴以及交叉轴上的排列方式,子元素自适应相关的知识点,本文继…

墙地砖外形检测的技术方案-图像形态学

基础理论 得到的灰度图像需进行二值化处理和区域填充,涉及两个步骤,第一,对图像进行分割,将图像分割成目标和背景; 第二,对分割后图像进行区域填充。本例中的背景为黑色,可以通过基本的全局阈…