Home
Login

vllmは、大規模言語モデルを高速に推論するための、高速かつ使いやすいライブラリです。

Apache-2.0Python 49.6kvllm-project Last Updated: 2025-06-14

vLLM: 高速かつ使いやすい LLM 推論・サービスエンジン

概要:

vLLM は、大規模言語モデル (LLM) の推論とサービス提供のための、高スループットかつ効率的な Python ライブラリです。 LLM のデプロイを簡素化し、推論速度を大幅に向上させながら、コストを削減することを目的としています。 vLLM は、優れたパフォーマンスを実現するために、メモリ管理とスケジューリングの最適化に重点を置いています。

主な特徴:

  • PagedAttention: vLLM の核となる革新は、PagedAttention アルゴリズムです。 従来の注意機構では、各トークンに対して過去のすべてのキーと値を保存する必要があり、特に長いシーケンスでは、メモリ占有量が膨大になります。 PagedAttention は、注意キーと値をページに分割し、オペレーティングシステムの仮想メモリページングに似ています。 これにより、vLLM は注意メモリを動的に管理および共有できるため、メモリの浪費を大幅に削減し、より長いシーケンスとより大きなバッチサイズをサポートできます。

  • 連続バッチ処理: vLLM は連続バッチ処理をサポートしており、異なるリクエストからのトークンを動的に組み合わせて、1つのバッチとして処理できます。 これにより、GPU リソースを最大限に活用し、スループットを向上させます。

  • 効率的な CUDA カーネル: vLLM は、PagedAttention およびその他の操作を実装するために、高度に最適化された CUDA カーネルを使用します。 これらのカーネルは、GPU の並列処理能力を最大限に活用するように設計されています。

  • 使いやすさ: vLLM は、既存の LLM アプリケーションに簡単に統合できる、シンプルで使いやすい Python API を提供します。 また、Hugging Face Transformers などの一般的な LLM フレームワークもサポートしています。

  • 多様なモデルアーキテクチャのサポート: vLLM は、以下を含むさまざまな一般的な LLM アーキテクチャをサポートしています。

    • Llama 2
    • Llama
    • Mistral
    • MPT
    • Falcon
    • GPT-2
    • GPT-J
    • GPTNeoX
    • その他、モデルは随時追加されています。
  • 分散推論: vLLM は分散推論をサポートしており、複数の GPU にわたって LLM 推論を拡張できます。

  • テンソル並列: テンソル並列をサポートし、分散推論のパフォーマンスをさらに向上させます。

  • ストリーミング出力: vLLM はストリーミング出力をサポートしており、トークンが生成されるとすぐに、シーケンス全体が完了するのを待たずに受信できます。

  • OpenAI API 互換性: vLLM は OpenAI API と互換性のあるサーバーを提供し、OpenAI からの移行や統合を容易にします。

主な利点:

  • より高いスループット: 従来の LLM 推論方法と比較して、vLLM はスループットを大幅に向上させることができ、通常は 10 倍以上向上します。
  • より低いレイテンシ: vLLM はレイテンシを低減し、より迅速な応答時間を提供できます。
  • より低いコスト: GPU 使用率を向上させることで、vLLM は LLM 推論のコストを削減できます。
  • より長いシーケンスのサポート: PagedAttention により、vLLM はメモリを使い果たすことなく、より長いシーケンスを処理できます。
  • 容易なデプロイ: vLLM は、クラウドサーバー、ローカルマシン、エッジデバイスなど、さまざまな環境に簡単にデプロイできます。

インストール:

vLLM は pip を使用してインストールできます。

pip install vllm

クイックスタート:

以下は、vLLM を使用してテキストを生成する簡単な例です。

from vllm import LLM, SamplingParams

# モデルのロード
llm = LLM(model="facebook/opt-125m")

# サンプリングパラメータの定義
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=256)

# テキストの生成
prompts = ["Hello, my name is", "The capital of France is"]
outputs = llm.generate(prompts, sampling_params)

# 出力のプリント
for output in outputs:
    print(output.prompt)
    print(output.outputs[0].text)

ユースケース:

vLLM は、以下を含むさまざまな LLM アプリケーションに適しています。

  • チャットボット: 複雑な会話を処理できる高性能なチャットボットを構築します。
  • テキスト生成: コンテンツ作成、コード生成、要約など、さまざまな目的で高品質のテキストを生成します。
  • 機械翻訳: 高速かつ正確な機械翻訳サービスを提供します。
  • 質疑応答: 複雑な質問に答えることができる質疑応答システムを構築します。
  • コード補完: 高速かつ正確なコード補完の提案を提供します。

貢献:

vLLM はオープンソースプロジェクトであり、コミュニティからの貢献を歓迎します。 問題の提出、機能リクエストの提案、またはプルリクエストの送信を通じて参加できます。

まとめ:

vLLM は、優れたパフォーマンス、使いやすさ、および柔軟性を提供する強力な LLM 推論・サービスエンジンです。 チャットボットの構築、テキストの生成、またはその他の LLM タスクの実行に関係なく、vLLM は効率を向上させ、コストを削減するのに役立ちます。 その PagedAttention メカニズムは、その核となる革新であり、長いシーケンスを処理し、高いスループットを実現することを可能にします。 vLLM を試して、LLM ワークフローをどのように改善できるかを確認することを強くお勧めします。

すべての詳細は、公式サイトで公開されている情報をご確認ください (https://github.com/vllm-project/vllm)