本文描述了Alluxio如何在混合云环境中,加速oneAPI支撑的英特尔Analytics Zoo开源平台深度学习模型训练。本文会讨论有关新架构和工作流的细节,以及Alluxio的性能优势和基准测试结果。

1.混合环境中的深度学习

从架构演进到混合模式

传统上,数据处理和分析系统是将计算和存储服务作为一个整体平台来设计、构建和操作,并部署在本地/私有数据仓库中的。尽管这种体系结构具有易于管理和高性能的优点,但这种深度耦合存储和计算的体系结构,通常难以在不扩展另一种类型资源的情况下,提供良好的应用程序弹性和资源扩展性。

越来越多的用户正在转向混合模型,将来自云和本地环境的资源结合在一起。该模型采用了另一种架构,将数据保留在通常位于本地数据仓库中,但是根据需要启动单独的计算层。混合模型允许计算和存储资源独立扩展,从而带来众多优势:

  • 无资源争用:由于不存在来自计算服务的资源竞争,因此本地存储服务可以充分利用内部机器
  • 无计算停机时间:因为集群是按需在云中启动的,因此不存在闲置的计算资源
  • 无数据冗余:长时间运行的批处理作业或临时性查询可以共享同一组数据,而无需创建单独的副本

为深度学习提供快速I/O面临的挑战

尽管混合架构提供了灵活性和成本优势,但是在大数据上进行训练时,深度学习分析还面临着其他挑战。深度学习训练时使用相同的数据集对不同的神经网络模型和不同的超参数进行大量训练。此外,训练集的规模也在不断增长。当训练数据存储在远程存储系统中时,每次训练加载所有这些数据会产生巨大开销。

如今,跨混合环境管理数据的一种常见做法是,在运行深度学习作业之前,将数据复制到计算群集中的存储服务中。通常,用户使用“distCP”之类的命令在内部部署环境和云环境之间来回复制数据。尽管这看起来很简单,但通常需要手动处理,并且很慢和容易出错。

为了解决在混合环境中训练深度学习模型所面临的I/O挑战,并利用英特尔的oneAPI优化性能,我们开发并测试了一个新架构/工作流,该架构/工作流将Alluxio集成在由oneAPI支持的Analytics Zoo平台中。

2.使用Analytics Zoo和Alluxio的新架构和工作流

什么是Analytics Zoo

由oneAPI支撑的Analytics Zoo是英特尔开发的开源统一分析和AI平台,旨在将多个深度学习应用程序无缝地整合到一个集成流水线中。用户可以透明地扩展规模,从在笔记本电脑上运行示例作业扩展到在大型集群上处理生产规模的大数据。

它支持:

  • 使用Spark代码内联编写TensorFlow或PyTorch,以进行分布式训练和推理
  • 在Spark ML流水线中支持本地深度学习(TensorFlow/Keras/PyTorch/BigDL)
  • 通过RayOnSpark在大数据群集上直接运行Ray程序
  • 用于(TensorFlow / PyTorch / BigDL / OpenVINO)模型推理的纯Java/Python API

什么是Alluxio

Alluxio是用于数据分析的开源数据编排层。它充当一个分布式缓存层来防止从远程数据源重复拉取数据,以此为数据分析或机器学习系统(如Analytics Zoo)提供高性能。与其他解决方案相比,Alluxio在具有“零拷贝突发”功能的混合云环境中具有以下优势,可将数据处理突发迁移到云上进行:

  • 按需计算驱动的数据:将存储系统挂载到Alluxio上时,初始仅会加载其元数据。Alluxio仅在应用程序请求时缓存数据。这种按需应变的行为允许对云进行突发数据处理,从而避免了手动将数据从内部集群复制到云。
  • 数据本地化:Alluxio可根据数据访问模式,智能地在应用程序附件缓存数据,复制热数据,或驱逐过时数据。
  • 数据弹性:Alluxio可以根据分析框架(包括容器编排的环境)灵活扩展。
  • 用于数据访问的通用API:Alluxio使用不同的通用API提供数据抽象,包括HDFS API,S3 API,POSIX API等。为分析和AI工作构建的现有应用程序可以直接在此数据上运行,而无需对应用程序本身进行任何更改

设置和工作流程

下图是集成了Alluxio和Analytics Zoo的架构图,可实现快速高效的深度学习工作:

本地或远程数据存储被挂载到Alluxio上。Analytics Zoo应用程序通过运行Spark作业启动深度学习训练任务,通过分布式文件系统接口从Alluxio加载数据。初始时,Alluxio尚未缓存任何数据,因此它从挂载的数据存储中检索数据,并将其提供给Analytics Zoo应用程序,同时在其Worker中保留一个缓存副本。第一次训练的运行速度与应用程序直接从本地数据源读取数据的速度大致相同。在随后的训练中,Alluxio将拥有一个缓存副本,因此数据将直接由Alluxio Worker提供,从而消除了对本地数据存储的远程请求。请注意,缓存过程对用户是透明的;无需人工干预即可将数据加载到Alluxio中。但是,Alluxio确实提供了诸如“distributedLoad”之类的命令来预加载工作数据集,以便在需要时预热缓存。还有一个“free”命令用于收回缓存存储空间,而无需从底层数据存储中清除数据。

3.基准测试结果

本节总结了Alluxio集成工作流的性能测试和基准测试结果。

环境

我们在AWS EMR部署的7节点Spark集群(其中1个实例为主节点,其余为工作节点)中运行实验。基准测试的工作负载是inception v1训练,使用存储在AWS S3同一区域的ImageNet数据集。

作为基准,Spark集群直接从S3 bucket访问数据集。与基准作为对比,在Spark群集上安装Alluxio,并将S3 bucket挂载为底层文件系统。

下表详细介绍了具体的环境配置:

EC2 Instance Type r5.8xlarge
Number of vCPU per
instance
32
Size of memory per
instance
256GB
Network speed 10Gbps
Disk space 100GB
Operation System Ubuntu 18.04
Apache Spark
version
2.4.3
BigDL version 0.10.0
Analytics Zoo
version
0.7.0
Alluxio version 2.2.0

结果对比

在使用Analytics Zoo对ImageNet数据进行inception训练时,我们测量了数据加载性能。测得的时间包括训练数据和测试数据的加载时间。

使用Alluxio和不使用Alluxio的平均加载时间分别为579秒和369秒。当Analytics Zoo使用Alluxio加载ImageNet训练和测试数据时,速度大约提高了1.5倍。注意,输入数据位于S3中计算的同一区域中。

下图显示了使用Alluxio时,性能波动(15.9秒)也远低于基线波动(32.3秒)。这表明Alluxio不仅有助于平均加载时间,而且可以使性能更加稳定。

4.结论

通过利用Alluxio作为Analytics Zoo的数据层,混合云解决方案可加速Analytics Zoo应用程序中的数据加载以及大数据系统上的深度学习分析。我们的Alluxio内部性能基准测试表明,当Analytics Zoo使用Alluxio加载ImageNet的训练和测试数据时,该架构提升了约1.5倍的速度。

人工智能应用的不断发展,将深度学习带入了新一代数据分析发展的前沿。各类组织机构将深度学习技术应用于大数据分析流水线的需求将不断增长。我们代表整个Alluxio开源社区鼓励读者尝试这个解决方案,并欢迎您在遇到任何问题时在我们的社区slack频道中提问。

特别感谢英特尔的Jennie Wang和Louie Tsai,感谢他们提供的宝贵的Analytics Zoo技术咨询和支持。

deepfashion 深度学习_基于Alluxio加速混合云下的Intel Analytics Zoo开源深度学习平台...相关推荐

  1. C#上位机基础学习_基于SOCKET实现与PLC服务器的TCP通信(二)

    C#上位机基础学习_基于SOCKET实现与PLC服务器的TCP通信(二) 测试软件: TIA PORTAL V15.1 S7-PLCSIM ADVANCED V3.0 Visual Studio 20 ...

  2. 新浪微博基于Docker的混合云架构与应用实践

    大家好!先做一个自我介绍,我来自新浪微博,付稳,属于微博平台研发中心,本次分享的主题是新浪微博DCP基于Docker的混合云架构与应用实践.今天的主题是Swarm.Mesos.Kubernetes的三 ...

  3. 【深度学习】基于 Alluxio 数据缓存的性能优化

    作者 | 车漾(阿里云高级技术专家).顾荣(南京大学 副研究员) 导读:Alluxio 项目诞生于 UC Berkeley AMP 实验室,自开源以来经过 7 年的不断开发迭代,支撑大数据处理场景的数 ...

  4. 三维重建 几何方法 深度学习_基于深度学习的视觉三维重建研究总结

    三维重建意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶.虚拟现实.运动目标监测.行为分析.安防监控和重点人群监护等.现在每个人都在研究识别,但识别只是计算机视觉的一部分.真正意义上的计算机视 ...

  5. 三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...

    欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...

  6. 多智能体强化学习_基于多智能体强化学习主宰星际争霸游戏

    大家好,今天我们来介绍基于多智能体强化学习主宰星际争霸游戏这篇论文 Grandmaster level in StarCraft II using multi-agent reinforcement ...

  7. ros订阅相机深度信息_基于深度相机 RealSense D435i 的 ORB SLAM 2

    相比于上一篇文章,这里我们将官方给的 rosbag 数据包替换为来自深度相机的实时数据.之所以选择 Intel RealSense 这款深度相机,仅仅是因为它是最容易买到的...在京东上搜" ...

  8. 天蓝色在ps中的色值_用天蓝色构建混合云

    天蓝色在ps中的色值 In this day and age who would bother developing solutions on anything but the public clou ...

  9. javame学习_从零基础自学Java教程:648集全网最新Java学习教程,一学就会

    我们都知道Java的功能非常的强大,Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即J ...

最新文章

  1. 5G NR — Open vRAN 的组织单位
  2. 学python要多少钱-学习Python这门课程大概需要多久?费用是多少?
  3. hdu 3416(最短路+最大流)
  4. MySQL5.7本地首次登录win10报错修改
  5. android MD5 SHA1
  6. 树大招风:英伟达证实遭遇攻击,核心源代码惨遭泄露,75GB机密数据被公开
  7. vim---操作命令大全
  8. webrtc视频卡顿分析一本地视频卡顿
  9. Android_GestureDetector手势滑动使用
  10. C#中感叹号(!) 的作用总结
  11. 人民币大写数字注意事项
  12. c语言找最大值最小值
  13. c++ bind函数
  14. 如何使用peakview软件查看AB SCIEX 质谱下机数据
  15. 联通linux用户名是什么意思,揭秘 linux 通过新联通宽带拨号上网不成功原因及解决办法!...
  16. 众链网络-慧景区项目建设方案1(票务系统)
  17. 测绘计算机编程在在道路中的应用,Casiofx-5800P计算器三个公路基本测量程序编写...
  18. 怎么无法识别计算机评分,电脑阅卷,多少孩子吃亏在字上?电脑根本识别不了!...
  19. 数据结构c语言版朱站立第五版答案,西安交大朱站立《数据结构——使用C语言》头文件...
  20. 基于风险的测试终极指南:软件测试中的风险管理(一)

热门文章

  1. sed tr 去除PATH中的重复项
  2. 为什么苹果不再需要谷歌地图?
  3. linux下多线程之pthread_detach(pthread_self())
  4. C C++面试常问简答题(2)
  5. 单片机(MCU)如何才能不死机之对齐访问(Aligned Access)
  6. 招银网络笔试java_最新!!招银网络科技Java面经,整理附答案
  7. 【Pytorch神经网络理论篇】 24 神经网络中散度的应用:F散度+f-GAN的实现+互信息神经估计+GAN模型训练技巧
  8. 智慧交通day04-特定目标车辆追踪01:总览概述
  9. Django 页面报错 Maximum recursion depth exceeded
  10. JS面向对象——原型式继承函数、寄生式继承函数、寄生组合式继承