写点什么

Booking.com 是如何将 Kubernetes 用于机器学习的

  • 2018-04-03
  • 本文字数:1054 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Sahil Dua Booking.com 的一名开发人员。在今年的 QCon 伦敦大会上,他介绍了 Booking.com 是如何使用Kubernetes 实现机器学习模型的扩展,为客户推荐目的地和住处。他重点展示了 Kubernetes 是如何通过容器的弹性和避免资源饥饿特性,帮助企业运行计算和数据密集的、难以并行处理的机器学习模型。

Kubernetes 所提供的隔离性(进程不必竞争资源)、弹性(基于资源的消费情况而自动向上或向下扩展)、灵活性(具备快速测试软件库或架构的能力)和支持 GPU(尽管 Kubernetes 对 NVIDIA GPU 的支持依然是 Alpha 版,但已经实现 20 到 50 倍的速度改进)等特性,对于以 Booking.com 的规模(每日约 150 万次房间预订,每月约 4 亿访客)运行大量的机器学习模型是十分关键的。下面的配置通过指定 Pod 所需的 GPU 资源,告知 Kubernetes为节点调度一个 GPU 单元

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

每个模型以无状态应用运行在一个容器中。但容器镜像中并不包括模型本身,而是在启动时从 Hadoop 获取。这使得镜像可以维持较小的规模,避免了每推出一个新模型,就要为此创建一个新的镜像,进而加速了模型的部署。模型一旦部署,就可通过 REST API 访问,Kubernetes 将开始轮询容器是否准备好,可以接收预测请求,最终直至流量导向新的容器。

除了Kubernetes 的自动扩展和负载均衡之外,Dua 还介绍了Booking.com 为优化模型延迟而采用的其它一些技术,就是保持模型加载在容器的内存中,并在启动容器后对模型做热身(即通过向 Google 的机器学习框架 TensorFlow 发送初始请求。TensorFlow 的首轮运行通常比较慢)。但是并非所有请求均来自于运行中的系统,在一些情况下,可以预先计算预测情况并存储,以供其后使用。预先计算重在优化通量(即单位时间完成的工作量)。Dua 指出,批处理请求和并行处理异步请求有助于降低网络开销,进而提高通量。

机器学习模型在提供给 Booking.com 做预测之前,需要使用一些预先挑选的数据进行训练。训练过程也是运行在 Kubernetes 架构上的。训练运行在容器的基础镜像中,但基础镜像中仅包含了训练所需的框架,例如 TensorFlow Torch 等,它从 Git 代码库获取实际训练的代码。Dua 强调,这种设计再次使得容器可维持较小的规模,避免了镜像随新版本代码而不断增殖。训练数据也是从 Hadoop 集群获取。一旦模型训练好(即完成训练工作负载),模型将导出到 Hadoop。

查看英文原文: How Booking.com Uses Kubernetes for Machine Learning

2018-04-03 19:001311
用户头像

发布了 391 篇内容, 共 119.6 次阅读, 收获喜欢 253 次。

关注

评论

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

PHP转Go之后,我又开始研究机器学习和自动驾驶了。

王中阳Go

自动驾驶 Apollo

天翼云斩获2022全球分布式云大会两项大奖

天翼云开发者社区

基于Seata探寻分布式事务的实现方案

京东科技开发者

大数据 分布式事务 微服务架构 关系型数据库 seata

软件测试面试真题 | 什么是 Redis ? Redis缓存应用场景有哪些?

测试人

redis 软件测试 自动化测试 测试开发

【观察】融云百幄:为政企数智办公按下“快进键”

融云 RongCloud

融云 数智化 政企 百幄

华为云桌面解决方案,打造安全高效办公新体验

科技怪授

云桌面

研讨会回顾 | 自动化测试“领导者”SmartBear解析软件质量与测试现状调研

龙智—DevSecOps解决方案

软件测试 自动化测试 测试自动化

当云原生网关遇上图数据库,NebulaGraph 的 APISIX 最佳实践

NebulaGraph

图数据库 API网关

华为云桌面,助力企业数字化转型

爱尚科技

【经验】硬件工程师与PCB槽孔斗智斗勇的故事

攻城狮华哥

工具 PCB PCB设计 槽孔

【从零开始学爬虫】采集全国高校导师数据

前嗅大数据

数据采集 爬虫教程 爬虫入门

Docker daemon configuration overview(Docker 守护进程配置概览)

独钓寒江

多年缓慢成长,近3年野蛮狂飙,谁是这个赛道的王者?

ToB行业头条

小程序游戏的3大分发平台

FinFish

小程序 小游戏 小游戏运营

融云任杰:激活组织生命力 让听见炮火的人做决策 | TGO专访

融云 RongCloud

专访 程序员‘

使用无代码构建客户门户

间隔

代码质量与安全 | 如何将清洁代码标准扩展到整个企业,促进业务上的成功?

龙智—DevSecOps解决方案

代码质量 代码安全

AI 训练加速原理解析与工程实践分享

百度Geek说

人工智能 机器学习 12 月 PK 榜

32篇年度最佳AI论文;Python编译器Codon开源;ChatGPT的前世今生

OneFlow

人工智能 深度学习 大模型

MySQL分库分表,可能真的要退出历史舞台了!

Java永远的神

MySQL 程序员 后端 架构师 分布分表

版本控制 | SVN,Git与Helix Core,谁的数据管理基础设施更安全?

龙智—DevSecOps解决方案

git svn 版本控制 版本控制系统

内网穿透你真的了解吗?

C++后台开发

网络安全 NAT Linux服务器开发 内网 网络穿透

SpringMVC还是Spring WebFlux?谁是下一代的Java程序员技术栈?

程序员小毕

Java spring 程序员 后端 springmvc

架构实战营第 10 期 - 模块三作业:外包学生管理系统详细架构设计文档

kaizen

「架构实战营」

案例丨多元业态管理服务厂商如何走通数字化转型之路

优秀

数字化转型 数字化管理

小游戏开发投放平台及分成政策盘点

Onegun

小游戏 小游戏开发

华为云桌面,让企业随时随地开启云上办公

爱尚科技

外包学生管理系统架构文档

白杨

模块四课后作业 - 设计千万级学生管理系统的考试试卷存储方案

闲人Eric

架构实战营

语音生成领域模型又填一名猛将

felix

深度学习 语音合成 TTS

5分钟搞懂Jenkins分布式架构

俞凡

架构 DevOps cicd 最佳实践

  • 扫码加入 InfoQ 开发者交流群
Booking.com是如何将Kubernetes用于机器学习的_DevOps & 平台工程_Manuel Pais_InfoQ精选文章