字节跳动开源云原生机器学习平台 Klever( 二 )

最后,由于机器学习在不同训练过程中往往使用不同的数据集,会产生不同的模型,Klever 支持多种模型服务运行时,可将产生的模型用于提供生产环境可用的在线服务 。

字节跳动开源云原生机器学习平台 Klever

文章插图
 
模型管理
ORMB 命令行管理
ORMB 是 Klever 下的一个命令行管理工具子项目,可以像 Docker 管理镜像一样管理模型 。它支持 OCI 标准,可以对模型文件和模型属性进行分层存储管理 。
字节跳动开源云原生机器学习平台 Klever

文章插图
 
支持的命令类型:
字节跳动开源云原生机器学习平台 Klever

文章插图
 
执行 ormb save 保存模型时,我们需要按照如下目录格式管理模型,其中 ormbfile.yaml 文件格式请参考 spec-v1alpha1.md
字节跳动开源云原生机器学习平台 Klever

文章插图
 
模型解析与转换
Klever 通过自动 ModelJob CR 进行模型解析和模型转换任务的管理,模型解析任务需要设置模型的格式及模型的 URI,模型转换任务则需要设置模型源模型格式、目标模型格式及模型 URI 。
字节跳动开源云原生机器学习平台 Klever

文章插图
 

字节跳动开源云原生机器学习平台 Klever

文章插图
 
模型解析和转换的执行通过自定义脚本的方式实现,每种类型的模型解析和模型转换任务都有对应的脚本,脚本在 github.com/kleveross/klever-model-registry/tree/master/scripts 下集中管理 。解析内容主要包括 inputs、outputs、operators 。任务通过 status 的 message 和 phase 字段可以返回给用户任务当前执行的状态,并在异常时返回异常信息 。
模型拉取
模型解析和转换任务执行之前,需要将模型文件拉取到 Container 中并重新组织为模型服务器需要的目录格式,此过程通过扩展 ORMB 实现了一个 ormb-stororage-initializer 容器,该容器作为任务的 initContainer 存在,它将模型 pull & export 到 /mnt/input 目录下,模型解析和转换任务的容器和 initContainer 共享 /mnt/input 挂载点使用下载的模型 。
支持的模型格式
字节跳动开源云原生机器学习平台 Klever

文章插图
 
模型服务
Klever 基于 Seldon-Core 实现模型服务,创建模型服务会首先创建一个 Seldon Deployment ,并在其 Init Container 中通过 ormb-storage-initializer 下载模型 。
若模型为 PMML 格式,将使用 OpenScoring 镜像启动服务;若模型为其他 Triton Server 支持的模型格式,将使用 Triton Server 镜像启动服务.镜像中会自动通过 ormbfile.yaml 中的信息生成 Triton Server 所需要的 config.pbtxt 文件 。
模型推理运行时
当前 Klever 已支持通过 Nvidia Triton Server 模型服务器部署深度学习模型服务,通过 OpenScoring 部署 PMML 格式的传统机器学习模型 。我们还在完善对 Spark MLlib、MLFlow 及 XGBoost 模型服务器的支持,会在近期完成 。
字节跳动开源云原生机器学习平台 Klever

文章插图
 
支持的模型格式
  • SavedModel
  • ONNX
  • GraphDef
  • NetDef
  • TensorRT with GPU
  • TorchScript
  • PMML
服务访问方式
部署为模型服务之后,用户如何通过 API 接口进行模型服务的访问呢?对于 Nvidia Triton Server 渲染的模型服务,访问地址为:
字节跳动开源云原生机器学习平台 Klever

文章插图
 
对于 OpenScoring 渲染的模型服务,访问地址为:
字节跳动开源云原生机器学习平台 Klever

文章插图
 
其中,servingName 为模型服务的名称,在创建模型服务的时候需要指定该名称 。
部署
讲到这里,大家是否已经迫不及待地想安装和使用 Klever 了呢?Klever 提供一键部署安装的脚本,同时也支持详细的部署文档,你只需要有一个 Kubernetes 环境即可安装部署 。
字节跳动开源云原生机器学习平台 Klever

文章插图
 
RoadMap
当前,在字节跳动内部,我们仍在基于各类实践完善云原生机器学习工程化平台的构建想法,丰富 Klever 的功能和内涵 。在外部市场,火山引擎推出的商业化版机器学习平台 Clever 已在金融、制造、零售、能源等行业拥有成熟的解决方案,为各行业头部客户业务的持续增长提供赋能,也为 Klever 开源提供重要实战经验 。


推荐阅读