turboderp-org/exllamav3

An optimized quantization and inference library for running LLMs locally on modern consumer-class GPUs

ExLlamaV3 とは?

ExLlamaV3 は、コンシューマーグレードの GPU 上で大規模言語モデル(LLM)をローカルに実行できる Python ライブラリです。高速推論に焦点を当てており、以下を提供します:

  • EXL3 量子化 – QTIP 研究論文に由来する低ビット(2〜8 ビット)の重み形式に加え、オプションの低ビットキャッシュ量子化により、メモリ使用量を大幅に削減しながら高品質を維持します。
  • 並列推論 – テンソル並列およびエキスパート並列実行により、モデルを複数の GPU に分割したり、GPU メモリが限られている場合は CPU と GPU に分割したりできます。
  • CPU オフロード – MoE(Mixture-of-Experts)モデルは、計算の一部を CPU に移動することで(AVX2/AVX512 対応)、控えめな GPU でも実行できます。
  • 動的生成機能 – 連続バッチ処理、投機的デコード、マルチモーダル(画像テキスト)サポート。
  • 統合 – Hugging Face モデルローダー、小規模な Transformers 互換ラッパー、および別の TabbyAPI サーバーを介した OpenAI スタイル API。

要するに、ExLlamaV3 は、単一の RTX 40xx/50xx カードまたは控えめなマルチ GPU 構成で、最先端の LLM(Llama 3、Gemma 4、Qwen 3.5 など)を実行することを実用的にする推論エンジンです。


主な機能(専門用語を避けた説明)

機能 あなたへの意味
EXL3 量子化 モデルの重みは 2〜8 ビット形式で保存され、フル精度モデルと比較してメモリ要件を最大 4〜8 倍削減します。
並列およびエキスパート並列推論 ライブラリは作業を複数の GPU または GPU と CPU に分割できるため、単一デバイスに収まらないより大きなモデルを実行できます。
CPU オフロード 通常は複数の GPU を必要とする MoE モデルでも、単一の GPU と CPU リソースで実行できます。
動的バッチ処理と投機的デコード エンジンは複数のリクエストをグループ化し、次のトークンを推測することで GPU をビジー状態に保ち、応答時間を短縮します。
マルチモーダルサポート 画像を受け入れる一部のモデル(例:Qwen-2.5 VL)は、そのままサポートされています。
簡単な統合 提供されている examples/chat.py CLI を使用するか、Hugging Face Transformers に接続するか、OpenAI 互換の HTTP API(TabbyAPI)を介してモデルを公開します。
幅広いモデルカバレッジ Llama 1-3 から Gemma 4、Qwen 3-5、Mistral、Mixtral、および多くの MoE バリアントまで、40 以上のモデルファミリがリストされています。

はじめに(インストール)

  1. 最新の PyTorch ビルドがあることを確認してください(CUDA 12.4+)。このライブラリは PyTorch を自動インストールしません。
  2. 次のいずれかを選択します:
    • プリビルド wheel – リリースページから一致する exllamav3-<version>+cuXXX.torch2.x.x-...whl をダウンロードし、pip install <url> を実行します。
    • PyPI – pip install exllamav3(ネイティブ拡張をビルドするには CUDA ツールキットと C++ コンパイラが必要です)。
    • ソースからビルド – リポジトリをクローンし、CUDA バージョンに一致する --extra cuXXX フラグ(例:CUDA 12.8 の場合は cu128)を指定して uv または pip を使用します。README には、特定の PyTorch バージョンを固定する方法を含む 4 つの詳細なオプションがあります。
  3. インストール後、サンプル CLI を実行します:
    python examples/chat.py -m <model_folder> -mode <prompt_mode>
    
    すべてのオプションを表示するには -h を使用します。

典型的なワークフロー

  1. Hugging Face からモデルをダウンロードします(またはコミュニティコレクションの量子化済み EXL3 モデルを使用します)。
  2. モデルを EXL3 形式に変換します:
    python convert.py -i <hf_dir> -o <exl3_dir> -b 4   # 4 ビットの例
    
    コンバーターはヘッシアンベースのキャリブレーションを自動的に処理します。大きなモデルは高性能 GPU で数時間かかる場合があります。
  3. CLI、Transformers ラッパーを使用して推論を実行するか、TabbyAPI サーバーを起動して OpenAI 互換エンドポイントを公開します。
  4. (オプション)optimize.md ガイドを使用して、さらにファインチューニングまたはキャリブレーションします。

誰がこれを使うべきか?

  • 研究者と愛好家 – クラウド GPU をレンタルせずに最新の LLM を試したい人。
  • ローカル AI アシスタントを構築する開発者 – 高速な応答時間と低メモリフットプリントが必要な人。
  • プライベート推論サービスを展開するチーム – TabbyAPI サーバーを使用すると、ファイアウォールの内側で OpenAI スタイルの API を使用してモデルを提供できます。
  • 量子化研究に興味がある人 – このライブラリは QTIP ベースの EXL3 メソッドを実装し、プロセスを検査/調整するためのツールを提供します。

コミュニティとリソース

  • Discord – https://discord.gg/NSFwVuCjRq ヘルプ、モデル共有、開発ディスカッション用。
  • Hugging Face モデルハブ – すぐに使える EXL3 量子化モデルのキュレーションコレクション。
  • 謝辞プロジェクト – PyTorch、FlashAttention、QTIP、Marlin、およびその他のオープンソースカーネルに基づいています。

要約

ExLlamaV3 は、コンシューマー向け GPU で最新の LLM を実行するための高性能で量子化対応の推論エンジンです。低ビットの重み保存、柔軟な並列処理、CPU オフロード、および既存の Python ツールや OpenAI 互換 API との簡単な統合を提供します。

関連

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