使用KServe(前KFServing)构建彭博ML推理平台之旅

作者:孙丹彭博数据科学与计算基础设施团队的无服务器基础设施技术领导,以及彭博数据科学运行时团队领导刘宇柱

本文详细介绍了布隆伯格构建机器学习推理平台之旅的起点。对于那些不太熟悉机器学习模型服务的技术概念的读者,请查看“Kubeflow用于机器学习”(O ' reilly, 2020)。

机器学习(ML)模型开发生命周期(MDLC)大致可以分为两个阶段:一个是训练阶段,其中ML模型适合特定的数据集;一个是推理阶段,其中机器学习模型应用于数据集。通过与我们的CTO办公室的数据科学团队和人工智能工程集团的合作,我们在Kubernetes上建立了一个内部数据科学平台,使我们的人工智能工程师能够培训、部署和积极更新他们的生产模型。

模型开发生命周期(MDLC)有典型软件工程工作流的元素,也有独特的数据和实验元素。
模型开发生命周期(MDLC)有典型软件工程工作流的元素,也有独特的数据和实验元素。首先,定义任务,然后为任务收集和标记数据,然后培训、精炼和评估模型。当您满意时,部署成功的模型,然后在生产中监视、维护并不断地重新培训您的模型。

为什么Bloomberg需要ML推理平台

彭博终端的力量来自于我们分析和构建大量文本和金融数据的能力。处理如此大量的数据需要越来越复杂的人工智能技术。在过去十年中,彭博社增加了对机器学习和自然语言处理(NLP)的投资用于文档理解、推荐、问题回答、信息提取、信息检索、情感分析、异常检测、财务建模等。我们有大量的研究人员和工程师在研究这些问题,他们的团队需要在生产中为训练有素的模型提供服务。生产推断是公司ML项目成功的关键一步。

在生产中部署和扩展这些ml驱动的应用程序并不是一项简单的任务。人工智能工程师需要成为这些技术领域的专家——除了他们各自的领域专业知识:

  • 模型序列化
  • 模型的服务器
  • Micro-services
  • HTTP / gRPC
  • 容器构建和部署
  • GPU调度
  • 健康检查
  • 可伸缩性
  • 低延迟和高吞吐量
  • 灾难恢复
  • 度量和分布式跟踪

对于使用ML推理服务来支持新产品的人工智能工程师来说,这增加了巨大的开销,并且浪费了本可以用来构建新模型的时间。此外,随着时间的推移,这项工作变得支离破碎,因为不同的团队使用不同的ML框架、推断协议和计算资源。由于每个团队都以自己的方式进行这一工作,成本(例如,时间、能量等)非常大,通常需要很长时间才能为生产使用准备好推断服务。

结果,显然需要一个标准的管理服务,可以帮助在ML框架统一模型部署过程,缩短上市时间为毫升模型在生产、服务安全推出的模型时,需要更新,并减少实现的复杂性。

推理平台提供了一组工具,旨在简化和加速ML模型的部署和服务。该平台管理CPU/GPU/内存资源的调度和利用,以及复杂的技术堆栈,消除了部署的障碍。随着专业技能需求的减少,团队现在能够更快地部署他们的模型,从而提高他们的生产力。

与社区合作

ML模型服务不是彭博独有的问题,所以利用我们对Kubernetes的专业知识我们与IBM、微软、谷歌、NVIDIA和Seldon金宝搏网址的人工智能专家组成的开源社区合作。

IBM最初提出了使用Knative以无服务器的方式提供ML模型的想法2018年北美KubeCon + CloudNativeCon.与此同时,Bloomberg也在探索和试验Knative为lambda提供ML模型。我们在加利福尼亚州森尼维尔举行的2019年Kubeflow贡献者峰会上碰面,并交换了意见。当时,Kubeflow没有模型服务组件,所以我们决定启动一个子项目,为任意ML框架提供一个标准化的、但易于使用的ML模型服务部署解决方案。

我们一起开发了KFServing,这是一个云本地的多框架ML模型服务工具,用于Kubernetes上的无服务器推理。我们真的相信,一个由不同观点组成的社区可以构建高质量的、生产就绪的开源软件。金宝搏网址KFServing首次在KubeCon + CloudNativeCon北美2019在那里,它吸引了终端用户社区的极大兴趣。

在加利福尼亚州森尼维尔举行的2019 Kubeflow贡献者峰会期间,KFServing贡献者聚集在一起参加了一个微峰会。
在加利福尼亚州森尼维尔举行的2019 Kubeflow贡献者峰会期间,KFServing贡献者聚集在一起参加了一个微峰会。

KFServing现在是KServe

KFServing在过去的两年中有了巨大的增长,许多采用者在生产中运行它。为了进一步发展KFServing项目并扩大贡献者基础,Kubeflow服务工作组决定将KFServing GitHub存储库从Kubeflow组织移到一个独立的组织-KServe.这种转换需要大量的努力来更改代码、更新文档,并避免测试回归——Bloomberg领导确保所有工作都完成了。

不要错过刘玉柱将于2021年10月12日(美国太平洋时间)下午2点05分发表的关于“使用KServe大规模服务机器学习模型“在2021年北美人工智能日(共存KubeCon + CloudNativeCon北美,2021年).

彭博的人工智能用例和我们需要的ML推理平台

我们的推理平台旨在为彭博的许多团队提供服务。

从基础架构的角度来看,我们最重要的需求是支持多租户.由于有几十个团队在使用我们的推理平台,我们需要确保用户不会影响彼此的服务,并确保机密信息的安全,以便只对各自的团队进行访问。此外,我们还需要能够根据每个团队的预算执行计算资源的配额限制。

标准化模型部署在团队之间,我们需要一个单一的推理协议和部署API。通过这种方式,团队可以以相同的方式部署模型,不管他们使用的是哪种ML框架(例如,TensorFlow、PyTorch,甚至是自定义的内部模型框架)。为了加速大型深度学习模型的推断,我们还需要支持在gpu上为模型提供服务的能力,同时管理这些有限的资源。

在将模型部署到生产环境之后,用户需要能够更新模型或代码,因此金丝雀的发布对于确保安全推出非常重要,并且更改不会立即发布到所有客户端。我们还需要一个以一致和可靠的方式监控模型在生产环境中,因此可以开箱即用地生成度量和跟踪。团队还应该能够使用相同的仪表板和工具集来监视和调查任何性能瓶颈。

随着团队部署越来越多的模型,传统的“单模型/单推理服务”部署模式不再具有可扩展性和成本效益。虽然有些团队希望部署数百或数千个小模型,但一次性加载所有模型或创建一个容器来服务于每个训练过的模型的成本太高。另一个用例是与多个模型共享昂贵的gpu。

在未来的博文中,我们将分享KServe是如何满足我们的需求的,以及如何在内部集成KServe以满足许多安全、监控和内部部署流程需求的更多细节。

外卖

将人工智能应用应用到生产中会带来许多在培训阶段不存在的挑战。我们通过与开源社区合作,在Kubernetes上为Trusted AI构建一个高度可伸缩的、基于标准的模型推金宝搏网址理平台,开始了我们的生产之旅。

我们很高兴与大家分享我们构建推理平台的历程,并感谢所有出色的KServe贡献者,他们为使其成为一个健壮的ML推理平台做出了贡献。

如果你想加入我们,请查看彭博社的空缺职位数据科学和计算基础设施团队人工智能工程集团

加入我们,在Kubernetes上构建一个可信任和可扩展的模型推理平台

请加入我们KServeGitHub仓库,尝试一下,给我们反馈,并提出问题。

特别感谢……
特别感谢姚翁、Sukumar Gaonkar、Qi Chu、Xin Fu、Milan Goyal、Ania Musial、Keith Laban、David Eis、Shefaet Rahman、Anju Kambadur、Kevin P. Fleming和Alyssa Wright对本文的贡献、支持和投入。

对我们的作者

丹的太阳他是彭博社数据科学与计算基础设施团队的无服务器基础设施技术主管,在那里他专注于设计和构建公司的托管ML推理解决方案。他热爱开源,是KServe项目的共同创建者和核心贡金宝搏网址献者之一。

Yuzhui刘他是彭博社数据科学运行时团队的领导。她热衷于为机器学习应用构建基础设施,是KServe项目的核心贡献者之一。