Skip to content

模型推論 Runtime 簡介

KServe 提供了一個簡單的 Kubernetes CRD,可以將單個或多個經過訓練的模型部署到模型服務運行時,例如 TFServingTorchServeTriton 推理服務器

此外,ModelServer 是使用預測 v1 協議在 KServe 本身中實現的 Python 模型服務運行時,MLServer 使用 REST 和 gRPC 實現預測 v2 協議。

這些模型推論 Runtime 能夠提供開箱即用的模型服務,但您也可以選擇為更複雜的用例構建自己的模型服務器。 KServe 提供基本 API 原語,讓您輕鬆構建自定義模型服務運行時,您可以使用其他工具(如 BentoML)構建您的自定義模型服務鏡像。

使用 InferenceService 部署模型後,您將獲得 KServe 提供的以下所有 serverless 功能。

  • Scale to and from Zero
  • Request based Autoscaling on CPU/GPU
  • Revision Management
  • Optimized Container
  • Batching
  • Request/Response logging
  • Traffic management
  • Security with AuthN/AuthZ
  • Distributed Tracing
  • Out-of-the-box metrics
  • Ingress/Egress control

下表標識了 KServe 支持的每個模型服務運行時。 HTTP 和 gRPC 列指示服務運行時支持的預測協議版本。 KServe 預測協議被標記為 v1v2。一些服務運行時也支持他們自己的預測協議,這些用 * 表示。

默認服務運行時版本列定義了服務運行時的來源和版本——MLServer、KServe 或其自身。這些版本也可以在運行時 kustomization YAML 中找到。所有 KServe 本機模型服務運行時都使用當前的 KServe 發布版本 (v0.10)。

支持的框架版本列列出了支持的模型的主要版本。這些也可以在 supportedModelFormats 字段下的相應運行時 YAML 中找到。對於使用 KServe 服務運行時的模型框架,具體的默認版本可以在 kserve/python 中找到。在給定的服務運行時目錄中,setup.py 文件包含所使用的確切模型框架版本。例如,在 kserve/python/lgbserver 中,setup.py 文件將模型框架版本設置為 3.3.2,lightgbm == 3.3.2。

Model Serving Runtime Exported model HTTP gRPC Default Serving Runtime Version Supported Framework (Major) Version(s) Examples
Custom ModelServer -- v1, v2 v2 -- -- Custom Model
LightGBM MLServer Saved LightGBM Model v2 v2 v1.0.0 (MLServer) 3 LightGBM Iris V2
LightGBM ModelServer Saved LightGBM Model v1 -- v0.10 (KServe) 3 LightGBM Iris
MLFlow ModelServer Saved MLFlow Model v2 v2 v1.0.0 (MLServer) 1 MLFLow wine-classifier
PMML ModelServer PMML v1 -- v0.10 (KServe) 3, 4 (PMML4.4.1) SKLearn PMML
SKLearn MLServer Pickled Model v2 v2 v1.0.0 (MLServer) 1 SKLearn Iris V2
SKLearn ModelServer Pickled Model v1 -- v0.10 (KServe) 1 SKLearn Iris
TFServing TensorFlow SavedModel v1 tensorflow 2.6.2 (TFServing Versions) 2 TensorFlow flower
TorchServe Eager Model/TorchScript v1, v2, torchserve torchserve 0.7.0 (TorchServe) 1 TorchServe mnist
Triton Inference Server TensorFlow,TorchScript,ONNX v2 v2 21.09-py3 (Triton) 8 (TensoRT), 1, 2 (TensorFlow), 1 (PyTorch), 2 (Triton) Compatibility Matrix Torchscript cifar
XGBoost MLServer Saved Model v2 v2 v1.0.0 (MLServer) 1 XGBoost Iris V2
XGBoost ModelServer Saved Model v1 -- v0.10 (KServe) 1 XGBoost Iris

Info

服務運行時版本的模型可以用 InferenceService yaml 上的 runtimeVersion 欄位來覆蓋,我們強烈建議為生產服務設置此欄位。

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