我 有 一 个 用于 训练 自 定义 ( 即 不 基于 sklearn/tensorflow 等 类 ) ml 模型 的 kubeflow 管道 。 现在 我 想 在 管道 的 末端 添加 服务 。 即 我 想 在 Kubernetes 集群 中 有 一 个 服务 , 该 服务 使用 该 模型 来 回答 预测 请求 , 并且 在 每次 管道 运行 后 应 使用 新 模型 更新 此 服务 。
据 我 所 知 , 要 为 定制 模型 提供 服务 , 我 应该 :
1.将 我 的 模型 Package 到 kfserving.KFModel 类 中
1.使用 1 ) 中 的 Package 器 创建 Docker 映像
1.使用 来自 2 ) 的 映像 创建 推理 服务 终结 点
在 Kubeflow 组件 中 是否 有 任何 与 云 无关 的 方法 来 实现 这 一 点 ? ( 因此 基本 上 组件 必须 能够 构建 Docker 映像 )
有 没有 更 好 的 方法 来 达到 我 的 目的 ?
也许 我 应该 把 步骤 1 - 3 移 到 管道 组件 之外 , 只 创建 一 个 会 触发 1 - 3 的 外部 执行 的 组件 。 这 能 做到 吗 ?
2条答案
按热度按时间iq0todco1#
我不能特别提到Kubeflow,但是https://buildpacks.io/提供了一种通用的方法来构建满足特定输入条件的容器(例如,“是一个带有
main
和requirements.txt
的python程序“)。(但更复杂)创建新的构建包(例如,获取“实现kfserving.KFModel
的python代码,并将main和其他所需的内容 Package 起来)。我已经为python的demos/etc做过几次这样的操作:https://github.com/evankanderson/klr-buildpackhttps://github.com/evankanderson/pyfun
请注意,这些都不是生产级的,只是我玩了一天或三天。
您可以使用
pack
命令在本地构建构建包,也可以使用多种技术在集群上构建构建包。https://buildpacks.io/docs/tools/,沿着https://buildpacks.io/features/底部的“支持的平台”的更长列表。7z5jn7bk2#
您应该明确地将步骤1-3移出Kubeflow管道,为您的自定义模型服务器构建docker映像不应该在每次管道运行时都完成。
话虽如此,您的custom image应该从外部源加载运行的祝福模型,即S3/GS/minio桶。
您确定您的模型是在list of model servers that Kserve supports中没有的框架上构建的,并且您需要创建自定义模型服务器吗?