/kfserving

Serverless Inferencing on Kubernetes

Primary LanguageJsonnetApache License 2.0Apache-2.0

KFServing

KFServing provides a Kubernetes Custom Resource Definition for serving machine learning (ML) models on arbitrary frameworks. It aims to solve production model serving use cases by providing performant, high abstraction interfaces for common ML frameworks like Tensorflow, XGBoost, ScikitLearn, PyTorch, and ONNX.

It encapsulates the complexity of autoscaling, networking, health checking, and server configuration to bring cutting edge serving features like GPU Autoscaling, Scale to Zero, and Canary Rollouts to your ML deployments. It enables a simple, pluggable, and complete story for Production ML Serving including prediction, pre-processing, post-processing and explainability.

KFServing

Learn More

To learn more about KFServing, how to deploy it as part of Kubeflow, how to use various supported features, and how to participate in the KFServing community, please follow the KFServing docs on the Kubeflow Website.

Prerequisites

KNative Serving and Istio should be available on Kubernetes Cluster.

  • Istio Version: v1.1.7+
  • Knative Version: v0.8.x

You may find this installation instruction useful.

Installation using kubectl

TAG=0.2.2
kubectl apply -f ./install/$TAG/kfserving.yaml

By default, you can create InferenceService instances in any namespace which has no label with control-plane as key. You can also configure KFServing to make InferenceService instances only work in the namespace which has label pair serving.kubeflow.org/inferenceservice: enabled. To enable this mode, you need to add env field as stated below to manager container of statefulset kfserving-controller-manager.

env:
- name: ENABLE_WEBHOOK_NAMESPACE_SELECTOR
  value: enabled

Please refer to our troubleshooting section for recommendations and tips.

Use

  • Install the SDK

    pip install kfserving
    
  • Get the KFServing SDK documents from here.

  • Follow the example here to use the KFServing SDK to create, rollout, promote, and delete an InferenceService instance.

Contribute