theroyallab/tabbyAPI

The official API server for Exllama. OAI compatible, lightweight, and fast.

TabbyAPI – OpenAI互換 REST API を備えた高速なオープンソース LLM サービング

何であるか

  • Python 3.10–3.14 用の FastAPI アプリケーションで、ExllamaV3 推論エンジンをラップしています。ローカルに保存された LLM チェックポイントを、OpenAI の v1/completions および v1/chat/completions エンドポイントと同一の JSON スキーマを採用するウェブサービスに変換します。

なぜ重要か

  • ExllamaV3 は、ページ化されたアテンション、連続バッチ処理、および Nvidia Ampere+ カードでの GPU 加速推論で知られています。TabbyAPI は、これらのパフォーマンス向上を、馴染みのある HTTP API の背後で公開し、CUDA コードを自前で書く必要なく、既存のツール(例:LangChain、AI-Horde、カスタムフロントエンド)に簡単に統合できるようにします。

主な機能(README に記載)

  • OpenAI互換 APIchat/completions および completions エンドポイントの即時置き換え。
  • モデルライフサイクル – 実行時におけるモデルのロード、アンロード、切り替え。
  • HuggingFaceダウンローダー – Hub から直接モデルを取得。
  • 埋め込みモデル対応 – テキスト生成と併せてベクトル埋め込みを提供。
  • スキーマ対応プロンプト – 構造化出力のための JSON スキーマ、正規表現、EBNF 検証。
  • AI-Horde統合 – 分散推論ネットワークへのオプション参加。
  • 予測的デコード – 速い「ドラフト」モデルを使用して生成を加速。
  • プロキシレイヤー – クライアント側のパラメータやサンプラーを実行時で上書き。
  • Jinja2テンプレート – HuggingFace チャット形式に類似した柔軟なプロンプト構築。
  • 非同期並行処理asyncio を活用して複数リクエストを同時に処理。
  • ツール/関数呼び出し – OAIスタイルの関数呼び出しサポート。
  • 埋め込みスタック(オプション) – オプションの Docker タグには infinity-emb スタックが含まれ、高スループットのベクトル化に対応。

対応するモデルタイプ

  • Exl3(ExllamaV3 形式) – 最高の速度を求める場合に推奨。
  • FP16 / BF16 チェックポイント。
  • ページ化アテンションバッチ処理に対応する、Nvidia Ampere 以降の GPU で動作。

導入方法

  1. Docker(推奨) – 事前ビルド済みイメージを取得:
    docker pull ghcr.io/theroyallab/tabbyapi:latest   # CUDA 12.8
    docker run --gpus all -p 5000:5000 \
        -v /path/to/models:/app/models \
        ghcr.io/theroyallab/tabbyapi:latest
    
    API は http://localhost:5000 で利用可能になります。
  2. 代替タグcu13 は CUDA 13、latest-extras は埋め込みスタックを含みます。
  3. ソースから – リポジトリをクローンし、Python 依存関係をインストール、FastAPI アプリを実行(uvicorn tabbyapi.main:app)。詳細手順と Docker-Compose の例は Wiki を参照。
  4. 設定 – モデルディレクトリ、ポート、オプション設定は環境変数または config.yaml ファイルで制御(Wiki にドキュメントあり)。

一般的な利用例

  • デスクトップワークステーションでの個人的・趣味用 LLM サービング。
  • クラウド API の課金を回避して、ChatGPT風アプリの迅速プロトタイピング。
  • 自己ホスト UI プロジェクト(例:SillyTavernText Generation WebUI)との統合。
  • 予測的デコード、関数呼び出し、カスタムプロンプトテンプレートの実験。

制限事項

  • 趣味プロジェクトとして位置づけられており、プロダクション環境向けのスケーラビリティや高可用性を想定していません。
  • ローリングリリースのため、破壊的変更が発生する可能性があります。更新後に依存関係の再インストールが必要になる場合があります。

ライセンス

  • AGPL-v3 – サービスとしてデプロイされた修正は、同じライセンスで公開する必要があります。

コミュニティとサポート

  • 調査・機能リクエスト用に公式 Discord サーバー(README 内リンク)。
  • プルリクエストによる貢献を歓迎。リポジトリにはイシュー/PRテンプレートあり。

上流プロジェクトへの謝辞

  • ExllamaV2/V3、Aphrodite Engine、infinity-emb、FastAPI、Text Generation WebUI、SillyTavern など。

結論:TabbyAPI は、高速な ExllamaV3 バックエンドを活用し、OpenAIスタイルの HTTP API を備えた軽量でオープンソースのゲートウェイです。現代の LLM をローカルで実行したい開発者や趣味ユーザーに最適です。

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト