提问者:小点点

从Kubeflow管道提供自定义模型


我有一个kubeflow管道,它训练自定义(即不基于sklear/ensorflow等类)ml模型。现在我想在管道末尾添加服务。即我想在我的库伯内特斯集群中有一个服务,它使用该模型来回答预测请求,并且该服务应该在每次管道运行后更新为新模型。

据我所知,服务于自定义模型,我应该:

>

  • 将我的模型包装到kfservice. KFModel类中

    使用包装器从1)运行创建docker映像

    使用2)中的图像创建推理服务endpoint

    在Kubeflow组件中是否有任何与云无关的方法可以做到这一点?(所以基本上组件必须能够构建docker映像)

    有没有更好的方法来实现我的目的?

    也许我应该将步骤1-3移到管道组件之外,然后创建一个将触发1-3外部执行的组件。可以这样做吗?


  • 共2个答案

    匿名用户

    我不能特别提到Kubeflow,但https://buildpacks.io/提供了一种通用的方法来构建满足某些输入条件的容器(例如,“是一个带有main要求. txt的python程序”)。创建一个新的构建包也是可能的(但更复杂)(例如,使用“实现kfservice.KFModel的python代码并包装一个main和它周围需要的任何其他东西)。我已经为python演示/etc做过几次这样的操作:

    https://github.com/evankanderson/klr-buildpack https://github.com/evankanderson/pyfun

    请注意,这些不是生产级的,只是我玩了一三天。

    您可以使用pack命令在本地构建构建包,也可以使用多种技术在集群上构建构建包。这里有5个构建选项的详细留档:https://buildpacks.io/docs/tools/,以及https://buildpacks.io/features/.底部更长的“支持平台”列表

    匿名用户

    您绝对应该将步骤1-3移到Kubeflow Pipeline之外,不应该在每次管道运行时为您的自定义模型服务器构建docker映像。

    话虽如此,您的自定义映像应该从外部源加载运行的受祝福模型,即S3/GS/minio bucket。

    您确定您的模型是建立在不在K服务已经支持的模型服务器列表中的框架之上的,并且您需要创建自定义模型服务器吗?

    相关问题