kserve 1

kserve是为了解决训练过后的模型,如何上线服务的问题。其实,各大深度学习平台也注意到训练到上线服务这个gap,所以tensorflow、pytorch对应出了 TFServing、torchserve, nvidia出了triton。这些推理平台满足了基本的推理服务上线要求,而 kserve依托于knative,为推理服务赋予更多特性。knative支持的弹性扩缩容、缩容至零、蓝绿发布、回滚、多版本控制、流量控制,以及k8s对容器的监控、重启、资源调度、监控等特性,kserve都具有。

kserve支持现有的model serving runtime,即TFserving、torchserve、triton都可以作为kserve的runtime。此外,kserve还实现了其他的runtime,包括pmml、paddlepaddle、LigthGBM、XGBoost、SKLearn等,用户还可以使用kserve包装好的类,方便地自定义runtime。

kserve/kfserving 实现方式是k8s的一个CRD资源,即InfereceService,并且,部署服务的方式非常简单:

apiVersion: "serving.kserve.io/v1beta1"
kind: "InferenceService"
metadata:
  name: "torchscript-cifar"
spec:
  predictor:
    triton:
      storageUri: "gs://kfserving-examples/models/torchscript"
      runtimeVersion: 21.08-py3 

storageUri即为存储模型的地址,kserve支持的存储类型为Azure、PVC、本地存储路径、S3、网络地址、谷歌云存储gcs,这样就创建了一个推理服务。

推理接口V1和V2版本分别为:

PREDICTOR_URL_FORMAT = "http://{0}/v1/models/{1}:predict"
EXPLAINER_URL_FORMAT = "http://{0}/v1/models/{1}:explain"
PREDICTOR_V2_URL_FORMAT = "http://{0}/v2/models/{1}/infer"
EXPLAINER_V2_URL_FORMAT = "http://{0}/v2/models/{1}/explain"

 

 

参考:

https://kserve.github.io/website/modelserving/v1beta1/serving_runtime/

posted on 2021-12-09 16:24  MissSimple  阅读(705)  评论(0编辑  收藏  举报

导航