vLLMとは
PagedAttentionによりGPUメモリを効率利用する、高スループットなオープンソースLLM推論・サービングエンジン
ひとことで言うと
AIモデルをたくさんの人に同時に速く提供するための、オープンソースの実行エンジン。
概要
vLLM(ブイエルエルエム)とは、カリフォルニア大学バークレー校の研究チームが開発した、LLMの推論・サービングを高速化するオープンソースのエンジン。 KVキャッシュをOSの仮想メモリのようにページ単位で管理するPagedAttentionというアルゴリズムを用いることで、GPUメモリの断片化・無駄を減らし、同時に処理できるリクエスト数(スループット)を高めている。 OpenAI互換のAPIサーバーとして動作させられ、既存のLLMアプリケーションを大きく変更せずに導入しやすい点も特徴。 連続バッチ処理(Continuous Batching)にも対応しており、処理中のリクエスト列に新規リクエストを逐次差し込むことで、GPUを常に高稼働率に保ちながら多数のユーザーへ同時にサービス提供できる。
背景
従来のLLM推論実装は、リクエストごとに連続したメモリ領域をKVキャッシュ用に確保しており、系列長を事前に予測できないことによるメモリの過剰確保や断片化がGPU利用効率を下げる要因になっていた。 vLLMは、この課題をOSのページングの発想を応用して解決するために開発された。
歴史
2023年6月: カリフォルニア大学バークレー校のチームがPagedAttentionを提案する論文とともにvLLMを公開。 オープンソースのLLMサービングエンジンとして急速に普及した。
アーキテクチャ
KVキャッシュを固定サイズの小さなブロック(ページ)単位で管理し、空いている非連続なGPUメモリ領域を都度割り当てることで、メモリの断片化を防ぐ。 複数のリクエストを動的にバッチ化する連続バッチング(Continuous Batching)も組み合わせ、GPUを継続的に高稼働率で利用できるようにしている。
利点
- PagedAttentionによりGPUメモリを効率的に利用でき、高いスループットを実現する
- OpenAI互換APIを備え、既存のクライアントコードをほぼそのまま利用できる
欠点
- GPU環境を前提としており、CPUのみでの動作には向かない
- 設定項目が多く、モデルやハードウェアに応じたチューニングの知識を要する