100

去哪儿网基于Kubernetes/Ceph的GPU云平台实践

 6 years ago
source link: http://cloud.51cto.com/art/201711/559320.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

去哪儿网基于Kubernetes/Ceph的GPU云平台实践

原创
作者:王雪燕 2017-11-28 15:16:47
由51CTO主办的第十六期以“Tech Neo”为主题的技术沙龙邀请了来自去哪儿网的DevOps工程师叶璐老师。她给大家带来了关于深度学习的兴起原因、去哪儿网的深度学习应用实践以及构建GPU云应对资源使用问题的分享。

【51CTO.com原创稿件】今年,深度学习领域最火热的消息莫过于:AIphaGo 0:3打败柯洁、AIphaGo Zero在没有人类干预的情况下,通过自我学习及少许训练***击败AIphaGo。由此,我们可以看到深度学习发展之迅速。深度学习是机器学习的一个领域,其概念于上世纪60年代被提出,但当时并没有掀起太大波澜。那么,为什么在当下又重新走近大众的视野呢?

近日,由51CTO主办的第十六期以“Tech Neo”为主题的技术沙龙在北京举行,此次活动邀请了来自去哪儿网的DevOps工程师叶璐老师。她给大家带来了关于深度学习的兴起原因、去哪儿网的深度学习应用实践以及构建GPU云应对资源使用问题的分享。

深度学习兴起的原因

当下,深度学习从大学实验室和***IT公司走向大众,诸多公司通过深度学习技术解决实际中遇到的问题。深度学习主要的特点是具有多隐层,随着隐层不断叠加,效果随之不断的提升。

深度学习兴起的原因,主要有以下三点:

  • 和以前相比,数据获取更便捷、数据量也是呈指数倍的增加。
  • GPU等计算资源成本降低,以前则是非常***且难获取。
  • 操作简单的开源工具的普及。

GPU是深度学习的加速器,因为在GPU出现之前,一个实验可能需要等几个月,或者跑一天才能发现某个试验的参数不好。现在,优秀的GPU可以在深度学习网络上进行快速迭代,几天就能跑完之前几个月的试验,或者几小时代替之前的几天,几分钟代替之前的几小时。

去哪儿网在深度学习方面的应用实践

去哪儿网在深度学习方面的应用有很多, 如机票验证码识别、看图写诗-小诗机、智能客服、“拿去花”用户信用评级、根据历史访问记录推荐酒店、计算不同酒店房型的价格系数、酒店推荐的模型等等。其中智能客服、“拿去花”用户信用评级、酒店推荐是去哪儿网深度学习的经典实践案例。

应用实践过程中深度学习存在一定的共通性,就是输入数据并设置算法,让计算机对我们的世界进行充分建模,从而达到我们所说的“智能”。让机器和人脑一样,能辨别好坏,帮助风控工程师进行风险分析;能迎合喜好,给用户推荐更合适的酒店。而深度学习,让模型变得更加可靠,在数据变化的情况下,模型持续可用。

以前去哪儿网的GPU资源是多个团队共享的使用方式,常遇到某位同事非常愤怒的说:“谁把老子跑了三天的任务杀了!”这样的情况。

GPU的使用资源问题,还有如下几点:

  • 环境无隔离。
  • 采购周期长。
  • 资源利用率低。
  • 各种工具的环境部署成本高。

那么,要如何应对GPU使用资源的一系列问题呢?去哪儿网的解决方案是构建GPU云,降低资源使用门槛,提升资源利用率。

为什么选择Tensorflow?GPU云***期的目标是GPU资源云化。业务线的同学能够快捷定制机器学习应用,秒建秒删,一键释放GPU资源,建立统一GPU资源申请和管理等入口到Portal,降低业务线同学的接入和学习成本。做到环境隔离的同时又能保证训练数据在分布式环境下的持久化和可靠性,以及支持Tensorflow全工具链。

为什么是Tensorflow呢?构建GPU云初期之所以选择Tensorflow,是因为开源且使用的人相对比较多,社区的活跃度也相对较高。并且在中后期,Tensorflow也会支持其他的用于数值计算的软件库。

如下图,是Tensorflow与其他社区Issue和Pull Request量对比:

d6f43f898fc0a59fb376184ffc8ad90e.jpg

如下图,是Tensorflow的一段Mnist代码:

eae13a69fb510f4957eb0b37950d3256.jpg

这段Mnist代码总共只有149行,没有多余的代码,且还包含一些注释。短短的代码,定义了两个隐层,并构建了一个softmax回归模型,工程师不用再担心底层的实现,更专注于模型本身。

如下图,是Tensorboard部分截图:

a33662fa0f04dd798c74f3fb480d2cc8.jpg

Tensorboard是Tensorflow全工具链之一,研发人员在可视化的情况下,既可以对模型进行调优,也可以直观方便地看到模型的训练效果。

去哪儿网的GPU云平台架构简述

如下图,是机器学习应用部署的示意图,大家可以直观的看到两台机器Server1与Server2。

4279fd5e41051068b2aed2a3b2031a08.jpg

在OPS Namespace下,部署了一个分布式的Tensorflow集群,这个Tensorflow集群可以跨两台机器。Fight Namespace下是一个机票的应用,选择的是单机部署。

如下图,是一个GPU实例初始化的过程:

19a1ef0d7cad1d79670f81c1c105c53f.jpg

研发人员可以自主选择符合的模型来定义应用,生成一个面向K8S的资源定义文件。去哪儿网在资源类型上,选择的是Deployment,剩下的调度和和应用初始化工作根据这个文件完成。

对于机器学习来说,数据存在哪里很关键。去哪儿网提供给开发者的是同时支持Ceph、块存储和对象存储,这样不仅提高了数据使用的灵活性,同时还能支持在线扩容。

去哪儿网为用户提供的是Jupyter,选择Jupyter是因为对于算法工程师来说,容易上手。

如下图,是Jupyter使用界面:

746ec837fe5f3107064e99c7bf083890.jpg

Jupyter Notebook提供了网页版的代码编写运行平台,背后由Python ikernel支撑,可以选择不同的Python版本,而且同一个应用的负责人能协同编辑。

目前GPU云一期已经完成,并且正在公测中,使用前后的对比结果如下:

  • 环境秒建秒删、环境隔离,这个特性给开发同学提供了极大的便利。
  • 在对接Ceph后,数据的可用性和可靠性大大提升,也不用担心因为更换机器带来的训练数据迁移、丢失。
  • 权限部分,Spectrum接入了去哪儿网的应用管理中心Portal,管理模式和传统应用没有差别,降低了新同学的接入门槛。
  • 提高资源使用,这里需要提醒的是,如果不用,要及时停止GPU环境,减少耗费,或把资源让给另一个环境。这个动作可以通过界面上的简单的disable application一个按钮就可以做到。

GPU云的基础环境固化,让开发同学免受环境安装之苦是***期的目标。现在Spectrum第二期也在开发中,开发工程师可以自定义环境模板,这样不仅仅提供了更高的环境定制自由度;同时Tensorflow serving的上线,为机器学习真正落地提供了更完整的pipeline。其他的优化包括,完善上下游的数据获取管道,预处理流程优化,Jupyter插件系统集成等等。

【嘉宾简介】

b1e8690c1a8c37df5ba330db75c107df.jpg

叶璐,去哪儿网DevOps工程师,机器学习云平台负责人。主要工作涉及Qunar私有云平台建设、运维、容器云落地等方面。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

责任编辑:王雪燕 来源: 51CTO

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK