模型推論 Runtime 簡介¶
KServe 提供了一個簡單的 Kubernetes CRD,可以將單個或多個經過訓練的模型部署到模型服務運行時,例如 TFServing、TorchServe、Triton 推理服務器。
此外,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 預測協議被標記為 v1
或 v2
。一些服務運行時也支持他們自己的預測協議,這些用 * 表示。
默認服務運行時版本列定義了服務運行時的來源和版本——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 |