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

CMU 机器人研究所张昊(Hao Zhang)博士论文新鲜出炉,主要围绕着机器学习并行化的自适应、可组合与自动化问题展开。

机器之心报道,机器之心编辑部。

随着近年来,机器学习领域的创新不断加速,SysML 的研究者已经创建了在多个设备或计算节点上并行机器学习训练的算法和系统。机器学习模型在结构上变得越来越复杂,许多系统都试图提供全面的性能。尤其是,机器学习扩展通常会低估从一个适当的分布策略映射到模型所需要的知识与时间。此外,将并行训练系统应用于复杂模型更是增加了非常规的开发成本,且性能通常低于预期。

近日,CMU 机器人研究所博士张昊公布了自己的博士学位论文《机器学习并行化的自适应、可组合与自动化》,旨在找出并解决并行 ML 技术和系统实现在可用性和性能方面的研究挑战

具体而言,该论文从可编程性、并行化表示、性能优化、系统架构和自动并行化技术等几方面对分布式并行 ML 展开了研究,并认为分布式并行机器学习可以同时实现简洁性和高效性。此外,该论文表明,并行 ML 的性能可以通过生成自适应 ML 模型结构和集群资源范式的策略实现大幅度提升,同时通过将「如何并行化」这一核心问题形式化为端到端优化目标以及构建可组合分布式 ML 系统来自动优化这类自适应、自定义策略,进而可以解决可用性挑战。

1342c94655d94e733a2d8fab18d2c6cd.png

论文链接:https://www.cs.cmu.edu/~hzhang2/files/hao_zhang_doctoral_dissertation.pdf

机器之心对该论文的核心内容进行了简要介绍,感兴趣的读者可以阅读原论文。

论文内容介绍

这篇论文主要由三部分组成,如下图所示,第 1 部分(第三章 - 第五章):在单个机器学习并行化层面,使用自适应并行化理解和优化并行机器学习性能;第 2 部分(第六章 - 第七章):为机器学习并行开发统一的表示和可组合系统;第 3 部分(第八章):机器学习并行化的自动化。

4257b70619449e17a4203c72059885cc.png
论文结构概览

论文第一部分提出了一个简单的设计原则自适应并行(adaptive parallelism),根据模型构建要素(比如层)的特定 ML 属性,将合适的并行化技术应用于模型组成要素中。作者以 BERT 为例,总结出了实现这种自适应的基本原理和三个核心概念,分别是子模型策略组合、多个并行化方面的系统优化和资源感知。此外,作者推导出了一系列优化和实现方法,从不同层面去提升 ML 并行化。研究结果表明其显著提高了 ML 训练在集群上的效率和可扩展性。

第二部分对这种方法进行了概述,并且面向机器学习并行化任务的两个常见范式:单节点动态批处理和分布式机器学习并行,作者将机器学习的并行化表述为端到端的优化问题,并寻找其自动化的解决方法。作者提出了原则表征来表示两类机器学习并行,以及可组合的系统架构 Cavs 与 AutoDist。它们能够快速组合不可见模型的并行化策略,提升并行化表现,并简化并行机器学习程序。

b428a1ef67c460cb4b1ed1401e9d2950.png
Facebook AI 提出的 DETR 的架构图

在此基础上,论文第三部分提出一个自动并行化框架 AutoSync,用于自动优化数据并行分布训练中的同步策略。它实现了「开箱即用」的高性能,可以通过提出的表征进行空间导航,并自动识别同步策略,这些策略比现有的手工优化系统的速度提高了 1.2-1.6 倍,降低了分布式 ML 的技术障碍,并帮助更大范围的用户访问它。总结来说,这篇论文提出的相关技术和系统验证了分布式环境下面向大规模机器学习训练的端到端编译系统的概念与原型实现。

bbc6b4315528623dd3669a95558578b0.png
AutoSync 策略的自动优化流程算法

e81e8df1b50d4846612a63de25c4330f.png
AutoSync 中的策略空间包含了现有系统中的很多高级策略

语言模型的分布式预训练示例

预训练语言表征已成为 NLP 系统中最普遍、最关键的部分。使用与任务无关的语言模型框架,可以对从 web 抓取的未标记文本进行无监督的训练,只需预测下一个单词或句子。预训练表征可以灵活地应用于下游任务,针对特定任务的损失和数据集进行微调,或是通过少量上下文学习。

近年来,人们在开发更强大的任务无关 LM 架构方面取得了巨大进展,从单层词向量表征到递归神经网络的多层表征和上下文状态,以及最新的基于递归 transformer 的架构。

下图展示了一个著名的例子——双深度 Transformer(BERT)——属于第三类。不管网络架构如何,语言模型通常包含许多参数,而这些参数是在大规模文本语料库上训练出来的,这是因为它们的建模能力随其大小以及文本扫描量成正比。

d87788aab19a4523d238c3c55b7cfbfd.png

假设我们对训练 BERT 感兴趣,在基于 AWS 的 GPU 集群上使用 TensorFlow 等框架实现。我们可以使用最先进的开源训练系统——Horovod,开始数据并行训练。

应用 Horovod 转换单机 BERT 训练代码,涉及将原始的框架内置优化器与 Horovod 修补的优化器包装在一起。然后 Horovod 会在集群节点上使用 collective allreduce 或 allgather 来平均和应用梯度。

f6427d546249f6a528e47f00867afa0c.png
这些 TensorFlow+Horovod 代码片段展示了 Horovod 如何给优化器打补丁,以及如何为分布式训练进行非常小的代码改变。

虽然可能会在目标集群上部署训练,但获得的扩展不太可能随着添加更多资源而成比例增长(理想情况下,线性扩展与加速器的数量成比例增长):所有的语言模型都有嵌入层,这些层拥有很多模型参数,但在每个设备上的每次训练迭代中访问很少,减少或聚集其梯度都会导致不必要的网络运作;BERT 中的 transformer 是矩阵参数化、计算密集型的,与 Horovod 中的常规做法一样,将梯度分组在一个缩减环(reduction ring)中,很容易使以太网带宽或异构集群 (如 AWS) 的设备 Flops 饱和。

在这两种情况下,设置都容易出现通信或计算混乱的情况,即训练时间的缩短无法令人满意,花费在训练上的计算资源成本在经济上也不能接受。这表明,并行化的常规目标并没有实现。

所以,本文提出的这种自适应并行策略,能够为并行化性能进行适当的优化。

作者介绍

张昊在今年 9 月 2 日完成了博士学位的论文答辩,导师为 CMU 教授、Petuum 创始人邢波(Eric Xing)。获得 CMU 机器人研究所的博士学位后,他将以博士后身份进入 UC 伯克利的 RISE 实验室,与计算机科学系教授 Ion Stoica 共同工作。

bb21d442fed75f7841b2f57c065c8e33.png

他的研究兴趣包括可扩展的机器学习、深度学习以及计算机视觉和自然语言处理领域的大规模机器学习应用。他还协同设计了一系列模型、算法和系统,在更大规模数据、问题、应用中进行机器学习扩展,以简化复杂机器学习模型和算法的原型开发,使机器学习程序分布自动化。

以下为论文章节目录:

8f5ccdc61a4fd1762ca10c2b4061c926.png

c7b6dddf7428dd980efde0c6e597ddfb.png

0c7a2c2234665925f34007c7dc06ec04.png

7ff7c2fa49fb96da8dc5bcfbef9fb82d.png

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

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

相关文章

利用Excel或LibreOffice的业务输入进行单元测试约束

业务专家向我们(开发人员)解释业务限制。 但是,如何确保我们正确理解它们呢? 或更糟糕的是,一旦约束条件正式化,我们如何测试他们之间是否同意? 好吧,有一种很棒的方法可以做到这一…

矩阵连乘 动态规划_Java动态规划

1. 介绍动态规划典型的被用于优化递归算法,因为它们倾向于以指数的方式进行扩展。动态规划主要思想是将复杂问题(带有许多递归调用)分解为更小的子问题,然后将它们保存到内存中,这样我们就不必在每次使用它们时重新计算它们。要理解动态规划的…

分布式光伏补贴_光伏发电上网电价政策综述

原标题:光伏发电上网电价政策综述近些年,光伏发电上网电价相关政策不断推陈出新,在推进平价上网的同时,也积极对接了电力市场建设需要。本文梳理了光伏发电上网电价及补贴标准有关政策,供参考使用:1.普通光…

单片机float数发给上位机_上位机倒计时器

1. 设置窗口在VS2019新建一个Windows窗体应用(.NET Framework)项目,新建之后出现一个可视化页面(From1.cs[设计])设置窗口。在左侧的工具箱里面拉拽控件到操作面板上,按照自己的喜好摆放位置和调大小。这里要注意的是用到的分别是什么控件:文…

土地利用覆被变化的概念_欠压实概念极其荒谬

●李传亮地表疏松的沉积物,孔隙度极高,有时可高达80%以上,但随着埋藏深度的加大,在上覆压力的作用下,其排列方式不断由松散排列趋于致密排列,同时伴随有孔隙度的大幅度减小,此即岩石的压实阶段&…

java足球游戏毕业设计,java毕业设计_springboot框架的校园足球管理平台

今天介绍一个java毕设题目, 题目内容为springboot框架的校园足球管理平台, 是一个采用b/s结构的javaweb项目, 采用java语言编写开发工具eclipse, 项目框架jspspringbootmybatis, 校园足球管理平台的信息存储于mysql中, 并基于mybatis进行了orm封装, 该校园足球管理平台系统通过…

Java 11功能– Java飞行记录器

在本文中,我们将看到如何利用Java Flight Recorder功能作为Java 11的一部分。之前,它是商业功能之一。 但是,对于带有JEP 328的 Java 11,它是开源的。 Java Flight Recorder将OS和JVM事件记录到一个文件中,可以使用Jav…

qstandarditemmodel 重写data函数后无法实现拖拽_实现类似百度网盘上传的功能

今天写到了上传文件部分,记录一下。前端使用了dropzone.js(用于实现文件上传的JS库),并对此文件进行了细微修改。说一下思路吧:首先界面长这样:点击上传文件,需要弹出一个对话框,对话框中有支持拖拽文件的文…

逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

本文包括:重要概念逻辑斯蒂回归和线性回归二项逻辑斯谛回归模型逻辑斯蒂回顾与几率模型参数估计多项逻辑斯谛回归其它有关数据分析,机器学习的文章及社群1.重要概念:在正式介绍逻辑斯蒂回归模型之前,需要先对一些基本概念有所了解…

交通流预测 | Matlab基于KNN-BiLSTM的交通流预测(对比SVR、LSTM、GRU、KNN-LSTM)

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 交通流预测 | Matlab基于KNN-BiLSTM的交通流预测(对比SVR、LSTM、GRU、KNN-LSTM) 程序设计 完整程序和数据获取方式:私信博主回复Matlab基于KNN-BiLSTM的交通流预测(对…

JMetro“ Metro”选项卡,Java的TreeView和ContextMenu(JavaFX)

我刚刚发布了JMetro的新更新,将版本升级到3.3.0。 在此更新中,您将找到: 新的TreeView Fluent设计系统(Metro)启发风格; 新的Tabs和TabPane FDS启发风格; 新的上下文菜单采用深色FDS启发的样…

数据挖掘原理与算法_技术分享|大数据挖掘算法之FPGrowth算法

程一舰数据技术处我们常说我们生活在信息时代,实际上,我们更多的还是生活在数据时代。因为从过去到现在累积了大量的数据,对数据的挖掘和分析也仅是从最近几年大数据和人工智能技术的发展而兴起。我们对现有数据价值的利用还远低于数据本身拥…

neo4j数据浏览器_Neo4j:在Neo4j浏览器的帮助下探索新数据集

neo4j数据浏览器在查看新的Neo4j数据库时,我发现遇到的一件困难就是确定其中包含的数据的结构。 我习惯于关系数据库,在该数据库中您可以轻松获取表列表和外键,以便您将它们相互连接。 传统上,使用Neo4j时很难做到这一点&#x…

mfc中怎么集成文件_怎么把几个pdf合并并打印在一份文件中?

a为什么我们要把pdf文件合并呢?当然我们要知道什么是pdf文件才能进行更多的操作,Pdf是我们许多人都会用到的一种存储文件的格式,它的内容基本是以图像的形式表现,所以我们在播放和打印的时候可以不用担心出现格式错乱的问题。PDF格…

php中日期选择代码,实现JS日期时间选择器

这次给大家带来实现JS日期时间选择器,实现JS日期时间选择器的注意事项有哪些,下面就是实战案例,一起来看一下。flatpickr 是一个轻量级、注重精益、由 UX 驱动和可扩展的 JavaScript 日期时间选择器。下载 演示 GitHubflatpickr 不依赖于任何…

php steam 第三方登录,Steam第三方登录

Steam第三方登录Laravel PHP7.3前端登录界面if(isset($steamprofile))window.οnlοadfunction(){var steamprofile {!!$steamprofile!!};var steamid {{$steamid}};if(steamid){$.post(/ajax/SocilaAuthLogin,{data:{userdata:steamprofile,type:steamLogin},},function(dat…

setitimer 创建两个定时器_UE4 Timer(定时器)相关源码分析

前言文章属于旧有文章搬运, 之前在csdn上面2019.11.6修改Timer是定时器, 用途:延时执行事件周期性执行事件参考官方文档Using TimersTimer可以...Timer能...Timer...... 编不下去了, 自己百度谷歌吧(手动狗头)TimerManagerTimer的管理类是FTimerManager, 是一个全局的Timer管理…

is array php,PHP 源码 — is_array 函数源码分析

php 中的 is_arrayphp 中的 is_array,它的签名是 is_array ( mixed $var ) : bool实现的源码在\ext\standard\type.c中可以找到PHP_FUNCTION(is_array)所处的位置,大概位于 273 行。在 PHP 中,这个系列的函数,是由很多个&#xff…

apache mahout_使用Apache Mahout创建在线推荐系统

apache mahout最近, 我们一直在为Yap.TV实施推荐系统:您可以在安装应用程序并转到“ Just for you”标签后才能看到它的运行情况。 我们以Apache Mahout为基础进行建议。 Mahout是一个“可扩展的机器学习库”,包含使用协作过滤算法的基于用户…

Java应用程序的简单令牌认证

“我喜欢编写身份验证和授权代码。” 〜从来没有Web开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 JSON Web令牌已Swift成为保护Web应用程序安全的标准,并取代了Cookie和会话…