PagedAttention
PagedAttention
PagedAttentionはLLMのメモリ使用効率を革新するアルゴリズム。KVキャッシュをブロック単位で管理し、GPU推論を高速化します。
PagedAttentionとは?
PagedAttentionは、大規模言語モデル(LLM)のKey-Value(KV)キャッシュを固定サイズのブロック(「ページ」)に分割し、メモリを効率的に管理するアルゴリズムです。 UC Berkeleyが2023年に発表したこの技術により、従来は大量に無駄にされていたGPUメモリが、1/10以下のロスで済むようになりました。オペレーティングシステムの仮想メモリページング概念をLLM推論に応用することで、より大きなバッチサイズ、より長い入力シーケンス、より効率的なリソース利用が可能になります。
ひとことで言うと: 「LLM推論時のメモリ無駄をほぼなくす技術で、同じGPUでより多くのリクエストを処理できるようになります。」
ポイントまとめ:
- 何をするか: KVキャッシュをページに分割し、動的にメモリ管理します
- なぜ必要か: 推論時のメモリ無駄により実効スループットが低下していたためです
- 誰が使うか: LLM推論エンジン(vLLM)、Databricks、AWS等の企業
なぜ重要か
従来のLLM推論は、入力シーケンス長に基づいてメモリを事前割り当てしており、実際に使う量が少なくても効率的に活用されていませんでした。これにより、同じGPUで処理できるユーザーリクエスト数が制限され、応答性が低下していました。PagedAttentionはこの問題を根本的に解決し、vLLMなどのエンジンで採用され、LLMチャットボットやAPI提供企業に大きなコスト削減をもたらしています。
仕組みをわかりやすく解説
PagedAttentionは、パソコンのメモリ管理と同じようにGPUメモリを管理します。従来はある長さ分をまるごと確保するのに対し、PagedAttentionは必要な分だけを「ページ」単位で割り当てます。ブロックテーブルというマッピング表を使って、論理的なメモリアドレスを物理的な場所に対応させるため、物理的には分散していても論理的には連続したメモリとして機能します。
Transformerモデルのアテンション機構では過去のトークン情報を保持する必要がありますが、このメモリをページに分割することで、終了したシーケンスのページは即座に他のリクエストに再利用できます。共有される部分(プロンプト)はメモリコピーせず参照するだけで済む工夫もあり、更に効率を高めています。
実際の活用シーン
チャットボット提供企業 複数ユーザーからの同時リクエストを効率的に処理でき、インフラコストを大幅削減できます。LMSYS Chatbot Arenaなど多数のサービスで採用されています。
ドキュメント処理 大量のドキュメントをバッチ処理する際、メモリ効率向上により処理速度が3倍以上になることもあります。
API提供サービス スループット向上により、同じハードウェアで多くのユーザーをサポートできます。
メリットと注意点
PagedAttentionの最大のメリットはメモリ効率です。従来比で60-80%のムダを4%以下に削減し、同じ容量でより多くを処理できます。スループット向上により、APIのレイテンシ削減やコスト削減につながります。ただし、ブロックテーブルのルックアップにわずかなオーバーヘッドが生じるため、単一リクエスト処理では改善が目立たない場合もあります。また、vLLMなど対応エンジンの使用が前提となります。
関連用語
- vLLM — PagedAttentionを採用した高速推論エンジンです
- KVキャッシュ — PagedAttentionが管理対象とするメモリです
- Transformerモデル — PagedAttention適用対象のアーキテクチャです
- アテンション機構 — KVキャッシュが必要な計算メカニズムです
- LLM推論 — PagedAttentionが高速化する処理です