以下文章摘录自:

《机器学习观止——核心原理与实践》

京东: https://item.jd.com/13166960.html

当当:http://product.dangdang.com/29218274.html

(由于博客系统问题,部分公式、图片和格式有可能存在显示问题,请参阅原书了解详情)

1.1        分布式机器学习核心理念

神经网络模型的参数规模和数据量的指数级增长,使得业界对于机器学习框架的性能诉求也越来越强烈。在单机环境下训练一个大数据量的网络模型,理论上有可能需时数月甚至数年,无论是在学术界还是工业界这显然都是无法接受的。

因而如何实现分布式的机器学习框架是近年来兴起的又一个热门研究方向。本章内容我们将梳理目前这个研究方向上的一些前沿技术和成果,以及它们的主要优缺点。

在一个分布式机器学习框架中,至少包含如下几个核心元素:

l  机器学习模型

既可以是机器学习模型,也可以是深度学习模型

l  模型参数

机器学习模型和模型参数的关系有点类似于“程序和数据”——程序是只读的代码,数据则是每一个运行代码的实例所独有的部分。换句话说,训练的目的就是通过不断迭代更新模型参数的过程

l  训练数据

训练数据好比是“机油”,它源源不断的输入是驱动整个“训练机器”高速运转起来的关键,最终达到损失函数最小化的目的

l  计算节点

计算节点是分布式框架中的一个个“发动机”,它们针对训练数据进行运算处理,并通过互相协同(有可能依赖于管理节点)来保证大家都朝着同一个目标前进

l  数据节点

数据和计算既有可能在同一个节点(通常是数据量较小时),也有可能是分开的(比如数据量很大,需要分布式存储的情况)。存储训练数据的节点我们把它称之为数据节点

l  管理节点

在中心化的分布式框架中,管理节点负责统筹安排整个训练过程。它需要为不同角色的个体或者同一角色的不同个体做全局调度,保证工作“有条不紊”地开展

简易框图如下所示:

图  分布式机器学习框架抽象简图

针对上述这几个核心元素,大家可以来思考一下:分布式机器学习框架中将涉及到哪些核心技术难题呢?为了回答这个问题,我们可以首先梳理一下分布式机器学习模型在训练时都经历了哪些阶段,然后再从中“窥探”出潜在的“瓶颈”。

l  Step0. 训练数据准备

“数据”是否与“计算”在同一个节点,很大程度上将影响分布式性能。因为大量的网络间传输将耗费不少时间,造成效率低下

l  Step1. 任务派发

任务派发到各个分布式节点的方法有很多。例如有的分布式框架是由中心管理节点将任务分发给子节点,而有的则需要人工操作子节点来启动任务

l  Step2. 启动一轮训练迭代

l  Step3. 预读取数据

如果我们可以在一轮新的迭代训练开始前完成数据的预读取,那么就有可能将网络传输成本尽可能“隐藏”起来

l  Step4. 执行batch size数据量的前向传播

大家应该会有疑问——batch size的取值对于训练性能是否会有影响,我们应该取多大的值呢?答案是肯定的。而且对于分布式框架而言,batch size的大小对于训练性能影响还是不小的。理论上batch size越大,一次性传输的数据量越多,那么从全局角度来看消耗在网络通信上的时间占比就会越小。不过batch size超过一定程度以后,通常情况下error rate就会上升。因而学术界近几年有不少研究人员做了大量的实验,并提出了一些可行的解决方案来避免这一问题。请大家参见后续小节的分析了解详情

l  Step5. 计算损失函数

模型训练的目的,简单而言就是使得误差最小化:

其中f(w)可以有多种计算方式,例如比较常用的Euclid distance:

l  Step6. 后向传播

通过反向求导来确定梯度向量

l  Step7. 计算参数更新值

例如采用如下公式:

l  Step8. 根据同步或者异步模型来决定具体的下一步操作

对于同步参数更新,所有节点都需要把参数传回中心节点(比如parameter server),然后再做统一处理;对于异步参数更新,则可以由各个节点自行更新参数

l  Step9. 回到step2. 直到满足结束条件

图  分布式迭代训练算法范例

引用自《Scaling Distributed Machine Learning with System and Algorithm Co-design》

从上述几个步骤中,我们大致可以归纳出整个分布式机器学习框架中有可能影响到性能的一些核心点:

图  分布式机器学习框架性能要点

(1) 硬件

与分布式框架性能强相关的硬件资源包括但不限于:

l  CPU资源

大量实验结果证实,模型训练时间不单取决于GPU,而且与CPU的频率、核数息息相关

l  GPU资源

毋庸置疑,GPU资源对于加速模型训练过程大有裨益

l  网络设备

网络设备在分布式环境中也起到至关重要的作用,包括paramter和training data在内的大量数据需要在训练过程中传输,因而网络设备的带宽和性能好坏将直接影响到分布式训练框架的表现

(2) 通信框架

我们这里的通信框架,是指分布式环境中个体与个体之间的具体通信方式。取决于个体类型的差异,通信方式也有所区别。

l  控制模式

l  CPU与GPU之间的通信

l  GPU与GPU之间的通信

l  网络通信

l  数据访问方式

(3) 数据

与训练数据相关的关键点包括但不限于:

l  数据与计算同源

如果数据与计算在同一个节点,或者“相近”,那么无疑将降低数据的传输量从而提升效率

l  数据预取

数据预取是常用一种隐藏“work load”的方式,例如在计算节点执行运算任务的同时去准备下一轮数据

l  数据缓存

如果针对访问过的数据做合理的缓存,那么在降低数据重复访问次数的同时,我们也可以达到提升训练效率的目的

l  数据分布式存储

对于大规模的模型训练场景,通常需要使用分布式环境来存储和管理数据。采用什么类型的分布式文件系统也将影响训练性能,因而大家需要结合具体的业务场景做出正确的选择

(4) 模型和算法

除了上述一些影响因素外,当前主流的不少分布式机器学习框架还依赖于模型算法本身的优化,只有将它们结合起来才有可能达到最佳的性能状态。例如batch size的选择,数据的切分等手段都需要由上层应用来配合完成。

分布式机器学习核心理念相关推荐

  1. 亚马逊云科技数据库的五大核心理念,为企业上云发展助阵

    数据智能产业创新服务媒体 --聚焦数智 · 改变商业 近日,走过十个年头的亚马逊re:Invent大会今年落下帷幕,亚马逊云科技发布了包括云数据库在内的一系列重塑未来的创新技术与服务,并邀请全球各行各 ...

  2. 微软亚洲研究院开源分布式机器学习工具包

    微软亚洲研究院开源分布式机器学习工具包 为了满足研究人员和开发者日益增长的各种需求,微软亚洲研究院于日前将分布式机器学习工具包(DMTK)通过Github开源.DMTK由一个服务于分布式机器学习的框架 ...

  3. PAI分布式机器学习平台编程模型演进之路

    摘要: 在云栖计算之旅第5期-大数据与人工智能大会上,来自阿里云大数据事业部的九丰分享了<PAI分布式机器学习平台编程模型演进之路>.他主要介绍了在集团中使用机器学习解决大数据问题时如何通 ...

  4. 6 个核心理念!诠释了吴恩达新书《Machine Learning Yearning》

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 编译 | 红色石头 吴恩达的<Machine Learning Yearning> ...

  5. 机器学习与分布式机器学习_我将如何再次开始学习机器学习(3年以上)

    机器学习与分布式机器学习 重点 (Top highlight) I'm underground, back where it all started. Sitting at the hidden ca ...

  6. 分布式机器学习_229页,CMU博士张昊毕业论文公布,探索机器学习并行化的奥秘...

    CMU 机器人研究所张昊(Hao Zhang)博士论文新鲜出炉,主要围绕着机器学习并行化的自适应.可组合与自动化问题展开. 机器之心报道,机器之心编辑部. 随着近年来,机器学习领域的创新不断加速,Sy ...

  7. 机器学习核心概念、常用术语整理(建议收藏)

    [转]机器学习核心概念完全解析(建议收藏) 原文链接:https://mp.weixin.qq.com/s/wEpmF1gdvsIimnvXrxKdRw AI干货知识库 刚接触机器学习框架 Tenso ...

  8. 分布式机器学习的集群方案介绍之HPC实现

    机器学习的基本概念 机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法.目前机器学习广泛应用于广告投放.趋势预测.图像识别.语音识别. ...

  9. 分布式机器学习_229页CMU博士张昊毕业论文公布,探索机器学习并行化的奥秘

    机器之心报道 机器之心编辑部 CMU 机器人研究所张昊(Hao Zhang)博士论文新鲜出炉,主要围绕着机器学习并行化的自适应.可组合与自动化问题展开. 随着近年来,机器学习领域的创新不断加速,Sys ...

最新文章

  1. C语言数组作为传入参数
  2. [原创]TimeQuest约束外设之诡异的Create Generated Clocks用法
  3. JS中进行字符串的相等比较时用==遇到的坑
  4. 【软件使用】Windows下的Objective-C集成开发环境搭建(IDE)
  5. LiveVideoStack主编观察03 /大会见闻思考
  6. Source Map调试压缩后代码
  7. filter IE滤镜(Internet Explorer)CSS
  8. Atitit blend mode COLOR_DODGE 混合模式  “颜色减淡”模式
  9. 中美线径对照表_常用线规号码与线径对照表下一页
  10. c语言如何命名开根号函数,c++开根号函数?
  11. 自动化测试,你一定要知道的知识
  12. 如何获取大数据行业高薪岗位offer?
  13. 单例模式(懒汉,饿汉)
  14. pg_rewind详解
  15. 自动管道过滤器结构组成与应用领域介绍
  16. 服务器硬盘选金盘好吗,WD 西部数据 企业级 10T金盘与8T金盘 对比测试
  17. python hashlib库(MD5,sha1,sha256,sha512,pbkdf2_hmac)用法及pbkdf2原理
  18. win10增加matlab虚拟内存,详细教你win10如何增加虚拟内存
  19. 工业采集网关实现PLC数据采集
  20. 猿创征文|最长回文子串-力扣

热门文章

  1. GOIP connects with Elastix through “config by line”
  2. 《使用QSortFilterProxyModel实现QTreeView行列过滤》:系列教程之十
  3. Teamviewer:远程协助工具
  4. linux系统u盘修复,SystemRescueCd(Linux系统修复盘) v6.0.3 官方免费版
  5. 安装指定版本的Mariadb数据库
  6. 优启通系统U盘制作及Win10系统安装
  7. 文件删除还有救,推荐几款免费的数据恢复软件!
  8. 本次秋招最差面试体验给到华为
  9. java基于ssm空气质量检测系统源码网站空气质量监测源码
  10. 用python爬取高考网历年高考分数线将数据放入MySQL并绘制图表