0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DeepMind又放福利:开源了一个内部的分布式机器学习库TF-Replicator

DPVg_AI_era 来源:lp 2019-03-10 09:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天,DeepMind又放福利:开源了一个内部的分布式机器学习TF-Replicator,可以帮助研究人员将TensorFlow模型轻松部署到GPU、TPU,并实现不同类型加速器之间的无缝切换。

最近AI领域的突破,从AlphaFold到BigGAN再到AlphaStar,一个反复出现的主题是,对方便、可靠的可扩展性的需求。

研究人员已经能够获取越来越多计算能力,得以训练更大的神经网络,然而,将模型扩展到多个设备并不是一件容易的事情。

今天,DeepMind又将其内部一个秘密武器公之于众——TF-Replicator,一个可以帮助研究人员将他们的TensorFlow模型轻松部署到GPU、Cloud TPU的分布式机器学习框架,即使他们之前完全没有使用分布式系统的经验。

TF-Replicator由DeepMind的研究平台团队开发,初衷是为DeepMind的研究人员提供一个简单的接入TPU的API,现在,TF-Replicator已经是DeepMind内部最广泛使用的TPU编程接口

TF-Replicator允许研究人员针对机器学习定位不同的硬件加速器进行,将工作负载扩展到许多设备,并在不同类型的加速器之间无缝切换。

虽然它最初是作为TensorFlow上面的一个库开发的,但目前TF-Replicator的API已经集成到TensorFlow 2.0新的tf.distribute.Strategy中,作为 tf.distribute.Strategy的一部分开源:

https://www.tensorflow.org/alpha/guide/distribute_strategy

团队还公开了相关论文:TF-Replicator: Distributed Machine Learning for Researchers,全面描述了这个新框架的技术细节。

https://arxiv.org/abs/1902.00465

接下来,我们将介绍TF-Replicator背后的想法和技术挑战。

构建一个分布式机器学习库

虽然TensorFlow为CPU、GPU和TPU设备都提供了直接支持,但是在目标之间切换需要用户付出大量的努力。这通常涉及为特定的硬件目标专门编写代码,将研究想法限制在该平台的功能上。

一些构建在TensorFlow之上的现有框架,例如Estimators,已经试图解决这个问题。然而,它们通常针对生产用例,缺乏快速迭代研究思路所需的表达性和灵活性。

我们开发TF-Replicator的初衷是为DeepMind的研究人员提供一个使用TPU的简单API。TPU为机器学习工作负载提供了可扩展性,实现了许多研究突破,例如使用我们的BigGAN模型实现了最先进的图像合成。

TensorFlow针对TPU的原生API与针对GPU的方式不同,这造成了使用TPU的障碍。TF-Replicator提供了一个更简单、更用户友好的API,隐藏了TensorFlow的TPU API的复杂性。此外,研究平台团队与不同机器学习领域的研究人员密切合作,开发了TF-Replicator API,以确保必要的灵活性和易用性。

TF-Replicator API

使用TF-Replicator编写的代码与使用TensorFlow中为单个设备编写的代码类似,允许用户自由定义自己的模型运行循环。用户只需要定义(1)一个公开数据集的输入函数,以及(2)一个定义其模型逻辑的step函数(例如,梯度下降的单个step):

# Deploying a model with TpuReplicator.repl = tf_replicator.TpuReplicator( num_workers=1, num_tpu_cores_per_worker=8)with repl.context(): model = resnet_model() base_optimizer = tf.train.AdamOptimizer() optimizer = repl.wrap_optimizer(base_optimizer)# ... code to define replica input_fn and step_fn.per_replica_loss = repl.run(step_fn, input_fn)train_op = tf.reduce_mean(per_replica_loss)with tf.train.MonitoredSession() as session: repl.init(session) for i in xrange(num_train_steps): session.run(train_op) repl.shutdown(session)

将计算扩展到多个设备需要设备之间进行通信。在训练机器学习模型的背景下,最常见的通信形式是累积梯度(accumulate gradients)以用于优化算法,如随机梯度下降。

因此,我们提供了一种方便的方法来封装TensorFlow Optimizers,以便在更新模型参数之前在设备之间累积梯度。对于更一般的通信模式,我们提供了类似于MPI的原语,如“all_reduce”和“broadcast”。这些使得实现诸如全局批标准化之类的操作变得非常简单,这是扩展BigGAN模型训练的关键技术。

输入数据从主机发送到各个GPU, GPU立即开始处理。当需要在GPU之间交换信息时,它们会在发送数据之前进行同步。

实现

对于多GPU计算,TF-Replicator依赖于“图内复制”(“in-graph replication)模式,其中每个设备的计算在同一个TensorFlow graph中复制。设备之间的通信是通过连接设备对应子图中的节点来实现的。在TF-Replicator中实现这一点很具挑战性,因为在TensorFlow graph中的任何位置都可能发生通信。因此,构造计算的顺序至关重要。

我们的第一个想法是在一个单独的Python线程中同时构建每个设备的子图。当遇到通信原语时,线程同步,主线程插入所需的跨设备计算。之后,每个线程将继续构建其设备的计算。

然而,在我们考虑这种方法时,TensorFlow的图形构建API不是线程安全的,这使得在不同线程中同时构建子图非常困难。相反,我们使用图形重写(graph rewriting)在所有设备的子图构建完成后插入通信。在构造子图时,占位符被插入到需要通信的位置。然后,我们跨设备收集所有匹配占位符,并用适当的跨设备计算替换它们。

当TF-Replicator构建一个in-graph replicated计算时,它首先独立地为每个设备构建计算,并将占位符留给用户指定的跨设备计算。构建好所有设备的子图之后,TF-Replicator通过用实际的跨设备计算替换占位符来连接它们。

为AI研究构建一个平台

通过在TF-Replicator的设计和实现过程中与研究人员密切合作,我们最终构建一个库,让用户能够轻松地跨多个硬件加速器进行大规模计算,同时让他们拥有进行前沿AI研究所需的控制和灵活性。

例如,在与研究人员讨论之后,我们添加了MPI风格的通信原语,如all-reduce。TF-Replicator和其他共享基础架构使我们能够在稳健的基础上构建越来越复杂的实验,并在整个DeepMind快速传播最佳实践。

在撰写本文时,TF-Replicator已经成为DeepMind应用最广泛的TPU编程接口。虽然这个库本身并不局限于训练神经网络,但它最常用来训练大量数据。例如,BigGAN模型是在一个512核的TPUv3 pod训练的,batch size为2048。

在采用分布式actor-learner设置的增强学习智能体中,例如我们的重要性加权actor-learner架构,可扩展性是通过让许多actor通过与环境的交互生成新的体验来实现的。然后,learner对这些数据进行处理,以改进agent的策略,表示为一个神经网络。为了应对越来越多的actor,TF-Replicator可以很轻松地将learner分布在多个硬件加速器上。

这些以及更多例子在我们的arXiv论文中有更详细的描述。

Blog:

https://deepmind.com/blog/tf-replicator-distributed-machine-learning/

Paper:

https://arxiv.org/abs/1902.00465

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4829

    浏览量

    106819
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136236
  • DeepMind
    +关注

    关注

    0

    文章

    131

    浏览量

    12137

原文标题:你的模型可以轻松使用TPU了!DeepMind 开源分布式机器学习库TF-Replicator

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【节能学院】Acrel-1000DP分布式光伏监控系统在奉贤平高食品 4.4MW 分布式光伏中应用

    分布式光伏本地和远程通信方案,并研究分布式光伏采集模型的构建、多源数据融合估计、面向分布式光伏的有功、无功功率优化控制等关键技术,实现对小容量工商业
    的头像 发表于 08-23 08:04 3306次阅读
    【节能学院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏监控系统在奉贤平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中应用

    分布式光伏发电监测系统技术方案

    分布式光伏发电监测系统技术方案 柏峰【BF-GFQX】、系统目标 :分布式光伏发电监测系统旨在通过智能化的监测手段,实现对分布式光伏电站的全方位、高精度、实时化管理。该系统能
    的头像 发表于 08-22 10:51 2890次阅读
    <b class='flag-5'>分布式</b>光伏发电监测系统技术方案

    MR30分布式IO在喷绘机器人的应用

    喷绘机器人凭借高效、精确、稳定、节能等优点,在汽车、航空航天、电子等多个行业广泛应用。本文以 MR30分布式IO在喷绘机器人中的应用为核心,介绍喷绘
    的头像 发表于 08-15 13:48 551次阅读
    MR30<b class='flag-5'>分布式</b>IO在喷绘<b class='flag-5'>机器</b>人的应用

    键部署无损网络:EasyRoCE助力分布式存储效能革命

    分布式存储的性能瓶颈往往在于网络。如何构建高带宽、超低时延、零丢包的无损网络,是释放分布式存储全部潜力、赋能企业关键业务(如实时数据
    的头像 发表于 08-04 11:34 1341次阅读
    <b class='flag-5'>一</b>键部署无损网络:EasyRoCE助力<b class='flag-5'>分布式</b>存储效能革命

    分布式光伏总出问题?安科瑞分布式光伏监控系统来“救场”

    分布式光伏的痛点大揭秘 在 “双碳” 目标的大力推动下,分布式光伏作为绿色能源领域的重要力量,正以前所未有的速度蓬勃发展,越来越多的企业和家庭选择安装分布式光伏系统。然而,随着
    的头像 发表于 07-16 16:50 618次阅读
    <b class='flag-5'>分布式</b>光伏总出问题?安科瑞<b class='flag-5'>分布式</b>光伏监控系统来“救场”

    Ceph分布式存储系统解析

    在当今数据爆炸的时代,企业对存储系统的需求日益增长,传统的集中式存储已经无法满足大规模数据处理的要求。分布式存储系统应运而生,而Ceph作为开源分布式存储系统的佼佼者,以其高可用性、高扩展性和统
    的头像 发表于 07-14 11:15 724次阅读

    分布式存储数据恢复—虚拟机上hbase和hive数据数据恢复案例

    分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据分布式存储故障: 数据底层文件被误
    的头像 发表于 04-17 11:05 515次阅读

    使用VirtualLab Fusion中分布式计算的AR波导测试图像模拟

    总计算时间超过31小时。通过使用由8多核PC组成的网络,提供35客户端分布式计算,将模拟时间减少到1小时5分钟。基本模拟任务基本任务
    发表于 04-10 08:48

    分布式光伏发运维系统实际应用案例分享

    和可持续发展的重要推动力量。国家能源局于2025年1月发布分布式光伏发电开发建设管理办法》,对分布式光伏的分类、上网模式、备案管理、电网接入等进行了详细规定,未来分布式光伏将进
    的头像 发表于 04-09 14:46 996次阅读
    <b class='flag-5'>分布式</b>光伏发运维系统实际应用案例分享

    浅谈分布式光伏系统在工业企业的设计及应用

    主要对工业厂区屋顶分布式光伏发电系统的设计及应用进行研究,为工业厂区能源供应提供种全新的解决思路和技术支持。介绍工业厂区屋顶分布式光伏系统及其优势,分析
    的头像 发表于 03-21 14:24 730次阅读
    浅谈<b class='flag-5'>分布式</b>光伏系统在工业企业的设计及应用

    铁塔基站分布式储能揭秘!

    的正常运转。为了解决这些问题,安科瑞推出了基站铁塔分布式储能解决方案,为基站的稳定供电提供可靠的保障。 、什么是基站铁塔分布式储能? 基站铁塔
    的头像 发表于 02-12 16:42 1363次阅读
    铁塔基站<b class='flag-5'>分布式</b>储能揭秘!

    分布式云化数据有哪些类型

    分布式云化数据有哪些类型?分布式云化数据主要类型包括:关系型分布式数据库、非关系型分布式数据库
    的头像 发表于 01-15 09:43 880次阅读

    基于ptp的分布式系统设计

    在现代分布式系统中,精确的时间同步对于确保数据致性、系统稳定性和性能至关重要。PTP(Precision Time Protocol)是种网络协议,用于在分布式系统中实现高精度的时
    的头像 发表于 12-29 10:09 978次阅读

    HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据文件资产迁移

    提供async版本供该场景使用。 当前,wantParams中“sessionId”字段在迁移流程中被系统占用,建议开发者在wantParams中定义其他key值存储该分布式数据对象生成的id,避免
    发表于 12-24 10:11

    HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据权限与基础数据

    提供async版本供该场景使用。 当前,wantParams中“sessionId”字段在迁移流程中被系统占用,建议开发者在wantParams中定义其他key值存储该分布式数据对象生成的id,避免
    发表于 12-24 09:40