学界 | UC Berkeley提出新型分布式框架Ray:实时动态学习的开端

选自arXiv

机器之心编译

参与:路雪、刘晓坤

为应对新型 AI 应用不断提高的性能需求,近日 Michael Jordan 等人提出了一个新型的分布式框架 Ray,主要针对当前集群计算框架无法满足高吞吐量和低延迟需求的问题,以及很多模拟框架局限于静态计算图的缺点,并指出强化学习范式可以自然地结合该框架。

人工智能在一些现实世界应用中正逐渐发展为主力技术。然而,到目前为止,这些应用大部分都是基于相当受限的监督学习范式,其中模型是离线学习的,然后提供在线预测。随着人工智能领域的成熟,使用比标准的监督学习设置更宽泛的设置成为必需。和仅仅做出并提供单个预测不同,机器学习应用必须越来越多地在动态环境中运行,对环境变化做出反应,执行一系列动作以达到目标。这些更加宽泛的需求实际上可以自然地在强化学习(RL)的范式内构造,强化学习可以在不确定的环境中持续学习。一些基于 RL 的应用已经达到了引人注目的结果,例如谷歌的 AlphaGo 打败围棋人类世界冠军,这些应用也正在探索自动驾驶汽车、UAV 和自动化操作领域。

把 RL 应用和传统的监督学习应用区分开来的特征有三个。首先,RL 通常高度依赖模拟来探索状态、发现动作的后果。模拟器可以编码计算机游戏的规则、物理系统的牛顿动力学(如机器人),或虚拟环境的混合动力学。这通常需要消耗大量的算力,例如构建一个现实的应用可能需要经过几亿次模拟。其次,RL 应用的计算图是异质、动态演化的。一次模拟可能需要几毫秒到几分钟不等,并且模拟的结果还会影响未来模拟中使用的参数。最后,很多 RL 应用,如机器人控制或自动驾驶,需要快速采取行动以应对不断变化的环境。此外,为了选择最优动作,这些应用需要实时地执行更多的模拟。总之,我们需要一个支持异质和动态计算图的计算框架,同时可以在毫秒延迟下每秒执行百万量级的任务。

已有的集群计算框架并不能充分地满足这些需求。MapReduce [18]、Apache Spark [50]、Dryad [25]、Dask [38] 和 CIEL [32] 不支持通用 RL 应用的高吞吐量和低延迟需求,而 TensorFlow [5]、Naiad [31]、MPI [21] 和 Canary [37] 通常假定计算图是静态的。

这篇论文做出了如下贡献:

  • 指出了新兴 AI 应用的系统需求:支持(a)异质、并行计算,(b)动态任务图,(c)高吞吐量和低延迟的调度,以及(d)透明的容错性。
  • 除了任务并行的编程抽象之外,还提供了 actor 抽象(基于动态任务图计算模型)。
  • 提出了一个可水平伸缩的架构以满足以上需求,并建立了实现该架构的集群计算系统 Ray。

论文:Ray: A Distributed Framework for Emerging AI Applications

论文地址:https://arxiv.org/abs/1712.05889

下一代的 AI 应用将具备持续和环境进行交互以及在交互中学习的能力。这些应用对系统有新的高要求(无论是性能还是灵活性)。在这篇论文中,我们考虑了这些需求并提出了 Ray,一个满足上述需求的分布式系统。Ray 实现了一个动态任务图计算模型(dynamic task graph computation model),该模型支持任务并行化和 actor 编程模型。为了满足 AI 应用的性能需求,我们提出了一个架构,该架构使用共享存储系统(sharded storage system)和新型自下而上的分布式调度程序实现系统控制状态的逻辑集中。我们的实验展示了亚毫秒级的远程任务延迟,以及每秒可扩展至超过 180 万任务的线性吞吐量。实验证明 Ray 可以加速难度高的基准测试,而且是新兴强化学习应用和算法的自然、高效选择。

图 7:该系统利用 GCS 和自下而上的分布式调度程序,以线性方式实现的端到端可扩展性。Ray 用 60 个 m4.16xlarge 节点可以达到每秒 100 万任务的吞吐量,在 1 分钟内处理 1 亿任务。鉴于代价,我们忽略 x ∈ {70,80,90}。

图 8:Ray 保持平衡负载。第一个节点的驱动程序提交 10 万个任务,全局调度程序在 21 个可用节点中平衡这些任务。

图 9:对象存储写入的吞吐量和输出操作(IOPS)。对于单个客户端,在 16 核实例(m4.4xlarge)上大型对象的吞吐量超过 15GB/s(红色),小型对象的吞吐量超过 18K IOPS(蓝绿色)。它使用 8 个线程复制超过 0.5MB 的对象,用 1 个线程复制其他小型对象。条形图代表 1、2、4、8、16 个线程的吞吐量。以上结果是 5 次运行的平均值。

图 10:分布式任务的全透明容错性。虚线代表集群中节点的数量。曲线表示新任务(蓝绿色)和重新执行的任务(红色)的吞吐量。驱动程序持续提交和检索 10000 个任务。每个任务耗时 100ms,依赖于前一个回合的一个任务。每个任务的输入和输出大小为 100KB。

图 11:actor 方法的全透明容错性。驱动程序持续向集群中的 actor 提交任务。在 t = 200s 时,我们删除了 10 个节点中的 2 个,使集群的 2000 个 actor 中的 400 个在剩余节点中恢复。

图 12:Reference ES 和 Ray ES 系统在 Humanoid-v1 任务中得到 6000 分的时间 [13]。Ray ES 实现可以扩展到 8192 个核。而 Reference ES 系统无法运行超过 1024 个核。我们使用 8192 个核获得了 3.7 分钟的中位耗时,比之前公布的最佳结果快一倍。在此基准上,ES 比 PPO 快,但是运行时间方差较大。

图 13:MPI PPO 和 Ray PPO 在 Humanoid-v1 任务中得到 6000 分的时间 [13]。Ray PPO 实现优于专用的 MPI 实现 [3],前者使用的 GPU 更少,代价也只是后者的一小部分。MPI 实现中每 8 个 CPU 就需要 1 个 GPU,而 Ray 至多需要 8 个 GPU,每 8 个 CPU 所需的 GPU 不超过 1 个。

表 3:低延迟机器人模拟结果

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-12-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

配置机器学习训练环境太麻烦?开源工具Parris说一键就搞定

夏乙 编译整理 量子位 出品 | 公众号 QbitAI 在搭建、训练机器学习模型的过程中,你的时间可能大部分都花在了那些与算法无关的事情上:收集数据、清洗数据、...

35750
来自专栏怀英的自我修炼

考研数学-11-公式整理

匆匆忙忙到现在,才把公式整理完。接下来就是要消化这些公式,公式比较多,有100+个,希望借助Anki,这次能完全背熟6成。这也是个不小的挑战,继续二中吧。

11010
来自专栏机器之心

资源 | OpenAI开源机器人模拟Python库mujoco-py:可高效处理并行模拟

选自OpenAI 机器之心编译 参与:黄小天 OpenAI 宣布开源一个高性能的 Python 库,它可用于使用 MuJoCo 引擎(在上年的机器人研究中开发出...

40840
来自专栏数据科学与人工智能

【应用】从业务数据分析到机器学习应用的一次经历

本文通过一次完整的项目经历,从业务数据的分析开始,到产品优化建议,再到通过机器学习进行进一步的处理进行了比较完成的提炼。 腾讯电脑管家作为一款目前最流行的pc端...

13000
来自专栏程序你好

从业务数据分析到机器学习应用的一次经历

12320
来自专栏腾讯玄武实验室的专栏

让 iPhone “崩溃” 又有了新方法:只需要一个视频

玄武实验室在 10 月 15 日就发现了视频样本,在深入分析后,我们在微信后台对能够触发这种漏洞的恶意视频进行检测和拦截,保护了大量用户免遭攻击。

58620
来自专栏互联网杂技

2018年3月份GitHub上最热门的Python项目:深度学习占半壁江山

https://github.com/NVIDIA/FastPhotoStyle Star 5978

11820
来自专栏机器之心

Facebook宣布开源Caffe2:可在手机与树莓派上训练和部署模型

选自Caffe2.ai 机器之心编译 在今年的 F8 开发者大会上,Facebook 正式宣布开源其全新深度学习框架 Caffe2。据 Caffe2 官方博客介...

32470
来自专栏灯塔大数据

技术 | 人生苦短,请用Python——10大Python库汇总

前言 对于码农来说,主要关注2017年新推出了哪些开源库,还有就是新近有什么流行的既能解决问题又好用的利器。下面就来为2017年做个总结。 1、Pipenv 第...

45990
来自专栏AI2ML人工智能to机器学习

当arXiv遇到Twitter

arXiv是一个开放的存放预备版(preprint)文章的地方。 这个Cornell University在1991开启的项目, 因为Grigori Perel...

9930

扫码关注云+社区

领取腾讯云代金券