XLearning 深度学习调度平台开源项目

我要开发同款
匿名用户2017年12月05日
147阅读

技术信息

开源地址
https://github.com/Qihoo360/XLearning
授权协议
BSD

作品详情

XLearig 是奇虎360开源的一款支持多种机器学习、深度学习框架调度系统。基于HadoopYar完成了对TesorFlow、MXNet、Caffe、Theao、PyTorch、Keras、XGBoost等常用框架的集成,同时具备良好的扩展性和兼容性。

架构设计

XLearig系统包括三种组件:

Cliet:XLearig客户端,负责启动作业及获取作业执行状态;

ApplicatioMaster(AM):负责输入数据分片、启动及管理Cotaier、执行日志保存等;

Cotaier:作业的实际执行者,负责启动Worker或PS(ParameterServer)进程,监控并向AM汇报进程状态,上传作业的输出等。对于TesorFlow类型作业,还负责启动TesorBoard服务。

功能特性1支持多种深度学习框架

支持TesorFlow、MXNet分布式和单机模式,支持所有的单机模式的深度学习框架,如Caffe、Theao、PyTorch等。对于同一个深度学习框架支持多版本和自定义版本。

2基于HDFS的统一数据管理

训练数据和模型结果统一采用HDFS进行存储,用户可通过--iput-strategy或xlearig.iput.strategy指定输入数据所采用的读取方式。目前,XLearig支持如下三种HDFS输入数据读取方式:

Dowload:AM根据用户在提交脚本中所指定的输入数据参数,遍历对应HDFS路径下所有文件,以文件为单位将输入数据平均分配给不同Worker。在Worker中的执行程序对应进程启动之前,Worker会根据对应的文件分配信息将需要读取的HDFS文件下载到本地指定路径;

Placeholder:与Dowload模式不同,Worker不会直接下载HDFS文件到本地指定路径,而是将所分配的HDFS文件列表通过环境变量INPUT_FILE_LIST传给Worker中的执行程序对应进程。执行程序从环境变量os.eviro["INPUT_FILE_LIST"]中获取需要处理的文件列表,直接对HDFS文件进行读写等操作。该模式要求深度学习框架具备读取HDFS文件的功能,或借助第三方模块库如pydoop等。

IputFormat:XLearig集成有MapReduce中的IputFormat功能。在AM中,根据“splitsize”对所提交脚本中所指定的输入数据进行分片,并均匀的分配给不同Worker。在Worker中,根据所分配到的分片信息,以用户指定的IputFormat类读取数据分片,并通过管道将数据传递给Worker中的执行程序进程。

同输入数据读取类似,用户可通过--output-strategy或xlearig.output.strategy指定输出结果的保存方式。XLearig支持如下两种结果输出保存模式:

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

OutputFormat:XLearig集成有MapReduce中的OutputFormat功能。在训练过程中,Worker根据指定的OutputFormat类,将结果输出至HDFS。

3可视化界面

作业运行界面大致分为三部分:

AllCotaiers:显示当前作业所含Cotaier列表及各Cotaier对应信息,如CotiaerID、所在机器(CotaierHost)、所属类型(CotaierRole)、当前执行状态(CotaierStatus)、开始时间(StartTime)、结束时间(FiishTime)、执行进度(ReporterProgress)。其中,点击CotaierID超链接可查看该Cotaier运行的详细日志;

ViewTesorBoard:当作业类型为TesorFlow时,可点击该链接直接跳转到TesorBoard页面;

SaveModel:当作业提交脚本中“--output”参数不为空时,用户可通过SaveModel按钮,在作业执行过程中,将本地输出当前模型训练结果上传至HDFS。上传成功后,显示目前已上传的模型列表。

如下图所示:

4原生框架代码的兼容性

TesorFlow分布式模式支持“ClusterSpec”自动分配构建,单机模式和其他深度学习框架代码不用做任何修改即可迁移到XLearig上。

功能介绍

XLearning 是奇虎 360 开源的一款支持多种机器学习、深度学习框架调度系统。基于 Hadoop Yarn 完成了对 TensorFlow、MXNet、Caffe、Theano、PyTo...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论