HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

奇虎 360 正式开源其深度学习调度平台,支持 TensorFlow、MXNet 等框架

  • 2017-12-06
  • 本文字数:3802 字

    阅读完需:约 12 分钟

奇虎 360 今日宣布开源深度学习调度平台 XLearning,项目开源地址: https://github.com/Qihoo360/XLearning

XLearning 由 360 系统部大数据团队与人工智能研究院联合开发,基于 Hadoop Yarn 完成了对 TensorFlow、MXNet、Caffe、Theano、PyTorch、Keras、XGBoost 等常用深度学习框架的集成。平台上线运行近一年时间,经多次版本迭代更新,为各类深度学习框架的使用者提供了统一、稳定的作业提交平台,实现了资源共享,极大的提高了资源利用率,并且具有良好的扩展性和兼容性,在公司搜索、人工智能研究院、商业化、数据中心等业务部门得到广泛使用。

我们第一时间采访了XLearning 项目负责人李远策,了解平台建设背景和设计思想。李远策,2013 年加入奇虎 360,先后参与公司 Hadoop、Spark 、深度学习等平台的建设,历经公司 Hadoop 平台高速发展及 Spark 平台从无到大规模实践及深度学习平台的落地。曾主持 数据仓库索引、MPI on Yarn、XLearning 等多个项目。工作中专注于解决平台中的各种 Bug 及用户遇到的各类问题,爱好开源,乐于学习和分享。目前主要关注 大数据索引、大数据 + 深度学习等领域。

AI 前线:_ 请问 XLearning 在 360 公司的研发历史是什么样的?起初是为了解决什么问题?目前在 360 公司有哪些应用场景?_为什么会在现在选择开源?

李远策:人工智能技术最近两年发展迅速,以 Google 开源的 TensorFlow 为代表的各种深度学习框架层出不穷。为了能让人工智能技术更好的在公司落地,我们大数据基础机构团队联合公司人工智能研究院共同开发了 XLearning 平台。XLearning 从今年(2017)4 月份正式开始开发,经过 3 个版本的迭代,目前已经在公司的搜索、人工智能研究院、商业化、大数据中心等业务线广泛使用。深度学习技术平台化可以有效的提升 GPU 等硬件资源的利用率,节省硬件投入的成本。另外,可以让算法工程师更方便的使用各类深度学习技术,从繁杂的诸如运行环境运维等工作中解脱出来。

XLearning 的设计思路是采用 Hadoop Yarn 来调度深度学习框架,是典型的“AI on Hadoop”的实现,同行业的公司都会有类似的需求,所以我们选择开源,希望能给大家建设大数据 + 人工智能平台做个参考。

AI 前线:为什么会考虑在大数据平台的基础上集成各种深度学习框架?XLearning 可满足哪些要求,减轻哪些工作量?

李远策:在建设公司人工智能平台的架构设计上确实有多个方案可以选择,我们主要是从如下几个方面考虑的:

(1)跟现有平台的融合;公司已有的机器学习作业多数采用 Spark MLLib 和 MPI 框架,都是采用 Hadoop Yarn 进行统一调度,如果将深度学习框架也集成到 Yarn 上同时数据由 HDFS 存储,则可以实现平台的统一。

(2)运维复杂度;重新建设一个新的平台会引入新的运维工作;

(3)公司程序员的使用习惯;公司很多开发人员对 Hadoop 生态比较熟悉,直接在 Hadoop 上提交深度学习作业更容易推广;

(4)开发工作量;我们团队对 Hadoop 生态系统的组件比较熟悉,再次之前曾经实现了“MPI on Yarn”系统。可以说具备实现“AI on Hadoop”的技术储备。

XLearning 开源版本兼容社区的 Hadoop,同行公司如果有 Hadoop 平台则可以直接使用它来调度深度学习作业。如果还没有 Hadoop 平台则需要提前部署。深度学习的训练往往依赖海量的样本数据,一个可靠的大数据存储系统是训练平台的必备条件,Hadoop 部署简单、稳定可靠,是大数据平台的行业标准,推荐使用。

AI 前线:XLearning 功能设计和架构设计要点是什么?

李远策:XLearning 的系统架构图如下:

  • Client:XLearning 客户端,负责启动作业及获取作业执行状态;

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

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

XLearning 虽然架构简洁,但具有丰富的功能方便用户进行模型训练,并依托于 Yarn 提供有作业资源的统一管理。

(1)支持多种深度学习框架

XLearning 支持 TensorFlow、MXNet 分布式和单机模式,支持所有的单机模式的深度学习框架,如 Caffe、Theano、PyTorch 等。对于同一个深度学习框架支持多版本和自定义版本,满足用户个性化需求,不受限于集群机器上各学习框架的安装版本。

(2)基于 HDFS 的统一数据管理

XLearning 提供多种模式用于数据的输入、输出,包括数据的流式读写、直接 HDFS 读写等,可根据作业处理的数据量与集群机器硬盘容量,视情况决定所采用的读写方式。

(3)可视化界面

为方便用户查看作业信息,XLearning 提供可视化界面用于展示作业执行进度和输出日志等内容。作业执行完毕后,亦可查看日志内容,便于分析训练过程进展。对于 TensorFlow 类型作业,支持 TensorBoard 服务。作业运行界面大致分为三部分(如下图所示):

  • All Containers:显示当前作业所含 Container 列表及各 Container 对应信息,如 Contianer ID、所在机器(Container Host)、所属类型(Container Role)、当前执行状态(Container Status)、开始时间(Start Time)、结束时间(Finish Time)、执行进度(Reporter Progress);

  • View TensorBoard:当作业类型为 TensorFlow 时,可点击该链接直接跳转至 TensorBoard 页面;

  • Save Model:用户可在作业执行过程中,可以将当前训练模型的输出结果上传至 HDFS,并显示目前已上传的模型列表。

(4)原生代码兼容

XLearning 支持 TensorFlow 分布式模式的 ClusterSpec 自动分配构建,单机模式和其他深度学习框架代码不用做任何修改即可迁移到 XLearning 上,便于用户快速使用。

(5)Checkpoint 功能

利用深度学习框架本身的 Checkpoint 机制和直接读写 HDFS 数据功能,XLearning 方便用户实现训练恢复继续执行。

AI 前线:XLearning 在性能上有哪些优势?平台设计时考虑到了哪些易用性方面的需求?

李远策:XLearning 主要负责调度和监控工作,从原理上讲训练性能跟原生的 TensorFlow、Caffe 等框架保持一致。平台的易用性是推广的关键因素,XLeanring 做了如下考虑:

(1)与原生框架的兼容性,除了刚才说的性能保持一致外,代码也保持兼容,可以有效降低业务作业迁移的成本;

(2)Web 展示;XLearnin 调度的作业主页上会展示必要的调度信息、作业进度、日志等,同时还额外提供了随时保存中间结果的功能,方便工程师根据实际情况提前终止自己的作业;

(3)集成 TensorBoard;对于 TensorFlow 作业 XLearning 会自动拉起 TensorBoard 服务,相比之前手动启动会更简单;

(4)自动构建 TensorFlow 的 ClusterSpec;对于分布式模式的 TensorFlow 作业,工程师不再需要手动指定 worker、ps 的 host 信息,仅需要告知 XLearning 需要的 worker 和 ps 节点数即可;

这些在刚才的架构设计要点环节里也都有提到。

AI 前线:您们在开发 XLearning 有哪些经验和心得值得和大家分享的呢?

李远策:除了刚才提到的架构选型之外最想分享的经验就是:所有功能的设计都要以实际需求出发,空想出来的功能往往华而不实。XLearning 设计之初和新版本的规划过程中,都会跟公司实际用户做充分的功能需求讨论,明确大家工作的痛点,安排好优先级和 deadline 再做架构设计和开发。

AI 前线:XLearning 的开源版本和公司在使用的版本功能上是否存在差异?

李远策:坦白讲开源的 XLearning 是一个简化的版本,主要是因为受限于对 Yarn 功能的依赖。公司的 Yarn 版本,是我们在社区版本上做了不少增强。比如支持 GPU 的资源调度、GPU 通信亲和性的感知、DockerContainer 支持等。依赖于这些特性公司在用的版本多出了 GPU 资源调度支持、作业 Docker 化、临时 GPU 虚拟机、Container Metrics 可视化图表展示等功能。这些功能我们后续会通过提供 Yarn Patch 或者开源自用 Yarn 版本来分享给大家,也欢迎大家随时跟我们沟通。

AI 前线:我们知道您不仅负责了 XLearning 深度学习平台,也是 Spark 早期研究者和布道者,历经 360 公司 Hadoop 平台高速发展及 Spark 平台从无到大规模实践和落地,能否结合您的经历给大家讲述下从通用大数据平台到深度学习平台的演进历程?

李远策:MR、Spark 这些计算框架在大多数互联网公司都有广泛的使用,能满足大多数的数据处理需求。受限于 Spark MLLib 的性能和扩展性,公司还有不少 MPI 类型的作业跑在专用的调度系统(名为 Euler)上。为了实现调度的统一和服务器资源的复用,我们团队开发了 Euclid(MPI on Yarn)系统,初步统一了机器学习作业和大数据作业的统一调度。然后到了深度学习阶段,我们最初也走了些弯路。比如我们最早在 2016 年下半年开发了一款名为 SparkFlow(TensorFlow on Spark)的系统,可以把 TensorFlow 集成到 Spark 中,通过 RDD 完成数据的交互。后来 Yahoo 研究院也开源一个“TensorFlowOnSpark”,实现原理基本类似。受限与 Spark 本身的问题,并不适合做 PS 架构,另外与原生 TensorFlow 代码兼容性也很难做到完全兼容,在推广过程中遇到了很多的问题。重新考虑后我们开发了“TensorFlow on Yarn”,试行成功后为了兼容其他的深度学习框架就演化成了现在的 XLearning。后续我们会继续沿着统一调度的方案前行。目前平台还有很多问题需要继续探索,比如我们正在设计的更高性能的算法库,希望能无缝替换现在的 Spark MLLib,进一步提升公司 AI 平台的计算能力。关于这方面的工作希望能有机会跟同行的技术专家多多交流。谢谢大家!

2017-12-06 18:003806

评论

发布
暂无评论
发现更多内容

SSH安全远程登录与端口转发

左诗右码

SSH

观测云产品更新 | Pipelines、智能监控、日志数据访问等

观测云

智能监控 pipelines

自研一款共享集群数据库,有多难?

Geek_2d6073

工业元宇宙AI超级终端“派中心一体机”问世

科技汇

原生鸿蒙,激活数字内容一池活水

最新动态

介绍几种 MySQL 官方高可用方案

Simon

MySQL 数据库 MySQL高可用

Visio文件编辑查看工具:Visio Viewer for Mac 激活版

你的猪会飞吗

mac软件下载

vivo 互联网自研代码评审 VCR 落地实践

vivo互联网技术

git gitlab 代码评审 idea intellij VCR

基于 Paimon 的袋鼠云实时湖仓入湖实战剖析

袋鼠云数栈

数据湖 实时计算 实时数据 实时湖仓 paimon

阿里巴巴1688商品详情API返回值解析:商品信息实时更新与监控

技术冰糖葫芦

API Explorer API boy api 货币化 API 文档

未来LED显示屏方向:超薄、散热、柔性

Dylan

国际化 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

利用反射API和AOP实现业务逻辑的自动化重构

技术冰糖葫芦

API Explorer API boy api 货币化 API 文档

TDengine 新能源行业研讨会上都说了啥?精彩回顾!

TDengine

数据库 tdengine 时序数据库

低代码+定制:优化项目管理的新方案

天津汇柏科技有限公司

项目管理 低代码 软件开发定制

Databend 怎么看 OpenAI 收购实时数仓 Rockset?

Databend

突发,OpenAI宣布终止对中国提供服务,影响在哪里?

AR玩家

openai GPT Rokid Vision pro 炬目AR

漫步5G-A City,一份独属于上海的浪漫

脑极体

office2021破解版安装包 mac/win

理理

通过搭建 24 点小游戏应用实战,带你了解 AppBuilder 的技术原理

百度Geek说

企业号 6 月 PK 榜 AI 原生云 AppBuilder

接口测试:Mock 工具与定制化

测试人

软件测试 Mock

如何玩转云端文生视频、0码构建AI应用?华为云专家来揭秘

华为云开发者联盟

人工智能 云原生 华为云 华为云开发者联盟 企业号2024年6月PK榜

Linux 下的性能监控与分析技巧

左诗右码

Linux

移动通信产业,需要通往AI时代的“波托兰海图”

脑极体

通信

🚀 快速上手LangChain开发实战:1小时内掌握《Generative AI with LangChain》的核心!

Epsilla

人工智能 AI langchain rag Epsilla

火山引擎ByteHouse:新一代云数仓必不可少的五大核心能力

字节跳动数据平台

数据库 大数据 云原生 Clickhouse 数仓

奇虎360正式开源其深度学习调度平台,支持TensorFlow、MXNet等框架_语言 & 开发_李远策_InfoQ精选文章