「vLLMに会ってください:高速LLM推論とサービスのためのオープンソース機械学習ライブラリ」

vLLM Open-source ML library for fast LLM inference and services

大規模な言語モデル(LLM)は、プログラミングアシスタントやユニバーサルチャットボットなどの新しいアプリケーションを可能にするため、日常生活やキャリアにますます大きな影響を与えています。しかし、これらのアプリケーションの動作は、GPUなどの重要なハードウェアアクセラレータの要件による重要なコストがかかります。最近の研究によると、LLMのリクエストの処理は、従来のキーワード検索と比較して、10倍以上高価になることが示されています。そのため、LLMのサービングシステムのスループットを向上させ、リクエストごとの費用を最小限に抑える必要性が高まっています。

大規模な言語モデル(LLM)の高スループットなサービスを実行するには、一度に十分な数のリクエストをバッチ処理する必要があります。ただし、既存のシステムは支援が必要です。各リクエストのキーバリューキャッシュ(KVキャッシュ)メモリは非常に大きく、動的に成長および縮小する可能性があります。このメモリは慎重に管理する必要があります。効率的に管理されていない場合、断片化や冗長な重複により、このRAMを大幅に節約し、バッチサイズを減らすことができます。

研究者たちは、この問題の解決策として、オペレーティングシステムの伝統的な仮想メモリとページング技術に着想を得たアテンションアルゴリズム「PagedAttention」を提案しています。メモリの利用をさらに削減するために、研究者たちはvLLMも展開しています。このLLMサービスは、ほぼゼロのKVキャッシュメモリの無駄を生じず、リクエスト内およびリクエスト間でのKVキャッシュの柔軟な共有を提供します。

vLLMは、PagedAttentionを使用してアテンションキーとバリューを管理します。モデルアーキテクチャの変更を必要とせずに、HuggingFace Transformersよりも最大24倍のスループットを提供するvLLMは、LLMサービスの現在の最先端を再定義します。

従来のアテンションアルゴリズムとは異なり、PagedAttentionでは、連続したメモリ空間にキーと値を格納することができます。PagedAttentionは、各シーケンスのKVキャッシュをブロックに分割し、予め定められたトークンの数に対応するキーと値を含んでいます。これらのブロックは、アテンション計算中にPagedAttentionカーネルによって効率的に識別されます。ブロックは必ずしも連続する必要がないため、キーと値を柔軟に管理することができます。

PagedAttention内のシーケンスの最後のブロックのみでメモリリークが発生します。実際の使用では、これにより効果的なメモリ利用が可能となり、わずか4%の非効率性しか生じません。このメモリ効率の向上により、GPUの利用率を高めることができます。

また、PagedAttentionには効率的なメモリ共有のもう一つの利点があります。PagedAttentionのメモリ共有機能は、並列サンプリングやビームサーチなどのサンプリング技術に必要な追加メモリを大幅に削減します。これにより、メモリ利用率を最大55%削減しながら、スピードを最大2.2倍向上させることができます。この改善により、これらのサンプル技術は大規模言語モデル(LLM)サービスにおいて有用で効果的なものとなります。

研究者たちは、このシステムの精度を研究しました。彼らは、FasterTransformerやOrcaなどの最先端のシステムと同じ遅延時間で、vLLMが有名なLLMのスループットを2〜4倍増加させることを発見しました。より大きなモデル、より複雑なデコーディングアルゴリズム、およびより長いシーケンスは、より顕著な改善をもたらします。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

「LangChainエージェントを使用してLLMをスーパーチャージする方法」

「LangChainエージェントを使用すると、アプリケーション内でLarge Language Modelを拡張し、外部の情報源にアクセスしたり、...

人工知能

トップ10の生成AI 3Dオブジェクトジェネレーター

高性能なAI 3Dオブジェクトジェネレータにより、3Dモデルの作成と可視化がより正確かつアクセスしやすく効率的になりました。...

データサイエンス

データから洞察力へ:KubernetesによるAI/MLの活用

「KubernetesがAI/MLと連携することで、AI/MLのワークロードに対して細粒度の制御、セキュリティ、弾力性を提供する方法を発...

人工知能

「Unblock Your Software Engineers With Unblocked(アンブロックドでソフトウェアエンジニアを活用しましょう)」

「AIは、私たちのフィールドでますます重要な役割を果たしており、私たち開発者の生産性を大きく向上させる能力を持っていま...

機械学習

「ReactJSとChatGPT:ウェブアプリに対話型AIを構築する方法」

Kono burogu de wa, ChatGPT o ReactJS apurikēshon ni tōgō suru koto no kanōsei to riten, soshite sore o okonau hōhō ni...

人工知能

プロンプトエンジニアリング:AIを騙して問題を解決する方法

「これは、実践的な大規模言語モデル(LLM)の使用に関するシリーズの第4回目の記事ですここでは、プロンプトエンジニアリン...