TabbyAPIとは?ExLlamaV2の公式APIサーバー
TabbyAPIは、高速なローカルLLM推論ライブラリであるExLlamaV2の公式バックエンドAPIサーバーです。OpenAI APIと互換性のあるエンドポイントを提供し、SillyTavernなどのチャットフロントエンドや、自作のアプリケーションからローカルで動作する大規模言語モデルを簡単に利用できるようにします。軽量で高速な設計が特徴で、EXL2、GPTQ、FP16形式のモデルをサポートしています。
結論:TabbyAPIで実現できること
TabbyAPIをセットアップすることで、以下のことが可能になります:
- OpenAI API互換のエンドポイントをローカル環境に構築
- ExLlamaV2/ExLlamaV3バックエンドによる高速な推論
- SillyTavern、Oobabooga’s Text Generation WebUIなどとのシームレスな連携
- EXL2(量子化)、GPTQ、FP16形式のモデル実行
- Hugging Faceからのモデル自動ダウンロード機能
TabbyAPIのインストール手順
前提条件と環境準備
TabbyAPIを実行するには、以下の環境が必要です:
- NVIDIA GPU(CUDA対応)
- Python 3.10以上
- 十分なVRAM(モデルサイズに依存)
基本的なインストール方法
公式の推奨方法に従ってインストールします:
# リポジトリのクローン
git clone https://github.com/theroyallab/tabbyAPI.git
cd tabbyAPI
# 依存関係のインストール
pip install -r requirements.txt
重要:カスタム版のExllamav2 wheelをインストールしている場合、更新時にはpip install .を使用してください。そうしないと、更新のたびにカスタムexllamav2バージョンが上書きされてしまいます。TabbyAPIは互換性のために最新のExllamav2バージョンを強制します。
設定ファイルの構成
config.ymlの基本設定
TabbyAPIの設定はconfig.ymlファイルで行います。以下の例は基本的な設定です:
# TabbyAPI 基本設定例
host: "0.0.0.0"
port: 5000
model:
# モデルパス(Hugging FaceのモデルIDまたはローカルパス)
path: "TheBloke/Mixtral-8x7B-Instruct-v0.1-EXL2"
# モデル形式(exl2, gptq, fp16)
format: "exl2"
# GPUメモリ設定
gpu_split: "auto"
# コンテキスト長
max_seq_len: 4096
# OpenAI互換API設定
oai_compatible: true
EXL2モデルの配置
EXL2形式のモデルを使用する場合、以下のいずれかの方法で配置します:
- Hugging FaceのモデルIDを直接指定(自動ダウンロード)
- ローカルディレクトリにダウンロードしたモデルをパス指定
EXL2モデルは通常、複数のファイル(.safetensors, .jsonなど)で構成されています。TabbyAPIはこれらのファイルを自動的に認識します。
TabbyAPIの起動と動作確認
サーバーの起動
設定ファイルを準備したら、以下のコマンドでサーバーを起動します:
# 基本的な起動
python -m tabbyapi
# 特定の設定ファイルを指定して起動
python -m tabbyapi --config path/to/your/config.yml
動作確認
サーバーが正常に起動したら、以下の方法で動作を確認できます:
# APIエンドポイントの確認
curl http://localhost:5000/v1/models
# 簡単な推論テスト
curl -X POST http://localhost:5000/v1/completions
-H "Content-Type: application/json"
-d '{
"model": "your-model-name",
"prompt": "Hello, how are you?",
"max_tokens": 50
}'
SillyTavernとの連携設定
TabbyAPIをSillyTavernと連携させるには、以下の手順を行います:
- SillyTavernを起動し、API接続設定を開く
- 接続タイプで「TabbyAPI」を選択
- サーバーアドレスに
http://localhost:5000(またはTabbyAPIを起動したアドレス)を入力 - モデル名を設定(config.ymlで指定したモデル名)
- 「Connect」ボタンをクリックして接続を確立
よくあるトラブルと対処法
CUDA/VRAM関連のエラー
問題:「CUDA out of memory」エラーが発生する
解決策:
config.ymlのgpu_split設定を調整する- より小さいモデルを使用する
- 量子化ビット数を下げたEXL2モデルを選択する
- コンテキスト長(
max_seq_len)を減らす
モデル読み込みエラー
問題:モデルが正しく読み込まれない
解決策:
- モデルパスが正しいか確認する
- モデル形式(exl2, gptq, fp16)が正しく指定されているか確認
- 必要なモデルファイルがすべて存在するか確認
- Hugging Faceからモデルをダウンロードする場合はインターネット接続を確認
API接続エラー
問題:SillyTavernなどから接続できない
解決策:
- TabbyAPIサーバーが起動しているか確認
- ファイアウォール設定でポート(デフォルト5000)が開放されているか確認
host設定が0.0.0.0(すべての接続を許可)になっているか確認- 同じマシンで動作している場合は
localhostまたは127.0.0.1を使用
高度な設定とカスタマイズ
複数モデルの管理
TabbyAPIでは、複数のモデルを設定ファイルで定義し、実行時に切り替えることができます:
models:
- name: "mixtral-8x7b"
path: "TheBloke/Mixtral-8x7B-Instruct-v0.1-EXL2"
format: "exl2"
- name: "llama2-7b"
path: "./models/llama-2-7b-chat-EXL2"
format: "exl2"
パフォーマンス最適化
推論速度を向上させるための設定:
model:
# GPUメモリの分割設定
gpu_split: [20, 20] # 複数GPUの場合の割合
# キャッシュサイズの設定
cache_size: 2048
# バッチ処理の設定
max_batch_size: 8
# コンテキスト長の設定
max_seq_len: 8192 # モデルとVRAMに応じて調整
参考元
- GitHub – theroyallab/tabbyAPI: The official API server for Exllama. OAI compatible, lightweight, and fast. – https://github.com/theroyallab/tabbyAPI
- 01. Getting Started · theroyallab/tabbyAPI Wiki · GitHub – https://github.com/theroyallab/tabbyAPI/wiki/01.-Getting-Started
- TabbyAPI – https://theroyallab.github.io/tabbyAPI/
- TabbyAPI | docs.ST.app – https://docs.sillytavern.app/usage/api-connections/tabbyapi/
- GitHub – turboderp-org/exllamav2: A fast inference library for running LLMs locally on modern consumer-class GPUs – https://github.com/turboderp-org/exllamav2
🔧 おすすめの開発環境
本記事の手順を快適に進めるための推奨スペック:
- GPU: NVIDIA RTX 4070 Ti Super(コスパ最強)
- メモリ: DDR5 64GB(LLM推論に必須)
- SSD: NVMe SSD 2TB(モデル保存用)
🔧 快適な開発環境のために
本記事の手順をスムーズに進めるために、以下のスペックを推奨します。
- GPU: NVIDIA RTX 4070 Ti Super(AI開発のコスパ最強GPU)
- メモリ: DDR5 64GB(LLMのローカル推論に必須)