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互換 API –
chat/completionsおよびcompletionsエンドポイントの即時置き換え。 - モデルライフサイクル – 実行時におけるモデルのロード、アンロード、切り替え。
- HuggingFaceダウンローダー – Hub から直接モデルを取得。
- 埋め込みモデル対応 – テキスト生成と併せてベクトル埋め込みを提供。
- スキーマ対応プロンプト – 構造化出力のための JSON スキーマ、正規表現、EBNF 検証。
- AI-Horde統合 – 分散推論ネットワークへのオプション参加。
- 予測的デコード – 速い「ドラフト」モデルを使用して生成を加速。
- プロキシレイヤー – クライアント側のパラメータやサンプラーを実行時で上書き。
- Jinja2テンプレート – HuggingFace チャット形式に類似した柔軟なプロンプト構築。
- 非同期並行処理 –
asyncioを活用して複数リクエストを同時に処理。 - ツール/関数呼び出し – OAIスタイルの関数呼び出しサポート。
- 埋め込みスタック(オプション) – オプションの Docker タグには
infinity-embスタックが含まれ、高スループットのベクトル化に対応。
対応するモデルタイプ
- Exl3(ExllamaV3 形式) – 最高の速度を求める場合に推奨。
- FP16 / BF16 チェックポイント。
- ページ化アテンションバッチ処理に対応する、Nvidia Ampere 以降の GPU で動作。
導入方法
- Docker(推奨) – 事前ビルド済みイメージを取得:
API は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:latesthttp://localhost:5000で利用可能になります。 - 代替タグ –
cu13は CUDA 13、latest-extrasは埋め込みスタックを含みます。 - ソースから – リポジトリをクローンし、Python 依存関係をインストール、FastAPI アプリを実行(
uvicorn tabbyapi.main:app)。詳細手順と Docker-Compose の例は Wiki を参照。 - 設定 – モデルディレクトリ、ポート、オプション設定は環境変数または
config.yamlファイルで制御(Wiki にドキュメントあり)。
一般的な利用例
- デスクトップワークステーションでの個人的・趣味用 LLM サービング。
- クラウド API の課金を回避して、ChatGPT風アプリの迅速プロトタイピング。
- 自己ホスト UI プロジェクト(例:SillyTavern や Text 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
- プロジェクト
- プロジェクト