基于Kubernetes环境的高扩展机器学习部署利器——KServe

随着的发布 , 人们越来越难以回避利用机器学习的相关技术 。从消息应用程序上的文本预测到智能门铃上的面部识别 , 机器学习(ML)几乎可以在我们今天使用的每一项技术中找到 。
如何将机器学习技术交付给消费者是企业在开发过程中必须解决的众多挑战之一 。机器学习产品的部署策略对产品的最终用户有重大影响 。这可能意味着 , 上的Siri和网络浏览器中的之间将存在重大差异 。
除了流畅的用户界面和过于自信的聊天对话之外 , 还隐藏了部署大型语言机器学习模型所需的复杂机制 。建立在一个高度可扩展的框架上 , 该框架旨在当模型呈指数级被应用期间提供和支持该模型 。事实上 , 实际的机器学习模型只占整个项目的一小部分 。此类项目往往是跨学科的 , 需要数据工程、数据科学和软件开发方面的专业知识 。因此 , 简化模型部署过程的框架在向生产交付模型方面变得越来越重要 , 因为这将有助于企业节省时间和金钱 。
如果没有适当的运营框架来支持和管理ML模型 , 企业在试图扩大生产中机器学习模型的数量时往往会遇到瓶颈 。
虽然在高度饱和的MLOps工具包市场上 , 没有一个工具能成为明显的赢家 , 但正成为一个越来越受欢迎的工具 , 帮助企业满足机器学习模型的可扩展性要求 。
一、什么是?
是一个用于的高度可扩展的机器学习部署工具包 。它是一个构建在之上的编排工具 , 并利用了另外两个开源项目 , -和Istio;稍后将对此进行详细介绍 。
图片来源于()
通过将部署统一到一个资源定义中 , 大大简化了机器学习模型在集群中的部署过程 。它使机器学习部署成为任何机器学习项目的一部分 , 易于学习 , 并最终降低了进入壁垒 。因此 , 使用部署的模型比使用需要Flask或服务的传统部署的模型更容易维护 。
借助于 , 在使用HTTPs协议通过因特网公开模型之前 , 不需要将模型封装在或Flask应用程序中 。内置的功能基本上复制了这个过程 , 但不需要维护API端点、配置pod副本或配置上的内部路由网络 。我们所要做的就是将指向您的模型 , 然后由它来处理其余的部分 。
除了简化部署过程之外 , 还提供了许多功能 , 包括金丝雀部署(译者注:这是一种流行的持续部署策略 , 其中将一小部分机队更新为应用程序的新版本)、推理自动缩放和请求批处理 。这些功能将不会被讨论 , 因为它超出了本文的范围;然而 , 本文有望为进一步探索相关知识的理解奠定基础 。
首先 , 我们来谈谈附带的两个关键技术 , Istio和 。
1、Istio
如果没有Istio , 带来的许多功能将很难实现 。Istio是一个服务网格 , 用于扩展部署在中的应用程序 。它是一个专用的基础设施层 , 增加了可观察性、流量管理和安全性等功能 。对于那些熟悉的人来说 , Istio将取代通常在集群中找到的标准入口定义 。
管理流量和维护可观察性的复杂性只会随着基于的系统的扩展而增加 。Istio最好的功能之一是集中控制服务级别的通信 。这使开发人员能够对服务之间的通信进行更大的控制和透明度 。
有了Istio , 开发人员不需要专门开发那些需要能够处理流量身份验证或授权的应用程序 。最终 , Istio有助于降低已部署应用程序的复杂性 , 并使开发人员能够专注于应用程序的重要组件 。