Kubernetes机器学习模型服务

时间:2020-02-21 03:33:32

标签: machine-learning kubernetes knative-serving

在Kubernetes中是否有建议的方法来服务数百种机器学习模型? 像Kfserving这样的解决方案似乎更适合于只有一个受过训练的模型或模型的几个版本,并且该模型可以满足所有请求的情况。例如,所有用户都可以使用的预先输入模型。

但是,有没有一种建议的方法来服务成百上千个这样的模型?例如,专门针对每个用户的数据进行训练的预先输入模型。

最简单的方法是,每个预先输入的服务容器在内存中维护模型的本地缓存。但是随后扩展到多个Pod将是一个问题,因为每个缓存都在Pod本地。因此,每个请求都需要路由到已加载模型的正确Pod。

还要维护这样一个注册表,我们才能知道哪个pod加载了哪个模型并执行模型驱逐的更新工作。

2 个答案:

答案 0 :(得分:0)

您可以将Catwalk与Grab混合使用。

Grab拥有大量数据,我们可以利用这些数据来解决 复杂的问题,例如欺诈性的用户活动,并为我们提供 客户对我们产品的个性化体验。工具之一 我们用来理解这些数据是机器学习(ML)。

这就是Catwalk的创建方式:易于使用,自助的机器 Grab所有人的学习模型服务平台。

有关Catwalk的更多信息,您可以在这里找到:Catwalk

您可以使用TensorFlow和Google Cloud服务多种机器学习模型。

机器学习领域经历如此史诗的原因 繁荣是因为它具有革命性的真正潜力, 改善生活。一旦机器学习模型被建立 经过培训,下一步是将这些模型部署到使用中, 需要他们的人可以使用它们-医院, 自动驾驶汽车制造商,高科技农场,银行,航空公司或 日常的智能手机用户。在生产中,赌注很高,一 无法承受服务器崩溃,连接速度降低等问题。 我们的客户增加了对我们的机器学习服务的需求, 我们希望无缝地满足这一需求,无论是凌晨3点还是下午3点。 同样,如果需求减少,我们希望按比例缩小 投入资源以节省成本,因为众所周知 资源非常昂贵。

您可以在此处找到更多信息:machine-learning-serving

也可以使用Seldon

Seldon Core是一个开源平台,用于在Kubernetes集群上部署机器学习模型。

功能:

  • 在云端或本地部署机器学习模型。
  • 获取指标以确保您的适当治理和合规性 运行机器学习模型。
  • 创建由多个组件组成的推理图。

  • 为使用以下工具构建的模型提供一致的服务层: 异构ML工具箱。

有用的文档:Kubernetes-Machine-Learning

答案 1 :(得分:0)

不幸的是,目前没有专门针对此类用例构建的开源解决方案。理想的解决方案在充分利用机器资源的同时保持相对较低的延迟,这需要一些支持加载和卸载经过训练的模型的自定义模型服务系统,并将请求路由到已加载或准备加载模型的Pod。

您可以尝试使用开源解决方案的最接近的是Knative和BentoML(完整披露,我是BentoML的作者)。 BentoML提供了一种将ML模型及其依赖项打包到API服务器容器中的方法,而Knative是Google的基于kubernetes的无服务器框架。使用这两个库,您可以在Kubernetes集群上将数百个ML模型作为无服务器端点部署,每个模型都有使用BentoML构建的自己的docker容器映像,并且仅在有预测请求进入时才加载这些容器。

以下是Knative的有关使用BentoML部署经过训练的ML模型的文档:

BentoML GitHub存储库和快速入门指南: