LF DL 的 Horovod 项目增加了对 PySpark 和 Apache MXNet 的支持以及其他功能,以加快培训速度 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
donaldliu1874
V2EX    机器学习

LF DL 的 Horovod 项目增加了对 PySpark 和 Apache MXNet 的支持以及其他功能,以加快培训速度

  •  
  •   donaldliu1874 2019-03-15 15:18:28 +08:00 2323 次点击
    这是一个创建于 2403 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作者:Carsten Jacobsen,开源开发者倡导者 @Uber

    摘录: Horovod 在最新版本中支持更多框架,并引入了新功能以提高通用性和生产力。

    Horovod 是由 Uber 创建的分布式深度学习框架,它使分布式深度学习变得快速,且易于使用。Horovod 使用 TensorFlow、Keras、PyTorch 和 Apache MXNet 改进训练机器学习( ML )模型的速度、规模和资源分配。LF Deep Learning 是支持和维持人工智能和机器学习开源创新的 Linux 基金会项目,于 2018 年 12 月接受了 Horovod 作为其托管项目之一。该项目被托管以后,Uber 以外的额外贡献和协作由于 LF DL 的中立环境、开放式治理和基金会为项目提供的一系列推动因素而出现。

    最新版本中的更新以三个关键方式改进了 Horovod:为更多框架添加支持和集成,改进现有功能,以及为 TensorFlow 2.0 带来的变化准备。综合起来,这些新功能和能力使 Horovod 更容易、更快速、更灵活、适用于不断增长的用户群,包括 NVIDIA 和 Oak Ridge National Laboratory。Horovod 还与各种深度学习生态系统集成,包括 AWS、Google、Azure 和 IBM Watson。

    在此版本中,添加了许多用于 Horovod 的新用例,目的是使框架成为培训深度学习模型的更通用工具。随着集成和支持框架的增加,用户可以利用 Horovod 加速大量开源模型,并在多个框架中使用相同的技术。

    PySpark 和 Petastorm 的支持

    Apache Spark 能够处理大量数据,可用于许多机器学习环境。易用性、内存处理功能、近实时分析以及丰富的集成选项,如 Spark MLlib 和 Spark SQL,使 Spark 成为一种受欢迎的选择。

    鉴于其可扩展性和易用性,Horovod 得到了更广泛的基于 Python 的机器学习社区的兴趣,包括 Apache Spark。随着 PySpark 支持和集成的发布,Horovod 对更广泛的用户变得有用。

    在 Horovod 之前,PySpark 的典型工作流程,是在 PySpark 中进行数据准备,将结果保存在中间存储中,使用不同的群集解决方案运行不同的深度学习培训工作,导出训练的模型,并在 PySpark 中运行评估。Horovod 与 PySpark 的集成允许在同一环境中执行所有这些步骤。

    图片描述

    为了平滑 Spark 集群中 PySpark 和 Horovod 之间的数据传输,Horovod 依赖于Petastorm,这是一个由 Uber Advanced Technologies Group ( ATG )开发的深度学习开源数据访问库。Petastorm 于 2018 年 9 月开源,可直接从多 TB 数据集,进行单机或分布式培训,以及深度学习模型的评估。

    典型的 Petastorm 用例需要在 PySpark 中预处理数据,将其写入 Apache Parquet 中的存储,这是一种高效的列式存储格式,并使用 Petastorm 读取 TensorFlow 或 PyTorch 中的数据。

    图片描述

    Apache Spark 和 Petastorm 也在 Uber 内部的某些应用程序中使用,因此扩展 Horovod 对 PySpark 和 Petastorm 的支持一直是使 Horovod 成为更多通用工具的过程中的自然步骤。

    Apache MXNet 的支持

    Apache MXNet (孵化)是一个开源深度学习框架,可以促进更灵活、更有效的神经网络培训。亚马逊是 Horovod 和 MXNet 的重要贡献者,并且在 Amazon EC2 P3 实例和 Amazon SageMaker 上原生支持这两个框架。

    就像最近对 PySpark 的支持一样,Horovod 与 MXNet 的整合是将 Horovod 提供给更广泛社区的更大努力的一部分,进一步扩大了对更快更轻松的模型培训。

    自动调节

    最新版本的第三次更新是 Horovod 推出自动调节的 alpha 版本。在此版本中,自动调整是可选的,但在将来的版本中它将默认打开。

    Horovod 支持许多内部参数,可以调整这些参数以提高硬件和模型架构变化的性能。这些参数包括融合缓冲门槛

    ( fusion buffer threshold ),用于确定可以将多个张量( tensor )一起批量合并为单个 allreduce、用于控制 allreduce 批次的频率的循环时间、以及当主机数量变得非常大时,作为单环 allreduce 的替代方案的分层 allreduce。

    找到这些参数的正确值,可以使性能提高多达 30 %。但是,手动尝试不同的参数是一种耗时的反复试验。

    Horovod 的自动调节系统,通过使用贝叶斯( Bayesian ),优化动态探索和选择最佳内部参数值来消除猜测。

    自动调节会自动化手动过程,执行尝试不同选项和参数值,以确定最佳配置,如果硬件、比例或模型发生变化,必须重复这些配置。由于自动化,自动调节使参数优化更有效,可以加快模型培训速度。

    嵌入的改进

    嵌入通常用于涉及自然语言处理( NLP )和从表格( tabular )数据学习的机器学习用例。在 Uber 的数据存储区,Uber 旅程数据存储为表格数据,这些数据具有一些分类界限。在像 Uber 这样的用例中,嵌入的数量和嵌入的大小将会扩展。在最新版本中,Horovod 增强了其扩展深度学习模型的能力,这些模型大量使用嵌入式设备,例如 Transformer 和BERT

    此外,这些嵌入改进更快地促进了大嵌入梯度( gradient ),以及小嵌入梯度的融合,允许更多数量的嵌入更快地处理操作。

    TensorFlow 的热切执行支持

    热切执行( Eager execution )将是 TensorFlow 2.0 中的默认模式。热切执行允许开发者在命令式编程环境中创建模型,其中立即评估操作,并将结果作为实际值返回。热切执行消除了创建会话( session )和使用图形的需要。

    凭借对动态模型的热切执行支持,模型评估和调试变得更加容易和快捷。对于缺乏经验的开发者而言,热切执行也使得 TensorFlow 更直观。

    在过去,运行 Horovod 的热切执行,意味着按顺序计算所有工人( worker )的每个张量梯度(tensor gradient),没有任何张量批处理或并行性。在最新版本中,完全支持热切执行。在我们的实验中,使用热切执行的 Tensor 批处理,可将性能提高 6 倍以上。此外,用户现在可以使用 TensorFlow 的GradientTape的分布式实现来记录自动区分( differentiation )操作。

    混合精确训练

    混合精度是在计算方法中组合使用不同的数值精度。使用低于 FP32 的精度,可以通过使用更小的张量来减少内存需求,从而允许部署更大的网络。此外,数据传输花费的时间更少,计算性能也大幅提升。具有 Tensor Core 的 GPU 支持混合精度,使用户能够充分利用更低内存使用率和更快数据传输的优势。

    深度神经网络的混合精确训练实现了两个主要目标:

    1. 减少所需的内存量,支持更大型号的培训或使用更大的小批量培训
    2. 通过使用低精度算法减少所需资源,缩短训练或推理时间

    在过去,混合精确训练通常打断 Horovod 的融合逻辑,因为 FP16 张量的序列将经常被 FP32 张量打断,并且不同精度的张量不能参与单个融合事务。

    在最新版本中,NVIDIA 对张量融合逻辑做出了改进,允许 FP16 和 FP32 张量序列通过前瞻机制独立处理。通过这种变化,我们已经看到高达 26 %的性能提升。

    想知道 Horovod 如何让你的模型训练更快,更具可扩展性?查看这些更新,并亲自试用该框架,并确保加入Deep Learning Foundation 的 Horovod 公告技术讨论邮件列表


    KubeCon + CloudNativeCon + Open Source Summit 大会日期:

    • 会议日程通告日期:2019 年 4 月 10 日
    • 会议活动举办日期:2019 年 6 月 24 至 26 日

    KubeCon + CloudNativeCon + Open Source Summit 赞助方案

    KubeCon + CloudNativeCon + Open Source Summit 多元化奖学金现正接受申请

    KubeCon + CloudNativeCon 和 Open Source Summit 即将首次合体落地中国

    KubeCon + CloudNativeCon + Open Source Summit 购票窗口,立即购票!

    CNCF 邀请你加入最终用户社区

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     887 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:12 PVG 03:12 LAX 12:12 JFK 15:12
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86