Booking如何将Kubernetes用于机器学习?
极客时间编辑部
讲述:丁婵大小:1.30M时长:02:51
在今年的 QCon 伦敦大会上,Booking.com 的开发人员萨希尔·杜瓦(Sahil Dua)介绍了他们是如何使用 Kubernetes 实现机器学习模型的扩展,为客户推荐目的地和住处。
他重点展示了 Kubernetes 是如何通过容器的弹性和避免资源饥饿特性,帮助企业运行那些计算和数据密集的、难以并行处理的机器学习模型的。
据介绍,Kubernetes 能提供以下特性:
隔离性,进程不必竞争资源;
弹性,基于资源的消费情况而自动向上或向下扩展;
灵活性,具备快速测试软件库或架构的能力;
支持 GPU。
目前 Booking.com 的规模在每日约 150 万次房间预订,每月约 4 亿访客左右,而 Kubernetes 提供的这些特性,对 Booking.com 运行大量的机器学习模型是十分关键的。
每个模型以无状态应用运行在一个容器中,但容器镜像中并不包括模型本身,而是在启动时从 Hadoop 获取。这使得镜像可以维持较小的规模,避免了每推出一个新模型,就要为此创建一个新的镜像,进而加速了模型的部署。
模型一旦部署,就可通过 REST API 访问,Kubernetes 将开始轮询容器是否准备好,可以接收预测请求,最终直至流量导向新的容器。
除了 Kubernetes 的自动扩展和负载均衡之外,杜瓦还介绍了 Booking.com 为优化模型延迟而采用的其它一些技术,就是保持模型加载在容器的内存中,并在启动容器后对模型做热身,即向谷歌的机器学习框架 TensorFlow 发送初始请求,因为 TensorFlow 的首轮运行通常比较慢。
但是并非所有请求均来自于运行中的系统,在一些情况下,可以预先计算预测情况并存储,以供其后使用。预先计算重在优化通量,即单位时间完成的工作量。杜瓦指出,批处理请求和并行处理异步请求有助于降低网络开销,进而提高通量。
机器学习模型在提供给 Booking.com 做预测之前,需要使用一些预先挑选的数据进行训练,训练过程也是运行在 Kubernetes 架构上的。
杜瓦指出,训练是运行在容器的基础镜像中的,但基础镜像中仅包含了训练所需的框架。他强调,这种设计再次使得容器可维持较小的规模,避免了镜像随新版本代码而不断增殖。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论