数万トークンでもVRAMが溢れない!LLM推論を爆速化する「PagedAttention」の全貌

2026年10月25日日曜日

t f B! P L

📖 推定読了時間:約6分

ローカル環境やクラウドで大規模言語モデル(LLM)を動かしたことがある方なら、必ず直面する「巨大な壁」があります。

「モデルの重み(Weight)自体はVRAM(ビデオメモリ)に収まっているはずなのに、いざ長いプロンプトを入力したり、複数人で同時にチャットを送った瞬間、『CUDA Out of Memory(メモリ不足クラッシュ)』でサーバーが落ちてしまう……!」

LLMを動かす際、メモリを消費するのはモデルのパラメーターだけではありません。実は、会話が長くなればなるほど、過去の単語の文脈を記憶しておく「KVキャッシュ(Key-Value Cache)」と呼ばれる作業用メモリが指数関数的に肥大化し、GPUの貴重なVRAMを食いつぶしてしまうのです。

これまでの推論システムでは、なんとVRAMの60%〜80%がメモリの「断片化(フラグメンテーション)」によって無駄に捨てられていたという衝撃的な事実をご存知でしょうか?

この無駄を徹底的に排除し、推論スループットを従来の2倍〜4倍に引き上げた救世主が、カリフォルニア大学バークレー校の研究チームが開発した推論エンジン「vLLM」と、その心臓部であるアルゴリズム「PagedAttention」です。現代のAIサービングのデファクトスタンダードとなったこの技術の全貌を徹底解説します!

この記事のポイント

  • LLMが長文を処理するたびに激増する「KVキャッシュ」の正体
  • 従来のシステムが「最長シーケンス長」を連続メモリで事前確保していた弊害
  • OSの仮想記憶(ページング)の思想をGPUメモリに応用した「PagedAttention」
  • 並行リクエストの分岐(ビームサーチや並列サンプリング)でメモリをゼロコピー共有する驚異の効率

VRAMの8割がゴミ箱行き?従来のKVキャッシュが抱えていた絶望

Transformerモデルが文章を生成する際、直前の単語だけでなく、入力された全単語との関連度(Attention)を計算する必要があります。毎回ゼロから全単語を再計算するのは時間がかかりすぎるため、過去のトークンのKeyベクトルとValueベクトルをVRAM上にキャッシュしておく仕組みが「KVキャッシュ」です。

しかし、従来の推論ライブラリ(Hugging Face Transformers等)には重大な問題がありました。「このリクエストが最終的に何文字出力するか」は生成が終わるまで誰にも予測できないという点です。

そのためシステムは、途中でメモリが足りなくなる事故を防ぐべく、最大出力長(例: 2048トークンや4096トークン)分の「連続した巨大な物理メモリ空間」を最初から丸ごと予約確保していました。もしユーザーがわずか10単語で出力を終えたとしても、残りの数千トークン分のVRAM領域は誰にも使われず放置されます。

さらに、リクエストごとに異なる長さのメモリが確保・解放されることで、メモリ空間が虫食い状態(内部断片化・外部断片化)になり、合計では数GB空きがあるのに連続領域が取れずにクラッシュするという事態が多発していたのです。

ローカル環境でのLLM構築や、量子化モデル(GGUF / AWQ / EXL2)のVRAM最適化テクニックを体系的に学びたい方は、基礎から運用まで網羅した ローカルLLM環境構築量子化モデル運用実践ガイド書籍 を手元に置いておくことで、手持ちのハードウェアの性能を極限まで引き出すノウハウが身につきます。

OSの知恵をGPUへ:「PagedAttention」の革新的ブレークスルー

このメモリ断片化問題を、計算機科学の古典的名作である「OSの仮想記憶(Virtual Memory Paging)」と同じ手法で解決したのが「PagedAttention」です。

💡 PagedAttentionの発想:連続したメモリを確保する必要なんてない!小さなブロックに切り分けて、必要な分だけ後から足せばいい!

PagedAttentionでは、KVキャッシュを連続した大きな領域として確保しません。代わりに、例えば「1ブロック=16トークン分」といった固定サイズの小さな物理メモリブロック(ページ)に細切れに分割して管理します。

  • 🧩オンデマンドなブロック割り当て:文章が生成されて16トークンが埋まるたびに、GPUの空いている場所から新しいブロックを1つだけ動的に割り当てます。物理的にメモリが離れた場所にあっても、内部の「ブロックテーブル(ページテーブル)」が論理的に1つの連続した文脈として繋ぎ合わせます。
  • 📉メモリ浪費をほぼ0%(4%未満)に激減:最後のブロックの余りスペース(最大でも15トークン分)以外に無駄な事前確保が一切発生しません。VRAMの空き領域をミリ単位で限界まで使い倒せるようになります。
  • 🤝複数リクエスト間でのブロック共有(Copy-on-Write):共通のシステムプロンプトや、1つの質問から複数の回答候補を生成するパラレルサンプリングを行う際、先行するトークンのブロックをメモリコピーなし(参照カウントのみ)で全リクエストが共有できます。

従来方式とvLLM(PagedAttention)の性能比較

推論サーバーにおけるアーキテクチャの違いと、その驚くべきスループット差を表で確認してみましょう。

比較項目 従来の推論(Transformers等) vLLM(PagedAttention)
KVキャッシュのメモリ浪費 60%〜80%(断片化・過剰予約) 4%未満(ほぼゼロ)
バッチサイズ(同時処理数) VRAM枯渇を恐れて少数に制限 空きメモリ限界まで巨大バッチ化
推論スループット(秒間トークン) 基準値(1.0x) 2.0x〜4.0x(2〜4倍の爆速化)
共通プロンプトの処理 リクエストごとに重複メモリ確保 ゼロコピー共有(物理メモリ1つ分)

ローカルLLM運用やAPIサーバーの現場に与えた衝撃

vLLMとPagedAttentionの登場は、AI業界のビジネス構造すら変えつつあります。

同じNVIDIA A100やH100、あるいは民生用のRTX 4090を搭載したサーバーであっても、vLLMを導入するだけで、サーバー台数を増やさずに2倍から4倍のユーザーリクエストを同時に処理できるようになったからです。APIの運用コスト(電気代やクラウド費用)は文字通り半分以下に激減しました。

ローカル環境で70Bクラスの巨大モデルや長文コンテキスト(32k〜128kトークン)を安定して高速推論させるには、広帯域な24GB GDDR6Xメモリを搭載した ローカルLLM向け高VRAMグラフィックボード(RTX 4090等) のハードウェア性能と、vLLMのPagedAttentionソフトウェア最適化を組み合わせることが現行最強の解となります。

まとめ:計算機科学の原点が、最先端AIの未来を救う

vLLMの成功が教えてくれる最も美しい教訓は、「何十年も前にOS開発者たちが考案した『仮想記憶ページング』という古典的な知恵が、2020年代の最先端AIの最大のボトルネックを打ち破った」という事実です。

アルゴリズムの工夫ひとつで、ハードウェアの限界を数倍に引き上げる工学のロマン。LLMの推論サーバーを立ち上げるときは、その水面下で無数の小さなメモリブロックが縦横無尽にページングされている鮮やかなオーケストレーションにぜひ注目してみてください!

このブログを検索

このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
Amazonのアソシエイトとして、「色即是空」な「空即是色」blogは適格販売により収入を得ています。