kserve

module
v0.14.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 3, 2024 License: Apache-2.0

README ΒΆ

KServe

go.dev reference Coverage Status Go Report Card OpenSSF Best Practices Releases LICENSE Slack Status

KServe provides a Kubernetes Custom Resource Definition for serving predictive and generative machine learning (ML) models. It aims to solve production model serving use cases by providing high abstraction interfaces for Tensorflow, XGBoost, ScikitLearn, PyTorch, Huggingface Transformer/LLM models using standardized data plane protocols.

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. KServe is being used across various organizations.

For more details, visit the KServe website.

KServe

KFServing has been rebranded to KServe since v0.7.

Why KServe?
  • KServe is a standard, cloud agnostic Model Inference Platform for serving predictive and generative AI models on Kubernetes, built for highly scalable use cases.
  • Provides performant, standardized inference protocol across ML frameworks including OpenAI specification for generative models.
  • Support modern serverless inference workload with request based autoscaling including scale-to-zero on CPU and GPU.
  • Provides high scalability, density packing and intelligent routing using ModelMesh.
  • Simple and pluggable production serving for inference, pre/post processing, monitoring and explainability.
  • Advanced deployments for canary rollout, pipeline, ensembles with InferenceGraph.
Learn More

To learn more about KServe, how to use various supported features, and how to participate in the KServe community, please follow the KServe website documentation. Additionally, we have compiled a list of presentations and demos to dive through various details.

πŸ›  Installation
Standalone Installation
  • Serverless Installation: KServe by default installs Knative for serverless deployment for InferenceService.
  • Raw Deployment Installation: Compared to Serverless Installation, this is a more lightweight installation. However, this option does not support canary deployment and request based autoscaling with scale-to-zero.
  • ModelMesh Installation: You can optionally install ModelMesh to enable high-scale, high-density and frequently-changing model serving use cases.
  • Quick Installation: Install KServe on your local machine.
Kubeflow Installation

KServe is an important addon component of Kubeflow, please learn more from the Kubeflow KServe documentation. Check out the following guides for running on AWS or on OpenShift Container Platform.

πŸ›« Create your first InferenceService
πŸ’‘ Roadmap
πŸ“˜ InferenceService API Reference
🧰 Developer Guide
✍ Contributor Guide
🀝 Adopters

Directories ΒΆ

Path Synopsis
cmd
pkg
apis
Package apis contains Kubernetes API groups.
Package apis contains Kubernetes API groups.
apis/serving/v1alpha1
Package v1alpha1 contains API Schema definitions for the serving v1alpha1 API group
Package v1alpha1 contains API Schema definitions for the serving v1alpha1 API group
apis/serving/v1beta1
Package v1beta1 contains API Schema definitions for the serving v1beta1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=serving.kserve.io
Package v1beta1 contains API Schema definitions for the serving v1beta1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=serving.kserve.io
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/serving/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/serving/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/serving/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/serving/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
controller/v1alpha1/inferencegraph
+kubebuilder:rbac:groups=serving.kserve.io,resources=inferencegraphs;inferencegraphs/finalizers,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.kserve.io,resources=inferencegraphs/status,verbs=get;update;patch +kubebuilder:rbac:groups=serving.knative.dev,resources=services,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.knative.dev,resources=services/finalizers,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.knative.dev,resources=services/status,verbs=get;update;patch
+kubebuilder:rbac:groups=serving.kserve.io,resources=inferencegraphs;inferencegraphs/finalizers,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.kserve.io,resources=inferencegraphs/status,verbs=get;update;patch +kubebuilder:rbac:groups=serving.knative.dev,resources=services,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.knative.dev,resources=services/finalizers,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.knative.dev,resources=services/status,verbs=get;update;patch
controller/v1alpha1/localmodel
+kubebuilder:rbac:groups=serving.kserve.io,resources=inferenceservices,verbs=get;list;watch +kubebuilder:rbac:groups=serving.kserve.io,resources=localmodelnodegroups,verbs=get;list;watch +kubebuilder:rbac:groups=serving.kserve.io,resources=clusterlocalmodels,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.kserve.io,resources=clusterlocalmodels/status,verbs=get;update;patch +kubebuilder:rbac:groups=serving.kserve.io,resources=clusterstoragecontainers,verbs=get;list;watch +kubebuilder:rbac:groups=core,resources=configmaps,verbs=get +kubebuilder:rbac:groups=core,resources=nodes,verbs=get;list;watch +kubebuilder:rbac:groups=core,resources=nodes/status,verbs=get;watch +kubebuilder:rbac:groups=batch,resources=jobs,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=batch,resources=jobs/status,verbs=get +kubebuilder:rbac:groups=core,resources=persistentvolumes,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core,resources=persistentvolumeclaims,verbs=get;list;watch;create;update;patch;delete
+kubebuilder:rbac:groups=serving.kserve.io,resources=inferenceservices,verbs=get;list;watch +kubebuilder:rbac:groups=serving.kserve.io,resources=localmodelnodegroups,verbs=get;list;watch +kubebuilder:rbac:groups=serving.kserve.io,resources=clusterlocalmodels,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.kserve.io,resources=clusterlocalmodels/status,verbs=get;update;patch +kubebuilder:rbac:groups=serving.kserve.io,resources=clusterstoragecontainers,verbs=get;list;watch +kubebuilder:rbac:groups=core,resources=configmaps,verbs=get +kubebuilder:rbac:groups=core,resources=nodes,verbs=get;list;watch +kubebuilder:rbac:groups=core,resources=nodes/status,verbs=get;watch +kubebuilder:rbac:groups=batch,resources=jobs,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=batch,resources=jobs/status,verbs=get +kubebuilder:rbac:groups=core,resources=persistentvolumes,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=core,resources=persistentvolumeclaims,verbs=get;list;watch;create;update;patch;delete
controller/v1alpha1/trainedmodel
+kubebuilder:rbac:groups=serving.kserve.io,resources=trainedmodels,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.kserve.io,resources=trainedmodels/status,verbs=get;update;patch +kubebuilder:rbac:groups=serving.knative.dev,resources=services,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.knative.dev,resources=services/status,verbs=get;update;patch +kubebuilder:rbac:groups=core,resources=serviceaccounts,verbs=get +kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;update +kubebuilder:rbac:groups=core,resources=secrets,verbs=get +kubebuilder:rbac:groups=core,resources=namespaces,verbs=get;list;watch +kubebuilder:rbac:groups=core,resources=events,verbs=get;list;watch;create;update;patch;delete
+kubebuilder:rbac:groups=serving.kserve.io,resources=trainedmodels,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.kserve.io,resources=trainedmodels/status,verbs=get;update;patch +kubebuilder:rbac:groups=serving.knative.dev,resources=services,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=serving.knative.dev,resources=services/status,verbs=get;update;patch +kubebuilder:rbac:groups=core,resources=serviceaccounts,verbs=get +kubebuilder:rbac:groups=core,resources=configmaps,verbs=get;update +kubebuilder:rbac:groups=core,resources=secrets,verbs=get +kubebuilder:rbac:groups=core,resources=namespaces,verbs=get;list;watch +kubebuilder:rbac:groups=core,resources=events,verbs=get;list;watch;create;update;patch;delete
qpext module
tools

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL