设为首页收藏本站

小牛社区-大数据学习交流社区|大数据免费学习资源

 找回密码
 立即注册!

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 72|回复: 0

奇虎 360 正式开源其深度学习调度平台 XLearning

[复制链接]

84

主题

0

帖子

6

积分

吃土小白

Rank: 1

积分
6
发表于 2017-12-6 16:26:00 | 显示全部楼层 |阅读模式
XLearning 是奇虎 360 开源的一款支持多种机器学习、深度学习框架调度系统。基于 Hadoop Yarn 完成了对 TensorFlow、MXNet、Caffe、Theano、PyTorch、Keras、XGBoost 等常用框架的集成,同时具备良好的扩展性和兼容性。
架构设计

XLearning 系统包括三种组件:

  • Client:XLearning 客户端,负责启动作业及获取作业执行状态;
  • ApplicationMaster(AM):负责输入数据分片、启动及管理 Container、执行日志保存等;
  • Container:作业的实际执行者,负责启动 Worker 或 PS(Parameter Server)进程,监控并向 AM 汇报进程状态,上传作业的输出等。对于 TensorFlow 类型作业,还负责启动 TensorBoard 服务。
功能特性
1 支持多种深度学习框架
支持 TensorFlow、MXNet 分布式和单机模式,支持所有的单机模式的深度学习框架,如 Caffe、Theano、PyTorch 等。对于同一个深度学习框架支持多版本和自定义版本。
2 基于 HDFS 的统一数据管理
训练数据和模型结果统一采用 HDFS 进行存储,用户可通过 --input-strategy 或 xlearning.input.strategy 指定输入数据所采用的读取方式。目前,XLearning 支持如下三种 HDFS 输入数据读取方式:

  • Download: AM 根据用户在提交脚本中所指定的输入数据参数,遍历对应 HDFS 路径下所有文件,以文件为单位将输入数据平均分配给不同 Worker 。在 Worker 中的执行程序对应进程启动之前,Worker 会根据对应的文件分配信息将需要读取的 HDFS 文件下载到本地指定路径;
  • Placeholder: 与 Download 模式不同,Worker 不会直接下载 HDFS 文件到本地指定路径,而是将所分配的 HDFS 文件列表通过环境变量 INPUT_FILE_LIST 传给 Worker 中的执行程序对应进程。执行程序从环境变量 os.environ["INPUT_FILE_LIST"] 中获取需要处理的文件列表,直接对 HDFS 文件进行读写等操作。该模式要求深度学习框架具备读取 HDFS 文件的功能,或借助第三方模块库如 pydoop 等。
  • InputFormat: XLearning 集成有 MapReduce 中的 InputFormat 功能。在 AM 中,根据 “split size” 对所提交脚本中所指定的输入数据进行分片,并均匀的分配给不同 Worker 。在 Worker 中,根据所分配到的分片信息,以用户指定的 InputFormat 类读取数据分片,并通过管道将数据传递给 Worker 中的执行程序进程。
同输入数据读取类似,用户可通过--output-strategy或xlearning.output.strategy指定输出结果的保存方式。XLearning 支持如下两种结果输出保存模式:

  • Upload: 执行程序结束后,Worker 根据提交脚本中输出数据参数,将本地输出路径保存文件上传至对应 HDFS 路径。为方便用户在训练过程中随时将本地输出上传至 HDFS,XLearning 系统在作业执行 Web 界面提供对输出模型的当前状态主动保存的功能,详情请见“可视化界面”说明部分;
  • OutputFormat: XLearning 集成有 MapReduce 中的 OutputFormat 功能。在训练过程中, Worker 根据指定的 OutputFormat 类,将结果输出至 HDFS 。
3 可视化界面
作业运行界面大致分为三部分:

  • All Containers:显示当前作业所含 Container 列表及各 Container 对应信息,如 Contianer ID、所在机器(Container Host)、所属类型(Container Role)、当前执行状态(Container Status)、开始时间(Start Time)、结束时间(Finish Time)、执行进度(Reporter Progress)。其中,点击 Container ID 超链接可查看该 Container 运行的详细日志;
  • View TensorBoard:当作业类型为 TensorFlow 时,可点击该链接直接跳转到 TensorBoard 页面;
  • Save Model:当作业提交脚本中“--output”参数不为空时,用户可通过Save Model按钮,在作业执行过程中,将本地输出当前模型训练结果上传至 HDFS 。上传成功后,显示目前已上传的模型列表。
如下图所示:

4 原生框架代码的兼容性
TensorFlow 分布式模式支持 “ClusterSpec” 自动分配构建,单机模式和其他深度学习框架代码不用做任何修改即可迁移到 XLearning 上。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册!

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册!

本版积分规则

快速回复 返回顶部 返回列表