OpenAI互換APIで大規模言語モデルを実行・提供する、高速でメモリ効率に優れたライブラリ兼サーバー。
microsoft/vattention
PagedAttentionを使わず、CUDA仮想メモリAPIでGPUメモリをオンデマンドに割り当てる、LLM serving向けKV-cacheメモリマネージャー。
- スター
- 527
- フォーク
- 46
- 未解決の Issue
- 13
- 最終コミット
- 3 か月前
これは何?
vAttentionは、LLM servingシステム向けのKV-cacheメモリマネージャーです。CUDA仮想メモリAPIを使って仮想メモリと物理メモリの割り当てを分離し、KV-cacheを仮想アドレス空間上で連続した状態に保ちながら、物理GPUメモリをオンデマンドでマッピングします。
KV-cacheが連続しているため、vAttentionでは変更していないattentionカーネルを使って動的にメモリを割り当てられます。これは、ユーザー空間でページングを実装し、カスタムカーネルを必要とするPagedAttentionとは異なります。このプロジェクトには、vAttention allocator、PagedAttentionとvAttentionの両方に対応したSarathi-Serveの改変版、ベンチマーク用スクリプト、ベンチマーク用のOpenAI互換APIサーバーが含まれます。
このリポジトリの対象環境は、NVIDIA GPU(A100でテスト済み)を搭載したLinux、PyTorch 2.3.0、CUDA 12.1以降、Python 3.10です。FlashAttentionとFlashInferのバックエンド、および64KB〜2MBのページサイズに対応しています。より小さいページサイズには、カスタムUVMドライバーが必要です。
主な機能
- 01KV-cacheを仮想メモリ上で連続させたまま、物理GPUメモリをオンデマンドで割り当てます。
- 02PagedAttentionとは異なり、変更していないattentionカーネルで動作します。
- 03FlashAttentionとFlashInferのattentionバックエンドに対応しています。
- 0464KB〜2MBのページサイズに対応し、非同期のメモリ割り当てを計算とオーバーラップできます。
- 05ベンチマーク用ランナーとOpenAI互換APIサーバーが含まれます。
ユースケース
- LLM推論におけるKV-cacheのメモリ管理を研究・試作する。
- prefill負荷の高いワークロードや長いコンテキストを使うワークロードで、servingのスループットとレイテンシをベンチマークする。
- attentionカーネルを書き換えずに、動的なKV-cache割り当てをservingシステムに組み込む。
クイックスタート
- 1
Python 3.10 を使用する conda 環境を作成して有効化する
conda create -n vattn python=3.10 - 2
PyTorch 2.3.0 に対応する libtorch をダウンロードして展開する
wget https://download.pytorch.org/libtorch/cu121/libtorch-shared-with-deps-2.3.0%2Bcu121.zip - 3
sarathi-lean ディレクトリから Sarathi-Serve をインストールする
pip install -e . --extra-index-url https://flashinfer.ai/whl/cu121/torch2.3/ - 4
LIBTORCH_PATH に libtorch ディレクトリを設定して、vAttention allocator をビルドする
LIBTORCH_PATH=<path to libtorch dir> python setup.py install
使う前に知っておきたいこと
- 主に Linux、A100 GPU、CUDA 12.1 以降でテストされているため、ほかのハードウェアでは動作しない場合があります。
- 特定の PyTorch 2.3.0 と、それに対応する libtorch のバージョンが必要です。
- オープンソースの vLLM と完全な機能同等性はない研究用プロトタイプです。
トピック
よくある質問
- vattention とは?
- PagedAttentionを使わず、CUDA仮想メモリAPIでGPUメモリをオンデマンドに割り当てる、LLM serving向けKV-cacheメモリマネージャー。 vAttentionは、LLM servingシステム向けのKV-cacheメモリマネージャーです。CUDA仮想メモリAPIを使って仮想メモリと物理メモリの割り当てを分離し、KV-cacheを仮想アドレス空間上で連続した状態に保ちながら、物理GPUメモリをオンデマンドでマッピングします。
- vattention は無料で使えますか?ライセンスは?
- vattention は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- vattention は今もメンテナンスされていますか?
- 半年以内に更新あり。vattention の最終コミットは 2026年8月24日 です。
- vattention は何に使えますか?
- LLM推論におけるKV-cacheのメモリ管理を研究・試作する。 prefill負荷の高いワークロードや長いコンテキストを使うワークロードで、servingのスループットとレイテンシをベンチマークする。 attentionカーネルを書き換えずに、動的なKV-cache割り当てをservingシステムに組み込む。
- vattention のインストール方法は?
- Python 3.10 を使用する conda 環境を作成して有効化する: conda create -n vattn python=3.10 PyTorch 2.3.0 に対応する libtorch をダウンロードして展開する: wget https://download.pytorch.org/libtorch/cu121/libtorch-shared-with-deps-2.3.0%2Bcu121.zip sarathi-lean ディレクトリから Sarathi-Serve をインストールする: pip install -e . --extra-index-url https://flashinfer.ai/whl/cu121/torch2.3/ LIBTORCH_PATH に libtorch ディレクトリを設定して、vAttention allocator をビルドする: LIBTORCH_PATH=<path to libtorch dir> python setup.py install
- vattention はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/microsoft/vattention
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
コンシューマー向けGPUやCPUでDeepSeek-V4やQwen3.6などの大規模なオープンウェイトモデルを動かす、エッジネイティブなMoE推論エンジン。
LLM推論エンジン間でattentionのKVキャッシュを保存・共有・再利用し、time-to-first-tokenを短縮する管理レイヤー。
vLLM、SGLang、TensorRT-LLMでAIモデルをデプロイし、オンデマンドのSSH GPUインスタンスも提供するオープンソースのGPUクラスターマネージャー。
Alibabaが開発し、社内の複数事業部門で大規模言語モデルの提供に利用されている、高性能なLLM推論エンジン。
NVIDIA製のオープンソースライブラリ。NVIDIA GPU上でのLLMと画像生成の推論を最適化し、Python APIとC++/Pythonランタイムを提供します。