bentoml/BentoML
The easiest way to serve AI apps and models - Build Model Inference APIs, Job queues, LLM apps, Multi-model pipelines, and more!
BentoML – 統合モデルサービスフレームワーク
概要
- 数行のコードで、あらゆる AI/ML モデル(PyTorch、TensorFlow、Transformers など)を本番環境対応の推論 API に変換できる Python ライブラリ。
- パッケージング、Docker イメージの作成、Kubernetes やその他の環境へのデプロイを処理します。
主な機能
- シンプルな API 定義 –
@bentoml.serviceと@bentoml.apiでクラスをデコレートし、関数を HTTP エンドポイントとして公開します。 - 自動コンテナ化 –
bentoml buildは Bento(バージョン管理されたアーティファクト)を作成し、bentoml containerizeはコード、モデル、依存関係をバンドルした Docker イメージを生成します。 - パフォーマンス最適化 – 動的バッチ処理、モデル並列処理、多段階パイプライン、マルチモデルオーケストレーションを内蔵し、CPU/GPU 使用率を最大化します。
- フレームワーク非依存 – あらゆる Python ベースのモデルライブラリで動作します。サービス定義で必要なパッケージを指定します。
- 可観測性とスケーリング – 分散サービス、適応バッチ処理をサポートし、監視ツールと統合します。
典型的なワークフロー
- インストール
pip install -U bentoml(Python ≥ 3.9)。 - サービスを書く(例:Hugging Face Transformers を使用した要約 API)。
- ローカルで実行
bentoml serveでhttp://localhost:3000をテスト。 - サービスをパッケージ化:
bentoml build→ バージョン管理された Bento を作成。 - デプロイ:
bentoml containerize <bento_name>→ Docker イメージ → 任意のホストまたは Kubernetes で実行。
コード例
import bentoml
@bentoml.service(
image=bentoml.images.Image(python_version="3.11").python_packages("torch", "transformers"),
)
class Summarization:
def __init__(self):
import torch
from transformers import pipeline
device = "cuda" if torch.cuda.is_available() else "cpu"
self.pipeline = pipeline('summarization', device=device)
@bentoml.api(batchable=True)
def summarize(self, texts: list[str]) -> list[str]:
return [r['summary_text'] for r in self.pipeline(texts)]
bentoml serve を実行すると、API が即座に起動します。
エコシステムと例
- LLM(Llama 3.2、Mistral、DeepSeek)、拡散モデル、埋め込み、音声モデル、コンピュータビジョン検出器、および関数呼び出し、LangGraph、CrewAI などの高度なパターン向けの既製例があります。
- 完全なドキュメントは https://docs.bentoml.com にあり、トラブルシューティングやパターン共有のためのコミュニティフォーラムもあります。
コミュニティと貢献
- Apache 2.0 ライセンスのオープンソース。
- CI、問題トラッカー、貢献ガイドを備えた活発な GitHub リポジトリ。
- ユーザーは
--do-not-trackまたは環境変数を使用して、匿名使用テレメトリをオプトアウトできます。
対象ユーザー
- ボイラープレートの Docker/Kubernetes コードを書かずに、モデルをスケーラブルな API として公開する必要がある ML エンジニア。
- マルチモデルパイプラインや、CPU/GPU で効率的に実行する必要があるサービスを構築するチーム。
- AI モデルを本番環境に再現可能でバージョン管理された方法で出荷する方法を探している人。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch