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

分布式机器学习算法

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

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

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

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

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

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

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

同步SGD算法优点与缺点

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

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

解决方法:

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

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

启发:

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

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

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

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

解决收敛变慢的问题。

同步和异步的融合

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

分布式机器学习理论

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

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

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

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

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

分布式机器学习系统

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

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

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

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

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

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

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

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

Multiverso系统的客户端逻辑

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

 客户端的存储逻辑

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

 客户端的发送逻辑

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

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

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

相关文章

4.2 MATRIX MULTIPLICATION

矩阵-矩阵乘法,或简称矩阵乘法,在 i X j(i 行 by j 列)矩阵 M 和 j x k 矩阵 N 之间产生 i X k 矩阵P。矩阵乘法是基本线性代数子程序(BLAS)标准的重要组成部分(见第3章中的“线性代数函数”边栏…

原生IP代理如何帮助跨境电商店铺做谷歌广告投放业务的?

随着全球化的发展,越来越多的电商店铺开始拓展跨境业务,而谷歌广告作为全球最大的广告平台之一,为跨境电商店铺带来了巨大的收益和商机。 然而,由于谷歌广告的地域限制和审查机制,店铺很难直接进行投放业务&#xff0…

Photovoltaic cell storage element IC---AEM13920

0 Preface/Foreword 0.1 Functional Block Diagram(功能框图) 1 register introduction

【极光系列】SpringBoot集成Mybatis

【极光系列】SpringBoot集成Mybatis 一.gitee地址 浅夏的猫 shawsongyue 直接下载可用 https://gitee.com/shawsongyue/aurora.git 二.mysql安装教程 详细参考我的另外一遍博客: https://blog.csdn.net/weixin_40736233/article/details/135582926?spm1001.201…

抖店搬运同行产品截流后,还是不出单?优化主图和链接的方法如下

我是王路飞。 跟品、搬运同行店铺内的爆品上架到自己的店铺,公认是起店最快的方法。 因为有流量的产品,同行已经替你选出来了,你只需要上架去卖就可以了。 但很多新手采用跟品方法的时候,自己店铺还是没什么流量,也…

基于Python实现地标景点识别

目录 前言简介地标景点识别的背景 地标景点识别的原理卷积神经网络(CNN)的基本原理地标景点识别的工作流程 使用Python实现地标景点识别的步骤数据收集数据预处理构建卷积神经网络模型模型训练 参考文献 前言 简介 地标景点识别是一种基于计算机视觉技术…

为什么建筑工程行业要十分重视主数据管理?

业务背景 主数据管理是数字化技术不可或缺的一部分。 建筑行业数字化转型中,跨部门协作是非常重要的。主数据管理能够提供一个统一的数据平台,方便各个部门数据共享和交流,也可以实现人力、物资、设备等各种资源的集中管理和优化配置。 此外…

LeetCode刷题---逆波兰表达式求值

解题思路: 使用栈来解决该问题 首先定义一个栈Stack,接着对tokens数组进行遍历,如果当前元素是非数字字符串的话(运算符),就从栈中取出两个元素根据该运算符进行计算,将计算后的结果添加到栈中。如果当前元素是数字字符…

flink1.14.5使用CDH6.3.2的yarn提交作业

使用CDH6.3.2安装了hadoop集群,但是CDH不支持flink的安装,网上有CDH集成flink的文章,大都比较麻烦;但其实我们只需要把flink的作业提交到yarn集群即可,接下来以CDH yarn为基础,flink on yarn模式的配置步骤…

去不了哈尔滨? 来看这里VR全景线上云体验

如果你无法亲自前往哈尔滨,那么不要失望,因为现在有一种全新的方式让你在家就能领略到哈尔滨的美丽景色。 冰城客户端、哈尔滨新闻网承办的“激情迎亚冬 冰雪暖世界——2024年哈尔滨冰雪乐园” 运用720云VR打造的沉浸式体验产品正式上线,将带…

如何使用Java采集汽车之家车辆配置参数信息

目录 一、引言 二、采集工具选择 三、采集流程设计 1、确定采集目标 2、确定采集URL 3、发送HTTP请求 4、解析HTML页面 5、CSS选择器或jQuery选择器。 6、异常处理和日志记录 四、代码实现示例 五、结果与分析 六、结论 随着互联网的普及和信息技术的不断发展&…

二叉树题目:从前序与后序遍历序列构造二叉树

文章目录 题目标题和出处难度题目描述要求示例数据范围 前言解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:从前序与后序遍历序列构造二叉树 出处:889. 从前序与后序遍历序列构造二叉树 难度 7 级 题目描述…

【数据结构】排序之归并排序与计数排序

个人主页 : zxctsclrjjjcph 文章封面来自:艺术家–贤海林 如有转载请先通知 目录 1. 前言2. 归并排序2.1 递归实现2.1.1 分析2.1.2 代码实现 2.2 非递归实现2.2.1 分析2.2.2 代码实现 3. 计数排序3.1 分析3.2 代码实现 4. 附代码4.1 Sort.h4.2 Sort.c4.3…

【Intel校企实践】猫狗大战

作业简介: 问题描述: ​ 在这个问题中,你将面临一个经典的机器学习分类挑战——猫狗大战。你的任务是建立一个分类模型,能够准确地区分图像中是猫还是狗。 预期解决方案: ​ 你的目标是通过训练一个机器学习模型&a…

【深蓝学院】移动机器人运动规划--第1章 运动规划介绍与地图构建--笔记

文章目录 1. Course introduction2. Course Outline2.1 课程概览2.2 课程算法概览2.2.1 基于搜索的前端2.2.2 基于采样的前端2.2.3 满足动力学约束的路径搜索2.2.4 后端轨迹优化 3. 地图表示3.1 Occupancy grid map占用栅格地图3.2 八叉树地图3.3 Voxel hashing(体素…

虾皮开通:如何在虾皮(Shopee)平台上开通店铺详细步骤

在全球电商市场的竞争中,越来越多的卖家选择在虾皮(Shopee)平台上开设店铺。作为东南亚地区最大的电子商务平台之一,虾皮提供了一个便捷的销售渠道,吸引了数百万的买家和卖家。如果您想在虾皮上开设自己的店铺&#xf…

《动手学深度学习》学习笔记 第10章 注意力机制

本系列为《动手学深度学习》学习笔记 书籍链接:动手学深度学习 笔记是从第四章开始,前面三章为基础知识,有需要的可以自己去看看 关于本系列笔记: 书里为了让读者更好的理解,有大篇幅的描述性的文字,内容很…

利用c 原生头文件完成JPEG全流程编码

骄傲一下,经过一个多月的努力,终于完成jpeg的全套编码。经验证此程序可以把摄像头yuv信号转为JPG图片。现在的程序还不完美,只能对长和宽尺寸是16倍数的信号转码。而且转码速度太慢,一帧1280720的图片要2秒多。此程序只能对yuv420…

静态路由高级特性(HCIA)

目录 一、静态路由高级特性 1、路由条目六要素 2、路由分类 3、静态路由配置命令 (1)静态路由中下一跳MA和P2P区别 4、静态路由加路由表条件 5、permanent特性 二、路由冗余和负载 1、控制层面control plane 2、数据层面data plane 路由操控精髓&#xf…

测试用例的设计(超详细总结)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料 1. 测试用例的概念 软件测试人员向被测试系统提供的一组数据的集合,包括 测试环境、测试步骤、…
最新文章