ModelMesh Serving
ModelMesh Serving is the Controller for managing ModelMesh, a general-purpose model serving management/routing layer.
Getting Started
To quickly get started with ModelMesh Serving, check out the Quick Start Guide.
For help, please open an issue in this repository.
Components and their Repositories
ModelMesh Serving currently comprises components spread over a number of repositories. The supported versions for the latest release are documented here.
Issues across all components are tracked centrally in this repo.
Core Components
Runtime Adapters
- modelmesh-runtime-adapter - the containers which run in each model serving pod and act as an intermediary between ModelMesh and third-party model-server containers. Its build produces a single "multi-purpose" image which can be used as an adapter to work with each of the out-of-the-box supported model servers. It also incorporates the "puller" logic which is responsible for retrieving the models from storage before handing over to the respective adapter logic to load the model (and to delete after unloading). This image is also used for a container in the load/unload path of custom
ServingRuntime
Pods, as a "standalone" puller.
Model Serving runtimes
ModelMesh Serving provides out-of-the-box integration with the following model servers.
ServingRuntime
custom resources can be used to add support for other existing or custom-built model servers, see the docs on implementing a custom Serving Runtime
Supplementary
- KServe V2 REST Proxy - a reverse-proxy server which translates a RESTful HTTP API into gRPC. This allows sending inference requests using the KServe V2 REST Predict Protocol to ModelMesh models which currently only support the V2 gRPC Predict Protocol.
Libraries
These are helper Java libraries used by the ModelMesh component.
- kv-utils - Useful KV store recipes abstracted over etcd and Zookeeper
- litelinks-core - RPC/service discovery library based on Apache Thrift, used only for communications internal to ModelMesh.
Contributing
Please read our contributing guide for details on contributing.
Building Images
# Build develop image
make build.develop
# After building the develop image, build the runtime image
make build