Booking.com如何使用Kubernetes进行机器学习

内容来源:ATYUN AI平台 

Booking.com如何使用Kubernetes进行机器学习

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

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

1resources:
2  limits:
3    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。

本文转自ATYUN人工智能媒体平台,原文链接:Booking.com如何使用Kubernetes进行机器学习

更多推荐

Lyft为自动驾驶汽车开发人员开源L5数据集,为同类中最大的公开数据集

阿里平头哥正式发布玄铁910处理器,用于AI,5G等领域,可使芯片性能提高一倍以上

用Cython加速Python代码,快到起飞!

欢迎关注ATYUN官方公众号,商务合作及内容投稿请联系邮箱:bd@atyun.com
欢迎关注ATYUN官方公众号,商务合作及内容投稿请联系邮箱:bd@atyun.com

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值