Re Reference AI

インフラ

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のみでの動作には向かない
  • 設定項目が多く、モデルやハードウェアに応じたチューニングの知識を要する

比較

  • KVキャッシュvLLMは、PagedAttentionによりKVキャッシュの管理を効率化する代表的な実装
  • バッチ推論vLLMは、連続バッチングによりバッチ推論のスループットを高める
  • OllamavLLMが大規模なサーバー向けサービングに向くのに対し、Ollamaは個人利用・ローカル環境向けに設計されている

関連用語

KVキャッシュバッチ推論Ollama推論Triton Inference ServerRaySGLang

よくある質問

vLLMは個人のPCでも使える?

GPUが必要であり、主にサーバーやクラウド環境での大規模なサービング用途を想定している。 個人のローカル環境ではOllamallama.cppの方が手軽に使われることが多い。

参考文献

関連Zenn記事