• Stars
    star
    675
  • Rank 66,884 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An inference server for your machine learning models, including support for multiple frameworks, multi-model serving and more

MLServer

An open source inference server for your machine learning models.

video_play_icon

Overview

MLServer aims to provide an easy way to start serving your machine learning models through a REST and gRPC interface, fully compliant with KFServing's V2 Dataplane spec. Watch a quick video introducing the project here.

  • Multi-model serving, letting users run multiple models within the same process.
  • Ability to run inference in parallel for vertical scaling across multiple models through a pool of inference workers.
  • Support for adaptive batching, to group inference requests together on the fly.
  • Scalability with deployment in Kubernetes native frameworks, including Seldon Core and KServe (formerly known as KFServing), where MLServer is the core Python inference server used to serve machine learning models.
  • Support for the standard V2 Inference Protocol on both the gRPC and REST flavours, which has been standardised and adopted by various model serving frameworks.

You can read more about the goals of this project on the inital design document.

Usage

You can install the mlserver package running:

pip install mlserver

Note that to use any of the optional inference runtimes, you'll need to install the relevant package. For example, to serve a scikit-learn model, you would need to install the mlserver-sklearn package:

pip install mlserver-sklearn

For further information on how to use MLServer, you can check any of the available examples.

Inference Runtimes

Inference runtimes allow you to define how your model should be used within MLServer. You can think of them as the backend glue between MLServer and your machine learning framework of choice. You can read more about inference runtimes in their documentation page.

Out of the box, MLServer comes with a set of pre-packaged runtimes which let you interact with a subset of common frameworks. This allows you to start serving models saved in these frameworks straight away. However, it's also possible to write custom runtimes.

Out of the box, MLServer provides support for:

Framework Supported Documentation
Scikit-Learn ✅ MLServer SKLearn
XGBoost ✅ MLServer XGBoost
Spark MLlib ✅ MLServer MLlib
LightGBM ✅ MLServer LightGBM
Tempo ✅ github.com/SeldonIO/tempo
MLflow ✅ MLServer MLflow
Alibi-Detect ✅ MLServer Alibi Detect
Alibi-Explain ✅ MLServer Alibi Explain
HuggingFace ✅ MLServer HuggingFace

Examples

To see MLServer in action, check out our full list of examples. You can find below a few selected examples showcasing how you can leverage MLServer to start serving your machine learning models.

Developer Guide

Versioning

Both the main mlserver package and the inference runtimes packages try to follow the same versioning schema. To bump the version across all of them, you can use the ./hack/update-version.sh script.

For example:

./hack/update-version.sh 0.2.0.dev1

More Repositories

1

seldon-core

An MLOps framework to package, deploy, monitor and manage thousands of production machine learning models
HTML
4,320
star
2

alibi

Algorithms for explaining machine learning models
Python
2,370
star
3

alibi-detect

Algorithms for outlier, adversarial and drift detection
Python
2,202
star
4

seldon-server

Machine Learning Platform and Recommendation Engine built on Kubernetes
Java
1,475
star
5

tempo

MLOps Python Library
Python
112
star
6

goven

Goven (go-oven) is a go library that allows you to have a drop-in query language for your database schema.
Go
59
star
7

seldonio.github.com

Seldon Documentation
HTML
31
star
8

k8s-local-docker-registry

Shell
29
star
9

seldon-spark

Seldon Spark Jobs
26
star
10

semantic-vectors-lucene-tools

Tools for building a Lucene index for Semantic Vectors
Java
21
star
11

mlgraph

Machine Learning Inference Graph Spec
21
star
12

seldon-ucl

Seldon UCL Project
JavaScript
17
star
13

seldon-vm

Seldon VM repo
JavaScript
16
star
14

seldon-deploy-sdk

SDK for Seldon Deploy
Mustache
13
star
15

sig-mlops-jenkins-classic

Jupyter Notebook
13
star
16

ml-prediction-schema

Generic schema structure for machine learning model predictions
13
star
17

seldon-operator

Seldon Core Operator for Kubernetes
Go
12
star
18

deploy-workshops

Jupyter Notebook
12
star
19

sig-mlops-seldon-jenkins-x

Jupyter Notebook
11
star
20

cassava-example

Example mlserver and seldon deployment for a cassava leaf classifier
Python
10
star
21

importer-movielens-10m

Create Seldon data import files from Movielens 10m source data
Python
10
star
22

trtis-k8s-scheduler

Custom Scheduler to deploy ML models to TRTIS for GPU Sharing
Go
10
star
23

movie-demo-frontend

js frontend for movie recommender demo
JavaScript
9
star
24

seldon-core-launcher

Seldon Core Cloud Launcher
Jupyter Notebook
9
star
25

seldon-core-examples

Python
8
star
26

eubot

Machine learning classifer for the EU Referendum
Python
7
star
27

seldon-js-lib

A Javascript library to interact with the Seldon Server
7
star
28

ansible-k8s-collection

Collection of Ansible roles and playbooks crafted for Seldon ecosystem
Jinja
7
star
29

seldon-importer-web

Web page importer
6
star
30

tensorflow-demo-notebooks

Building and deploying a TensorFlow MNIST digit classifier on Kubernetes with Seldon
Jupyter Notebook
6
star
31

seldon-java-client

Seldon Java REST Client
5
star
32

jenkins-x-seldon-core-sandbox

HTML
5
star
33

deep-mnist-webapp

A webapp that recognises characters you draw using Seldon and Tensorflow.
JavaScript
5
star
34

seldon-server-config-template

5
star
35

seldon-models

A repository of training, inference and packaging code for Seldon demo models
Jupyter Notebook
5
star
36

seldon-deploy-operator

Seldon Deploy installation
Makefile
4
star
37

i-am-spartakus

Go
4
star
38

cicd-demo-model-source-files

Makefile
4
star
39

wabbit_wappa

Wabbit Wappa is a full-featured Python wrapper for the Vowpal Wabbit machine learning utility.
Python
3
star
40

triton-python-examples

Triton inference server python backend examples
Python
3
star
41

DistributedKernelShap

Python
3
star
42

JPMML-utils

Helper function to use JPMML with Seldon-Core
Java
3
star
43

seldon-server-config-vm

Seldon Server configuration required for the Docker VM
3
star
44

seldon-gcp-marketplace

Seldon Core GCP Marketplace
Makefile
2
star
45

environment-paladinrose-staging

Makefile
2
star
46

environment-seldon-core-test-ci-cluster-dev

Shell
2
star
47

alibi-testing

Repository for storing and loading model binaries for testing purposes
Python
2
star
48

environment-paladinrose-production

Makefile
2
star
49

seldon

Seldon Top Level Repo
2
star
50

helm-charts

Seldon Helm Charts
Mustache
2
star
51

cicd-demo-k8s-manifest-files

Shell
2
star
52

seldon-java-wrapper

Wrap java code for use with seldon-core
Java
2
star
53

test-ci-project

1
star
54

seldon-gitops

Example GitOps repository.
1
star
55

seldon-core-aws

Seldon Core AWS Marketplace Helm Charts
Smarty
1
star
56

seldon-deploy-demos-gitops-template

1
star
57

movie-demo-setup

movie-demo-setup
JavaScript
1
star
58

seldon-prometheus-exporter

Go
1
star
59

seldon-deploy-resources

Dockerfile
1
star
60

seldon-mlmd-tools

Python
1
star