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 ベースのモデルライブラリで動作します。サービス定義で必要なパッケージを指定します。
  • 可観測性とスケーリング – 分散サービス、適応バッチ処理をサポートし、監視ツールと統合します。

典型的なワークフロー

  1. インストール pip install -U bentoml(Python ≥ 3.9)。
  2. サービスを書く(例:Hugging Face Transformers を使用した要約 API)。
  3. ローカルで実行 bentoml serve で http://localhost:3000 をテスト。
  4. サービスをパッケージ化:bentoml build → バージョン管理された Bento を作成。
  5. デプロイ: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