前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【业界】Booking.com如何使用Kubernetes进行机器学习

【业界】Booking.com如何使用Kubernetes进行机器学习

作者头像
AiTechYun
发布2018-06-06 12:21:53
6210
发布2018-06-06 12:21:53
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

AiTechYun

编辑:nanan

在今年的QCon伦敦会议上,Booking.com的开发者Sahil Dua介绍了他们是如何使用Kubernetes为他们的客户推荐目的地和住宿的机器学习(ML)模型。他特别强调了Kubernetes如何避免容器的弹性和资源匮乏,帮助他们在计算(和数据)密集型且难以并行化的机器学习模型上运行。

Kubernetes隔离(过程不需要争夺资源)、弹性(基于资源消耗的自动扩展或缩减)、灵活性(能够快速尝试新的库或框架)和GPU支持(尽管Kubernetes支持NVIDIA GPU仍在α,它允许20到50倍的速度改进)是Booking.com在其规模上运行大量ML模型的关键(大约每天预订150万个房间和每月4亿个访问者)。指定一个pod而需要一个GPU资源,这告诉Kubernetes将其安排在具有GPU单元的节点上:

代码语言:javascript
复制
resources:
代码语言:javascript
复制
  limits:
代码语言:javascript
复制
    alpha.kubernetes.io/nvidia-gpu: 1

每个模型在容器内作为无状态应用程序运行。容器映像不包含模型本身,它是在启动时从Hadoop中进行检索。这样可以保持图像较小,避免每次有新模型时都需要创建新图像,从而加快部署速度。一旦部署完毕,模型将通过REST API公开,Kubernetes将开始探测容器,以便随时接收预测请求,直到最终流量开始指向新容器。

除了Kubernetes的自动缩放和负载平衡之外,Dua还透露了在Booking.com上使用的其他技术,用于优化模型的延迟,即将模型保存在容器的内存中,并在启动后对其进行预热(谷歌的ML框架—TensorFlow,发出初始请求的运行速度通常比其他运行速度慢)。但并不是所有的请求都来自实时系统,在某些情况下,预测可以预先计算并存储以便以后使用。对于后者来说,优化吞吐量(每单位时间完成的工作量)更为重要。Dua说,分批请求和并行处理异步请求可以减少网络开销并提高吞吐量。

ML模型需要接受预先选择的数据集进行训练,然后才能提供Booking.com所需的预测。该过程的训练部分也在Kubernetes基础设施上运行。容器中训练发生的基础图像仅包含所需的框架(如TensorFlow和Torch),并从Git存储库获取实际的训练代码。同样,这使得容器图像变小,避免了新版本代码的图像泛滥。训练数据是从Hadoop集群获取的,一旦模型准备就绪(训练工作量完成),它将被导出回Hadoop。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档