ExLlamaV3 - コンシューマ GPU 上の高速量子化 LLM 推論 チートシート
ExLlamaV3 は 量子化 LLM をコンシューマ NVIDIA GPU 上で実行 するための高速推論ライブラリです。その EXL3 フォーマットは高品質変数ビットレート量子化を提供します — ターゲット平均ビット/重み (例: 3.0, 4.25, 6.0) を正確に品質対 VRAM をトレード — 単一 24GB カードに大規模モデルを適合させながら強力なスループットを保つ。ExLlamaV2 の後継者で、ローカル LLM コミュニティにより限定メモリに大モデルを絞り込むためにお気に入り。
インストール
| 方法 | コマンド |
|---|
| pip (プリビルトホイール) | pip install exllamav3 |
| ソースから | git clone https://github.com/turboderp-org/exllamav3 && cd exllamav3 && pip install -e . |
| 要件 | NVIDIA GPU (Ampere+), CUDA, PyTorch |
| 確認 | python -c "import exllamav3; print('ok')" |
EXL3 フォーマット
| コンセプト | 意味 |
|---|
| 変数ビットレート | ターゲット平均ビット/重み (bpw), 例: 2.5–8.0 |
| レイヤーごとの精度 | 異なるレイヤーは異なる精度を使用可能 |
| 品質/サイズダイアル | 高い bpw = より良い品質、より多くの VRAM |
| キャリブレーション | 量子化中にキャリブレーション データセットを使用 |
モデルを量子化
# HF モデルを EXL3 に ~4.0 ビット/重みで変換
python -m exllamav3.convert \
-i meta-llama/Llama-3.1-8B-Instruct \
-o Llama-3.1-8B-exl3-4.0bpw \
-b 4.0
| フラグ | 説明 |
|---|
-i, --in_dir | ソース HF モデル |
-o, --out_dir | 出力 EXL3 ディレクトリ |
-b, --bits | ターゲット平均ビット/重み |
-hb, --head_bits | 出力ヘッド向け精度 |
-c, --cal_dir | カスタムキャリブレーション データ |
Python 推論
from exllamav3 import Model, Config, Cache, Tokenizer, Generator
config = Config.from_directory("Llama-3.1-8B-exl3-4.0bpw")
model = Model.from_config(config)
cache = Cache(model, max_num_tokens=8192)
model.load()
tokenizer = Tokenizer.from_config(config)
generator = Generator(model=model, cache=cache, tokenizer=tokenizer)
output = generator.generate(prompt="Explain quantization briefly.",
max_new_tokens=200)
print(output)
| オブジェクト | ロール |
|---|
Config | EXL3 dir から モデル設定をロード |
Model | 量子化モデル |
Cache | KV キャッシュ (サイズが大きい = より長いコンテキスト) |
Generator | 生成を実行 |
メモリとコンテキスト
| レバー | エフェクト |
|---|
| 量子化時の bpw | より低い bpw → より少ない VRAM、いくらかの品質損失 |
| キャッシュサイズ | より大きい → より長いコンテキスト、より多くの VRAM |
| キャッシュ量子化 | 量子化 KV キャッシュでコンテキストを拡張 |
| ヘッドビット | ヘッドを高精度に品質のため保つ |
ビットレート選択 (ラフガイド)
| ターゲット bpw | 典型的使用 |
|---|
| 2.0–2.5 | 非常に大きいモデルを限定 VRAM に適合させる (品質落ちる) |
| 3.0–3.5 | アグレッシブだが使用可能 |
| 4.0–4.5 | 最適なスイートスポット ほとんどの 24GB セットアップ向け |
| 6.0+ | ほぼロスレス、より多くの VRAM |
エコシステム統合
| ターゲット | 注記 |
|---|
| TabbyAPI | ExLlamaV3 を使用する OpenAI 互換サーバー |
| text-generation-webui | ローダーサポート |
| Aphrodite Engine | EXL3 量子化モデルをサーブ可能 |
ExLlamaV3 vs その他のアプローチ
| アスペクト | ExLlamaV3 | llama.cpp (GGUF) | GPTQ/AWQ |
|---|
| ターゲット | コンシューマ NVIDIA GPU | CPU + GPU、クロスプラットフォーム | GPU |
| 量子化 | 変数ビットレート EXL3 | k-quants | 固定 4 ビット |
| 精度コントロール | 良い (任意の bpw) | プリセットレベル | 粗い |
| 最適な用途 | GPU 上で VRAM ごとの最大品質 | ポータビリティ、CPU | 標準 4 ビットサーブ |
リソース