XLeaning:深度学习调度平台架构设计-GIAC

Xlearning是一款支持多种机器学习、深度学习框架的调度系统。基于Hadoop Yarn完成了对TensorFlow/ MXNet/ Caffe/ Theano/ PyTorch/ Keras/ XGBoost等常用框架的集成,同时具备良好的扩展性和兼容性
展开查看详情

1.Xleaning :深度 学习调度平台架构设计

2. 是 一 款支持 多种机器 学习、深度 学习 框架的 调度 系统。基于 Hadoop Yarn 完成了对 TensorFlow / MXNet / Caffe / Theano / PyTorch / Keras / XGBoost 等常用框架的集成,同时具备良好的 扩展性 和 兼容性 https://github.com/Qihoo360/XLearning

3.为什么要设计 XLearning 平台 服务器资源如何调度( CPU 、 GPU 、 MEM ) 训练数据和训练模型的存储管理 深度学习作业管理(状态跟踪、日志查看、 Metrics 信息) 多种深度学习框架的环境部署和多版本管理 提升集群硬件资源的利用率

4.平台设计考量 可否能与现有调度平台融合 训练数据的统一管理和高效存取 与原生深度学习框架代码兼容、性能一致 要支持多租户管理和资源隔离 开发和运维工作量

5.XLearning 架构设计

6.大数据 +AI 平台架构

7.XLearning 架构简图

8.XLearning 执行流程

9.XLearning 主要功能 & 特点介绍 支持主流的分布式和单机版深度学习框架 支持同一个深度学习框架的多个版本和用户自定义版本 实现了分布式 TensorFlow 作业 ClusterSpec 结构的自动构建 支持 GPU 资源调度和隔离,感知 GPU 设备亲和性(需要 Yarn 的支持) 基于 HDFS 的数据统一存取,支持多种数据存取模式 支持在集群上创建临时 GPU 虚拟机,解决 Debug 及个性化 GPU 需求 友好的 Web 页面,方便查看作业日志、训练进度,硬件资源实时负载信息图表化 兼容原生深度学习框架的代码 训练效果和性能与原生框架保持一致

10.XLearning 对 TensorFlow ClusterSpec 的自动构建 tf.train.ClusterSpec ({ “worker”: [ “host0.example.com:10000”, “host1.example.com:10001” ], “ ps ”: [ “host2.example.com:10002”, “host3.example.com:10003” ]}) tf.train.ClusterSpec ( json.loads ( os.environ [“ TF_CLUSTER_DEF ”]))

11.XLearning TF ClusterSpec 自动构建的实现过程

12.Yarn 支持 GPU 调度的设计 NodeManager yarn- site.xml 中添加配置: <!-- K40 --> <property> <name> yarn.nodemanager.resource.gpu -cores </name> <value> ((2,2)) </value> </property> NodeManager 上可用的 GPU 卡数是: 2 + 2 = 4 <!-- K80 --> <property> <name> yarn.nodemanager.resource.gpu -cores </name> <value> ((2,2),(2,2)) </value> </property> NodeManager 上可用的 GPU 卡数是: 2 + 2 + 2 + 2 = 8

13.NodeManager 对 GPU 通信亲和性调度感知

14.XLearning 数据读取模式介绍   分片单位 文件格式兼容 读取方式 适用数据量 Download 文件 任意 提前 下载 小 Placeholder 文件 任意 直接 读取 不限 Stream Split 受限 / 用户可定制不同的 inputformat 流式 读取 不限 通过 --input-strategy参数选择,默认为 Download 模式

15.XLearning 使用介绍 $XLEARNING_HOME/bin/xl-submit \ -- app-type “ tensorflow ” \ # 作业类型为“ TensorFlow ” -- app-name “ tf -demo” \ # 作业名称为 " tf -demo" -- input / tmp /data/ tensorflow#data \ # 输入数据的 HDFS 路径 -- output / tmp / tensorflow_model#model \ # 输出模型的 HDFS 路径 -- files demo.py,dataDeal.py \ # 本地 TF 代码文件 -- launch- cmd “python demo.py ” \ # TF 程序启动指令 -- worker- num 2 \ # worker 数量为 2 -- worker-memory 10G \ # 每个 worker 需要 10G 内存 -- worker-cores 4 \ # 每个 worker 需要 4 个 CPU --worker- gcores 2 \ # 每个 worker 需要 2 个 GPU 卡 -- ps-num 1 \ # PS 数量为 1 -- ps -memory 2G \ # 每个 PS 需要 1G 内存 -- ps -cores 4 \ # 每个 PS 需要 4 个 CPU

16.Yarn 首页显示的 XLearning 作业信息

17.XLearning 作业首页

18.XLearning GPU 虚拟机功能 特点 & 优点 : 利用 集群上 GPU 的空闲资源创建虚拟机,相比静态分配可以有效提供 GPU 资源的利用率; 采用 Docker 实现 ,更轻量,用户 方便定制系统环境; 随时创建和销毁。

19.XLearning 集成 Nvidia Digist 系统

20.XLearning 平台设计经验分享 提前想 清楚平台的价值是什么,能带来什么收益 功能设计源于用户需求,不要创造需求,想象出来的功能往往没人用 优先解决用户公共需求和最痛点的问题 最大程度复用现有的技术工具,尽量避免重复造轮子 重视平台的兼容性(代码、性能、效果等),直接影响平台的推广难度 WIKI 、 FAQ 能在推广过程中节省大量精力

21.个人联系方式: liyuance@gmail.com XLearning 开源地址: https :// github.com/Qihoo360/XLearning 360 大数据基础架构团队求贤若渴: U R Welcome !

22.扫码关注 GIAC 公众号