vLLM とは

URL をコピー

vLLM とは、仮想大規模言語モデルの略で、vLLM コミュニティによって維持管理されているオープンソースコードのライブラリです。vLLM は大規模言語モデル (LLM) がより効率的かつ大規模に計算を行う上で役立ちます。

vLLM には、推論サーバー (ネットワークトラフィックを管理する) と推論エンジン (計算速度を最大化する) の両方が含まれています。これは、PagedAttention アルゴリズムを通じて GPU メモリをより有効に活用することで、生成 AI アプリケーションの出力を高速化する仕組みです。 

vLLM の全体的な目標は、スループット (1 秒あたりに処理されるトークン数) を最大化して、多くのユーザーに同時にサービスを提供することです。 

Red Hat AI の詳細

vLLM の価値を理解するためには、まずは推論サーバーが何を行うのか、そして、LLM が動作する基本的な仕組みを理解することが重要です。これらを理解しておくことで、既存の言語モデルのパフォーマンスを向上させるために vLLM がどのような役割を果たすかがよくわかります。

vLLM Office Hours で最新情報を確認する

推論サーバーとは

推論サーバーとは、AI モデルが過去のトレーニングに基づいて新しい結論を導き出すのを支援するソフトウェアです。推論サーバーは、入力リクエストを機械学習モデルに送り、出力を返します。

推論とは、証拠に基づいて結論を導き出すことです。たとえば、友人の家のリビングルームに明かりがついているものの、友人の姿は見当たらないとします。あなたは友人が家にいると推測できます。しかし、それを証明する絶対的な証拠はありません。

言語モデルも単語やフレーズの意味について絶対的な証拠は持っていません (言語モデルはソフトウェアです)。そこで、トレーニングを証拠として使用します。モデルはデータに基づく一連の計算を通じて結論を導き出します。これはあなたが、明かりが消えていることは友人が外出していることを意味する、と推測するのと同じです。

AI 推論の詳細はこちら

LLM は結論を導き出すために数学を使用

LLM はトレーニング中に、数学的計算を通じて学習します。また LLM が回答 (推論) を生成するときも、(より数学的な) 一連の確率計算が行われます。

LLM がユーザーの要求を理解するためには、単語同士がどのように関係しており、単語間の関連付けをどのように行うかを、モデルが理解している必要があります。人間のように意味を学習し、言葉を使って推論する代わりに、LLM による「論理的思考」では (ご想像どおり) 数学が使用されます。

LLM が 1 日数百万人ものユーザーに対応する場合、実行される計算の量は膨大です。アプリケーションの稼働中に、これらの計算をすべて即座に処理するのは困難です。これは (従来の手法では)、LLM の稼働に必要な処理能力により、大量のメモリが急速に消費されてしまうためです。

vLLM アーキテクチャのアップグレードを通じて、メモリや速度といったリソース効率を継続的に改善します。

エンタープライズにおける AI とは

Red Hat AI

画期的な研究である「PagedAttention による大規模言語モデルの効率的なメモリ管理」は、既存の LLM メモリ管理システムでは計算を最も効率的な方法で整理できていないことを指摘しています。PagedAttention は、vLLM により導入されたメモリ管理手法で、オペレーティングシステム内の仮想メモリとページングシステムから着想を得ています。

この研究では、スループット中にキー値 (KV) キャッシュ (LLM の短期メモリ) がどのように拡大縮小するかを把握した上で、より安定した方法でメモリ空間と演算能力を管理するためのソリューションとして vLLM を提案しています。

本質的に vLLM は、ユーザーの応答を連続的に「バッチ処理」することでショートカットを作成するよう KV キャッシュに促す、一連の命令として機能します。

先に進む前に、KV キャッシュおよび連続バッチ処理とは何かを簡単に定義しておきましょう。

KV キャッシュとは

KV はキー値 (Key Value) の略語です。キー値とは、LLM が単語やフレーズの意味を定式化する方法を指します。たとえば、あるメニュー表の項目で、フライドポテト (キー) が 3.99 ドル (値) であるとします。店員がフライドポテトの注文をレジに通すと、その「キー」の「値」は 3.99 ドルで計算されます。LLM による KV の処理では、同じように、各キー (トークン) に対応する値がキャッシュに保持されています。

キャッシュとは、短期的なメモリストレージを指します。パソコンを思い浮かべてください。動作が遅くなってきた場合は、多くの人が、処理を高速化するために「キャッシュをクリア」しているはずです。

連続バッチ処理とは

連続バッチ処理は、全体的な処理効率を向上させるために、複数のクエリを同時に処理する手法です。

想像してみてください。あるチャットボットは毎分数千件ものクエリを受け取りますが、その多くは「インドの首都はどこか」、「アイルランドの首都はどこか」といった類似した内容です。どちらのクエリにも「の首都はどこか」という語が含まれており、これは LLM が意味を生成するために多くの計算を行わなければならないトークン文字列 (単語) です。

vLLM を使用する場合、チャットボットはこのトークン文字列 (「の首都はどこか」) を短期メモリ (KV キャッシュ) に保持でき、2 つの個別の「変換要求」ではなく、1 つの要求のみを送信します。

言い換えれば、vLLM を使用すると、まったく新しい回答を生成する代わりに、KV キャッシュに記憶を保持しておき、以前に行った計算と類似した新しいクエリのためのショートカットを作成できます。類似するクエリの計算を (個別にではなく) まとめて行うことで、スループットが向上し、メモリ割り当てが最適化されます。 

vLLM を利用したメモリの最適化とトークン容量の拡張によって、より大きなバッチサイズや長文コンテキストタスクに対応できます。

Models-as-a-Service とは

vLLM は、LLM ベースのアプリケーションに必要なハードウェアの価格が市場で高騰する中、組織が「少ないコストでより多くを達成する」ことを可能にします。

コスト効率に優れた信頼性の高い LLM サービスを構築するには、膨大な演算能力、エネルギー資源、そして専門的な運用スキルが必要です。これらの課題は、カスタマイズされ、すぐにデプロイでき、よりセキュリティが重視された AI のメリットを、多くの組織にとって手の届かないものにしてしまいます。

vLLM と、その基盤となるアルゴリズムである PagedAttention は、AI ワークロードをサポートするために必要なハードウェアの使用を効率化することで、これらの課題に対処することを目指しています。

vLLM のメリット

vLLM を LLM 用の推論サーバーとして使用すると、次のようなメリットを得られます。

応答時間の短縮:ある試算によると、vLLM は、LLM を操作するための人気の高いオープンソース・ライブラリである Hugging Face Transformers と比較して、最大 24 倍のスループット (LLM が処理可能なデータ量) を達成できます。

ハードウェアコストの削減:リソースをより効率的に使用することで、LLM の処理に必要な GPU が減少します。極めて大規模な LLM (数千億ものパラメーターを持つもの) を使用している組織にとって、vLLM は効率の維持に役立ちます。具体的には、vLLM を分散推論などの手法と併用することで、既存のハードウェアを最大限に活用し、コストを削減できます。 

スケーラビリティ:vLLM は仮想メモリを整理し、GPU がユーザーからの同時リクエストをより多く処理できるようにします。これは、1 つのマルチステップタスクを完了するために多数の同時リクエストを処理する必要があるエージェント型 AI アプリケーションで特に重要です。

データプライバシー:vLLM を使用して LLM をセルフホスティングすると、ChatGPT のようなサードパーティの LLM サービスやアプリケーションを利用する場合と比較して、データプライバシーや使用方法をより細かく制御できます。

オープンソース・イノベーション:vLLM の維持管理にコミュニティが関与しているため、コードの一貫した改善が可能になります。ユーザーがコードにアクセスして修正する仕組みに透明性があり、開発者はニーズに合わせて vLLM を自由に使用できます。 

vLLM を使って Llama をデプロイする方法を見る

PagedAttention は、vLLM から生まれた主要なアルゴリズムです。ただし、PagedAttention は vLLM が提供する唯一の機能ではありません。vLLM が提供するその他のパフォーマンス最適化機能には、以下のようなものがあります。

  • PyTorch Compile/CUDA Graph - GPU メモリを最適化します。
  • 量子化 - モデルの実行に必要なメモリ容量を削減します。
  • テンソル並列処理 - 複数の GPU 間で処理を分散させます。
  • 投機的デコーディング - トークンの予測に小さいモデルを使用し、予測の検証に大きいモデルを使用することで、テキスト生成を高速化します。
  • Flash Attention - Transformer モデルの効率を改善します。

vLLM が提供する最適化機能に加えて、その柔軟性も vLLM の人気を後押ししています。vLLM は、小規模および大規模の言語モデルの両方に対応しており、人気の高いモデルやフレームワークとの統合も可能です。さらに vLLM のオープンソースの性質が、コードの透明性、柔軟なカスタマイズ、迅速なバグ修正に寄与しています。 

vLLM がどのようにオープンソース・コミュニティの推論を支えているのかを見る

vLLM と llm-d 

llm-d は、vLLM の能力を統合し、拡張するオープンソース・フレームワークです。これは、分散推論を実行するためのレシピであり、LLM のリソース需要の増大に対応できるように構築されました。 

これらの関係を次のように考えてみてください。vLLM は速度の向上に役立つのに対し、llm-d は調整に役立ちます。vLLM と llm-d は連携して、モデル内でのトラフィックをインテリジェントにルーティングし、処理を可能な限り迅速かつ効率的に行います。 

llm-d の詳細はこちら

Red Hat® AI は、大規模なエンタープライズ AI の課題に対応するためにオープンソースのイノベーションを活用しており、vLLM は Red Hat のツールボックスに欠かせないツールです。

Red Hat AI を使用すると、Red Hat® AI Inference Server にアクセスしてハイブリッドクラウド全体でモデル推論を最適化し、より迅速でコスト効率の高いデプロイメントを実現できます。vLLM を搭載した推論サーバーは、GPU の使用率を最大化し、応答時間を短縮します。

Red Hat AI Inference Server の詳細

Red Hat AI Inference Server には Red Hat AI リポジトリが含まれています。これは、サードパーティによって検証および最適化されたモデルのコレクションであり、モデルの柔軟性を実現し、チーム間の一貫性を促進します。サードパーティのモデルリポジトリにアクセスすることで、企業は市場投入時間を短縮し、AI の成功に対する財務上の障壁を減らすことができます。  

Hugging Face のリポジトリを確認する

Red Hat AI による検証済みモデルの詳細を見る

Red Hat AI は、さまざまなインフラストラクチャにわたるパフォーマンス、安定性、GPU サポートに重点を置いた、オープンソース・テクノロジーおよびパートナーエコシステムに支えられています。

Red Hat のパートナーエコシステムを見る

リソース

エンタープライズ AI を始める:初心者向けガイド

この初心者向けガイドでは、Red Hat OpenShift AI と Red Hat Enterprise Linux AI によって AI 導入をどのように加速できるのかについて説明します。

Red Hat AI

Red Hat AI は、ハイブリッドクラウド環境全体にわたって AI ソリューションの開発とデプロイメントを加速する、柔軟でコスト効率に優れたソリューションを提供します。

関連情報

小規模言語モデル (SLM) と大規模言語モデル (LLM) の違いとは?

小規模言語モデル(SLM)は、大規模言語モデル(LLM)よりもパラメーター数が少なく、軽量で効率的に動作するモデルで、専門的な知識を備え、より迅速にカスタマイズできます。

Granite モデルとは?をわかりやすく解説

Graniteモデルとは、IBMがビジネス用途向けに開発した、大規模言語モデル(LLM)のシリーズ。Apache 2.0ライセンスの下で提供されており、無料で使用、修正、配布できます。

分散推論とは

分散推論では、相互接続されたデバイスのグループに対して推論の労力が分割されるため、AI モデルでワークロードをより効率的に処理できます。

AI/MLリソース

注目の製品

  • Red Hat OpenShift AI

    モデルと AI 対応アプリケーションを迅速に開発、トレーニング、提供、監視するツールを提供する人工知能 (AI) プラットフォーム。

関連記事