Skip to main content


The Unified Model Serving Framework Tweet

pypi_status downloads actions_status documentation_status join_slack

BentoML makes it easy to create Machine Learning services that are ready to deploy and scale.

👉 Join our Slack community today!

✨ Looking deploy your ML service quickly? Checkout BentoML Cloud for the easiest and fastest way to deploy your bento.

Getting Started


Highlights

🍭 Unified Model Serving API

  • Framework-agnostic model packaging for Tensorflow, PyTorch, XGBoost, Scikit-Learn, ONNX, and many more!
  • Write custom Python code alongside model inference for pre/post-processing and business logic
  • Apply the same code for online(REST API or gRPC), offline batch, and streaming inference
  • Simple abstractions for building multi-model inference pipelines or graphs

🚂 Standardized process for a frictionless transition to production

  • Build Bento as the standard deployable artifact for ML services
  • Automatically generate docker images with the desired dependencies
  • Easy CUDA setup for inference with GPU
  • Rich integration with the MLOps ecosystem, including Kubeflow, Airflow, MLFlow, Triton

🏹 Scalable with powerful performance optimizations

  • Adaptive batching dynamically groups inference requests on server-side optimal performance
  • Runner abstraction scales model inference separately from your custom code
  • Maximize your GPU and multi-core CPU utilization with automatic provisioning

🎯 Deploy anywhere in a DevOps-friendly way

  • Streamline production deployment workflow via:
    • ☁️ BentoML Cloud: the fastest way to deploy your bento, simple and at scale
    • 🦄️ Yatai: Model Deployment at scale on Kubernetes
    • 🚀 bentoctl: Fast model deployment on AWS SageMaker, Lambda, ECE, GCP, Azure, Heroku, and more!
  • Run offline batch inference jobs with Spark or Dask
  • Built-in support for Prometheus metrics and OpenTelemetry
  • Flexible APIs for advanced CI/CD workflows

How it works

Save your trained model with BentoML:

import bentoml

saved_model = bentoml.pytorch.save_model(
    "demo_mnist", # model name in the local model store
    model, # model instance being saved
)

print(f"Model saved: {saved_model}")
# Model saved: Model(tag="demo_mnist:3qee3zd7lc4avuqj", path="~/bentoml/models/demo_mnist/3qee3zd7lc4avuqj/")

Define a prediction service in a service.py file:

import numpy as np
import bentoml
from bentoml.io import NumpyNdarray, Image
from PIL.Image import Image as PILImage

mnist_runner = bentoml.pytorch.get("demo_mnist:latest").to_runner()

svc = bentoml.Service("pytorch_mnist", runners=[mnist_runner])

@svc.api(input=Image(), output=NumpyNdarray(dtype="int64"))
def predict(input_img: PILImage):
    img_arr = np.array(input_img)/255.0
    input_arr = np.expand_dims(img_arr, 0).astype("float32")
    output_tensor = mnist_runner.predict.run(input_arr)
    return output_tensor.numpy()

Create a bentofile.yaml build file for your ML service:

service: "service:svc"
include:
  - "*.py"
python:
  packages:
    - numpy
    - torch
    - Pillow

Now, run the prediction service:

bentoml serve

Sent a prediction request:

curl -F 'image=@samples/1.png' http://127.0.0.1:3000/predict_image

Build a Bento and generate a docker image:

$ bentoml build
Successfully built Bento(tag="pytorch_mnist:4mymorgurocxjuqj") at "~/bentoml/bentos/pytorch_mnist/4mymorgurocxjuqj/"

$ bentoml containerize pytorch_mnist:4mymorgurocxjuqj
Successfully built docker image "pytorch_mnist:4mymorgurocxjuqj"

$ docker run -p 3000:3000 pytorch_mnist:4mymorgurocxjuqj
Starting production BentoServer from "pytorch_mnist:4mymorgurocxjuqj" running on http://0.0.0.0:3000

For a more detailed user guide, check out the BentoML Tutorial.


Community

  • For general questions and support, join the community slack.
  • To receive release notification, star & watch the BentoML project on GitHub.
  • To report a bug or suggest a feature request, use GitHub Issues.
  • To stay informed with community updates, follow the BentoML Blog and @bentomlai on Twitter.

Contributing

There are many ways to contribute to the project:

  • If you have any feedback on the project, share it under the #bentoml-contributors channel in the community slack.
  • Report issues you're facing and "Thumbs up" on issues and feature requests that are relevant to you.
  • Investigate bugs and reviewing other developer's pull requests.
  • Contributing code or documentation to the project by submitting a GitHub pull request. Check out the Development Guide.
  • Learn more in the contributing guide.

Contributors

Thanks to all of our amazing contributors!


Usage Reporting

BentoML collects usage data that helps our team to improve the product. Only BentoML's internal API calls are being reported. We strip out as much potentially sensitive information as possible, and we will never collect user code, model data, model names, or stack traces. Here's the code for usage tracking. You can opt-out of usage tracking by the --do-not-track CLI option:

bentoml [command] --do-not-track

Or by setting environment variable BENTOML_DO_NOT_TRACK=True:

export BENTOML_DO_NOT_TRACK=True

License

Apache License 2.0

FOSSA Status

Metadata

Release files for bentoml 1.0.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bentoml 1.0.12
File Size Uploaded
bentoml-1.0.12.tar.gz 17.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for bentoml 1.0.12
File Interpreter ABI Platform
bentoml-1.0.12-py3-none-any.whl Python 3 none any Details

Total release size: 18.0 MB

Release files / bentoml-1.0.12.tar.gz

Download URL bentoml-1.0.12.tar.gz
Size 17.1 MB
Tags Source
SHA-256 checksum
How to use checksums
cca3e7d882ce83ae0319f7cffd938acfa8a55b41f6206464fbb0f95fdaad6842
BLAKE2b-256 checksum
How to use checksums
0cc274544bb24d1f3927f3d53a38bfd6821ae952dcb4b6bc98f83430d9d6879e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release files / bentoml-1.0.12-py3-none-any.whl

Download URL bentoml-1.0.12-py3-none-any.whl
Size 909.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5acb60d70b5a45539a7498a7aed8076494a6eba96c51c439fe852d7f60f08faf
BLAKE2b-256 checksum
How to use checksums
c30e912e126bfac5c0d7b9ae8cd978ab06afb4144b38112293457e93abb6f5cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release history Release notifications | RSS feed

1.4.37

2 release files

1.4.34

2 release files

1.4.33

2 release files

1.4.30

2 release files

1.4.29

2 release files

1.4.28

2 release files

1.4.27

2 release files

1.4.26

2 release files

1.4.25

2 release files

1.4.24

2 release files

1.4.22

2 release files

1.4.21

2 release files

1.4.20

2 release files

1.4.19

2 release files

1.4.18

2 release files

1.4.17

2 release files

1.4.16

2 release files

1.4.15

2 release files

1.4.14

2 release files

1.4.12

2 release files

1.4.11

2 release files

1.4.10

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.22

2 release files

1.3.20

2 release files

1.3.18

2 release files

1.3.17

2 release files

1.3.16

2 release files

1.3.14

2 release files

1.3.13

2 release files

1.3.12

2 release files

1.3.10

2 release files

1.3.9

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.20

2 release files

1.2.19

2 release files

1.2.18

2 release files

1.2.16

2 release files

1.2.12

2 release files

1.2.11

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.25

2 release files

1.0.24

2 release files

1.0.23

2 release files

1.0.22

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.13

2 release files

This release

1.0.12 This release

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.0

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.1

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.0.9

2 release files

0.0.8

1 release file

0.0.7

2 release files

0.0.5

2 release files

0.0.3

2 release files

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page