IBM 开源 ModelMesh,使开发者能够大规模部署 AI 模型

来源: OSCHINA
编辑: Alias_Travis
2021-10-19

IBM 近日宣布,已将其用于公司内部的 ModelMesh 模型服务开源,并贡献给 KServe 开源社区。ModelMesh 专为大规模、高密度和频繁变化的模型用例而设计,可以帮助开发者扩展 Kubernetes。

模型服务是人工智能领域的一个重要组成部分。它使用人工智能模型中提供的推理来响应用户的请求。那些接触过企业级机器学习应用的用户或开发者应该知道,它们通常不是由一个模型提供推理,实际上是由数百甚至数千个模型在串联运行。由于 AI 模型的计算成本很高,因为你不可能在每次要提供请求时都启动一个专用容器。

除此之外,因为存在一些限制,这对在 Kubernetes 集群上部署大量模型的开发者来说也是一个挑战:

  • 计算资源限制
  • 最大 pod 限制(Kubernetes 建议每个节点最多有 100 个 pods)
  • 最大 IP 地址限制(一个拥有 4096 个 IP 的集群可以部署大约 1000 到 4000 个模型)

IBM 通过其专有的 ModelMesh 模型服务管理层为 Watson 产品(如 Watson Assistant、Watson Natural Language Understanding 和 Watson Discovery)解决了这个难题。由于这些模型已经在生产环境中运行了多年时间,ModelMesh 已经针对各种场景进行了全面测试。现在,IBM 将这一管理层与控制器组件以及模型服务运行时一起贡献给了开源社区。

ModelMesh 使开发者能够在 Kubernetes 之上以 "极大规模" 部署 AI 模型。它具有缓存管理的功能,也充当一个平衡推理请求的路由。模型被智能地放置在 pods 中,并且能够适应临时中断。开发者无需任何外部协调机制就可以轻松升级部署的 ModelMesh。它可以自动确保一个模型在路由新的请求之前已经完全更新和加载。

IBM 用一些统计数据解释了 ModelMesh 的可扩展性:

一个部署在单个工作节点 8vCPU x 64G 集群上的 ModelMesh 实例能够打包 2 万个简单字符串模型。除了密度测试之外,我们还通过发送数千个并发推理请求来对 ModelMesh 服务进行负载测试,以模拟高流量的假日场景,所有加载的模型都以个位数毫秒的延迟做出响应。我们的实验表明,单个工作节点支持 2 万个模型,每秒最多 1000 个查询,并以个位数毫秒的延迟响应推理任务。

ModelMesh 与 KServe 相结合,还将为部署在生产中的模型增加可信的人工智能指标,如可解释性与公平性。目前该项目已托管至 GitHub 平台,可点击链接进一步了解该项目。

展开阅读全文
14 收藏
分享
加载中
更多评论
0 评论
14 收藏
分享
返回顶部
顶部