分散推論とは
分散推論では、相互接続されたデバイスのグループに対して推論の労力が分割されるため、AI モデルでワークロードをより効率的に処理できます。これは、「人手が多ければ仕事は楽になる」ということわざどおりのソフトウェアです。
分散推論は、物理サーバーやクラウドサーバーなどからなる多数のハードウェアにリクエストを分割する仕組みをサポートします。分割後、各推論サーバーは割り当てられた部分を並行して処理し、出力を作成します。これにより、AI を活用した一貫性のあるスケーラブルなサービスを提供する、回復力と可観測性のあるシステムが実現します。
ディナーパーティに例えてみると
10 人が参加するディナーパーティを開催するとしましょう。前菜、サラダ、メインディッシュ、デザートを提供する、4 品のコースを用意したいと考えています。しかし、料理の準備時間はわずか 2 時間しかありません。自分だけでやり遂げるのはほぼ不可能です。最終的な成果物 (食事の品質) が損なわれたり、スピードが遅くなって間に合わなくなったりする可能性があります。
この問題を解決するために、何人かの友人に協力を依頼し、各自の専門知識に基づいてコースを割り当てます。たとえば、あまり料理をしない友人にはサラダを作ってもらい、料理学校出身の友人には複雑なメインディッシュを作ってもらいます。各自のスキルを利用して、個々のタスクを同時に処理することで、時間までにおいしい食事を提供することができます。
このディナーパーティの例えでは、友人が協力して働くという行為が分散推論であり、各コースがリクエスト、各友人が異なる種類の推論サーバーとなります。
分散推論によるスピードアップ、スケーリング、コスト削減
AI モデルは高度化するにつれて大規模化します。たとえば、大規模言語モデル (LLM) には数千億ものパラメーターが含まれることがあります。パラメーターは LLM の言語理解を形成します。つまり、モデルのパラメーターが多いほど、モデルが実行できるタスクの複雑さが増し、精度が向上します。
一部の AI モデル (6,710 億個のパラメーターを持つ DeepSeek など) は、単純に大きすぎて 1 つのグラフィックス・プロセッシング・ユニット (GPU) では対応できません。そのようなモデルを運用するには、分散推論などの手助けが必要です。
モデルのパラメーター数が増えると、必要なハードウェアリソースも増えます。
そのような巨大なモデルを保存し、推論の計算を実行するには、大量のメモリーと高い処理能力が必要です。この課題に対処するには、以下のようないくつかの手法があります。
- サーバーに GPU を追加して、既存のマシンをより強力にする: GPU が多いほど、処理能力も高くなります。とはいえ、GPU は高価です。また、単一障害点が発生するリスクもあります。つまり、あるインスタンス (推論アプリケーションのコピー) に障害が発生した場合、システム全体に影響が及ぶ可能性があります。
- モデルの量子化によって、モデルをより軽量にする: この最適化手法により、モデルのパラメーターが単純化されます。この手法では、パラメーターの数値の精度を下げることでモデルの規模を全体的に縮小します。モデルの量子化は分散推論よりも実装が複雑ではないため、大規模なモデルの処理を最適化するために Red Hat が第一に推奨する戦略です。
- 分散推論でよりコラボレーティブなワークロード分散を促進して既存のハードウェアを効率化する:このアプローチにより、エンタープライズレベルの要求を満たすために必要なスピード、信頼性、規模を実現できます。分散推論は、モデル量子化に追加する戦略として使用できます。
推論サーバーとは
推論サーバーとは、AI モデルが過去のトレーニングに基づいて新しい結論を導き出すのを支援する基本的なソフトウェアです。推論サーバーは、入力リクエスト (検索クエリやプロンプトなど) を機械学習モデルに送り、出力を返します。
推論とは、証拠に基づいて結論を導き出すことです。たとえば、友人の家のリビングルームに明かりがついているものの、友人の姿は見当たらないとします。この場合、あなたは友人が家にいると推測できます。しかし、その絶対的な証拠はありません。
言語モデルも単語やフレーズの意味について絶対的な証拠は持っていません。言語モデルはソフトウェアであるため、トレーニングに依存しています。モデルはデータに基づく一連の計算を通じて結論を導き出します。
AI テクノロジーの導入に関する 4 つのキーポイント
分散推論の仕組み
分散推論は AI モデルにとって、AI ワークロードのための頭脳として機能する単一のインテリジェントなコーディネーターとなります。新たなリクエストがあった場合、分散推論はそのリクエストを分析し、ジョブに最も適したハードウェアシステムにルーティングします (ディナーパーティの例えを思い出してください)。
大規模なモデル、多すぎるユーザー、またはレイテンシーの問題は、いずれもパフォーマンスを妨げる要因となります。障害の原因となっている問題に応じて、分散推論にはいくつかの戦略があります。
- モデルの分割: モデルが大きすぎて 1 つの GPU では処理できない場合、分散推論ではモデルの並列処理を使用してモデルを複数の GPU に分割します。
- データの分割: 多数のユーザーを同時に処理するために、データの並列処理とインテリジェントな負荷分散を使用して、入力データを複数のサーバーに分割します。これにより、同時リクエストが効率的に管理されます。
- 推論プロセスの分割: ワークフロー全体を最適化するために、プロセスのディスアグリゲーションを使用します。これにより、推論の応答 (プリフィルとデコード) を作成する 2 つの計算フェーズに分割され、それぞれが別個の環境で実行されます。
インテリジェントな推論スケジューリング
分散推論には、タスクを完了するために情報を調整して転送する方法を理解しているコントロールプレーンまたはスケジューラーが必要です。インテリジェントなスケジューリングは、この調整の実現を支援するために、分散推論システム内で継続的に実行されるプロセスです。
インテリジェントなスケジューリングは、プロジェクトマネージャーのようなものです。リクエストを次のサーバーに続けて送信するだけではなく、以下のことを考慮します。
- リクエストに関連する情報がすでにキャッシュされているサーバーはどれか。
- リクエストを処理できるサーバーはどれか。
- リクエストされたタスクを完了するのに最適なサーバーはどれか。
インテリジェントなスケジューリングはソフトウェア・アルゴリズムによって実装され、推論中に機能してデータの流れを最適化します。
プリフィルとデコードのディスアグリゲーション
クエリに対する応答の生成には、プリフィルとデコードの 2 つのフェーズが必要です。ユーザークエリをこれらのフェーズに分離することで、分散システムは各部分を最も適切なハードウェアに割り当てることができ、効率を向上させることができます。
プリフィル (または KV キャッシュのプリフィル) とは、モデルがユーザーのプロンプトを処理する最初のステップであり、コンピュート負荷が高くなります。このフェーズは、モデルがクエリを「読み取り」、「理解」を形成する段階と言えます。
デコードは後続の段階で、モデルが応答をトークンごとに生成するステップであり、メモリーを大量に消費します。このフェーズでは、モデルが KV キャッシュに到達し、クエリに関連していると判断された保存済みの情報を収集します。
プリフィルフェーズをデコードフェーズから分離すると、システムはリソースをより効率的にスケジュールできます。これらをまとめるには、KV キャッシュと呼ばれるものが必要です。
KV キャッシュとは
KV はキー値 (Key Value) の略語です。キー値とは、LLM が単語やフレーズの意味を定式化する方法を指します。たとえば、メニューにある品目のキー値を処理するとします。フライドポテト (キー) の価格は 3.99 米ドル (値) です。店員がフライドポテトの注文をレジに通すと、その「キー」の「値」は 3.99 ドルで計算されます。LLM による KV の処理では、同じように、各キー (トークン) に対応する値がキャッシュに保持されています。
キャッシュとは、短期的なメモリーストレージを指します。パソコンの場合、動作が遅くなってきたら、キャッシュをクリアして処理を高速化しようとするでしょう。
KV キャッシュがあると、モデルは以前に生成した単語を記憶して次の単語のコンテキストを生成することができるため、最終的に処理速度が向上します。KV キャッシュがなければ、モデルはクエリを単語ごとに再処理する必要があります。
vLLM による分散推論
vLLM が実行する主なタスクは、KV キャッシュ内での効率化の実現です。
vLLM は、GPU がタスクを分散し、並行して動作できるようにする、ソフトウェアの「頭脳」です。vLLM は一連の命令として機能し、ユーザーの応答を連続的にバッチ処理して KV キャッシュでショートカットを作成できるようにします。
vLLM によるモデル並列処理
GPU にとって大きすぎるモデルの場合は、テンソル並列処理、パイプライン並列処理、Mixture of Experts (MoE)、またはこれら 3 つすべての組み合わせを使用できます。
テンソル並列処理:1 つの大きなタスクを小さな同一のピースに分割し、GPU 群がタスクに取り組みます。この場合、vLLM はコーディネーターとして機能し、すべてのシステム要素を同期させるために必要な継続的な通信を調整します。
パイプライン並列処理: 組み立てラインと同様に、パイプライン並列処理はタスクを連続するステージに分割します。あるステージから別のステージへと進みながら、タスクが完了するまで処理が行われます。パイプライン並列処理により、複数のサーバーを連結して 1 つのモデルを実行できます。そうすることで、メモリーストアにロードするには大きすぎるモデルに対応します。この場合、vLLM がそのような組み立てラインを管理し、ステップを分析して、各ステージが完了するごとにタスクが次のサーバーへと移動していくようにします。
Mixture of Experts (MoE): この場合の「Experts (エキスパート)」は、特定の種類の入力を処理するようにトレーニングされた、モデルの専門化された要素です。このアーキテクチャ内では、ゲーティング・ネットワークと呼ばれるものが、モデルの最適に機能する部分にタスクをルーティングして、より速く正確な結果を得られるようにします。vLLM の組み込みのゲーティング・ネットワークは、受信した各リクエストを読み取り、リクエストを処理できるモデルの部分をアクティブ化することで、これをオーケストレーションします。
vLLM によるデータ並列処理
一度にサービスを多数のユーザーに提供するには、データ並列処理の技術を使用できます。データ並列処理では、モデルではなく入力データ (ワークロードリクエスト) を分割します。
データ並列処理は、多数のタスクの作業をサーバー群全体に分散させるコンピューティング技法です。これは、各 GPU にモデルのコピーを配置し、タスクをサーバー群で分割してリクエストを並列実行することで機能します。
ある AI アプリケーションで 1,000 人のユーザーが同時に LLM にクエリを実行しているとします。データ並列処理は、LLM のコピーを 10 台のサーバーに配置し、各サーバーに 100 個のリクエストを渡します。ワークロードを小さなバッチに分割することで、アプリケーションはより多くのリクエストを最小限の遅延で処理できます。
vLLM はパフォーマンス強化としてこの構成に加わり、さらに迅速で効率的な処理のための環境を作り出します。
llm-d とは
llm-d は、分散大規模言語モデル向けのオープンソース・フレームワークです。オープンソース・フレームワークは、開発者が自由に使用、変更、配布できる、公開済みで事前に作成されたコードとツールの集合です。
llm-d は明確な道筋を標準化したもので、大規模な分散推論を構築するためのブループリントです。レイアウト、通信技法、トレーニングマニュアルを提供し、組織が分散アーキテクチャを構築する際に従うべき手順付きのガイドとなります。
手作業による断片化したプロセスが統合された明確な道筋に置き換えられるため、企業はより迅速にデプロイとスケーリングを行うことができ、パイロットからプロダクションまでの時間が短縮されます。
インストールは Helm チャートに基づいており、使い慣れたカスタマイズ可能な手順で実行できます。クイックスタート用のコマンドライン・インタフェース (CLI) により、依存関係、前提条件、可観測性機能を含めたデプロイを簡単に実行できます。
llm-d は、vLLM を拡張し、vLLM と相互運用するように構築されており、Red Hat® OpenShift® を含むあらゆる Kubernetes クラスタ上で実行されます。
分散推論の課題
分散推論は AI システムの処理を高速化し、大規模な拡張を可能にしますが、これらのタスクを完了するために複雑な連携が伴います。留意すべき課題には次のようなものがあります。
レイテンシーと帯域幅
分散推論では、モデルとリクエストの処理を、異なる場所にある複数のサーバーやデバイスに分散させます。つまり、ユーザーに出力されるまでに情報とデータは長い道のりをたどります。サーバー間のネットワーク接続が遅かったり、輻輳していたりすると、プロセスの速度が低下し、渋滞に巻き込まれた車のようになります。
リソース割り当ての非効率性
過負荷になるサーバーと使用されないままのサーバーが生じないように、サーバー間における推論の分散バランスを取ることが重要です。
障害復旧
演劇における代役のように、バックアップの計画を用意しておくことが重要です。分散システムでは、接続が中断したり、サーバーに障害が発生したり、データセンターがオフラインになったりする可能性があります。システムのある部分がダウンしたら別の部分でその処理を引き継げるようにする必要があります。
デバッグとトラブルシューティングの複雑さ
分散推論で使用されるような相互接続されたサーバーは、切り離されている場合よりも高速かつ効率的に動作できます。しかし、相互に接続されているという性質により、問題の根本原因を見つけることが困難になるという欠点があります。これは、頭痛の原因を診断しようとするのに似ています。
同期オーバーヘッド
300 人と電話会議をしているとします。この場合、システムは動画と音声にリアルタイムで対応するために、通常以上に処理を行う必要があります。時には、誰か 1 人の動画がフリーズしたり音声が遅れたりすることがあります。このような同期調整は処理が非常に多く、高機能のインフラストラクチャが必要です。
モデルの管理とデプロイメント
モデルを更新する準備ができましたか?分散推論で変更を展開するには、戦略とエキスパートによる慎重なオーケストレーションが必要です。これらは、複雑で時間がかかる可能性があります。
コスト管理
分散システムのコスト・アーキテクチャは、単一のコンピュータよりも複雑です。このコストは、使用パターン、拠点間のデータ転送、スケーリングのニーズに応じて変動する可能性があります。理想的なパフォーマンス、レジリエンシー、効果的なコスト管理を実現するには、メトリクスベースのアプローチを確立することが重要です。
セキュリティ
サーバーを複数の場所に分散させることは、複数の場所を保護するための対策を講じる必要があることを意味します。通信の暗号化、アクセス制御の管理、攻撃に対する防御が必要であり、このすべてに専門知識が必要です。
分散推論のメリット
分散推論により、LLM をより広範なアプリケーションに適用できます。これは、単一のハードウェアでモデルを実行する際のサイズと速度の制限が、分散推論では軽減されるためです。その結果、分散推論によってレイテンシー (遅延) が短縮され、帯域幅 (キャパシティ) が増加するため、既存のインフラストラクチャで多様なユースケースをサポートできます。
一貫性のある予測可能なパフォーマンス
多くの場合、従来の AI 推論は「ブラックボックス」であり、予測不能な応答時間やユーザーエクスペリエンスの低下が生じる可能性があります。分散推論では、インテリジェントなスケジューリングによって受信リクエストを分析し、最適なハードウェアにルーティングできます。これにより、より信頼性が高く安定したユーザーエクスペリエンスが実現します。
コスト管理
コストは分散推論の課題となり得る一方で、メリットにもなり得ます。モデルが大規模になるにつれて、GPU などの高価なハードウェア・アクセラレーターの必要性も高まります。分散推論は、適切に管理されていれば、ハードウェアを可能な限り効率的に使用することで、コスト削減に貢献します。
可観測性の強化
生成 AI モデルがパイロットからプロダクションに移行すると、AI サービスの健全性、パフォーマンス、コストを監視することが新たな課題となります。分散推論によって可観測性の高いシステムが提供されるため、トークン処理からレイテンシーやスループットまで AI ワークロードをプロアクティブに監視できます。この可視性により、ボトルネックの特定や問題のトラブルシューティングが可能になるため、予測可能なパフォーマンスを維持し、コストを制御することができます。
プライバシー規定
一般データ保護規則 (GDPR) やカリフォルニア州消費者プライバシー法 (CCPA) などのデータプライバシー法により、個人データの収集と転送に関する厳格な規則が施行されています。分散推論はデータをローカルで処理し、データの機密性のない部分のみを中央サーバーに送信することで、これらの規制に準拠しています。個人データが特定の地理的範囲内に保持され、データ主権が維持されます。
データの局所性
分散推論では推論プロセス (計算) が多数のサーバーに送られますが、データはローカルに維持されます。データを遠隔サーバーに送信するのではなく、データが作成されたその場所で処理できるため、アプリケーションの動作が高速化されます。
Red Hat でできること
Red Hat AI は、製品のプラットフォームであり、オープンソース・テクノロジーを使用して大規模なエンタープライズ AI の課題に対処します。分散推論は Red Hat のツールボックスに欠かせないツールです。
Red Hat AI の一部である Red Hat OpenShift AI は、エンタープライズグレード版の vLLM を通じた分散型サービスであり、推論コストの管理を支援します。また、デプロイメントを自動化するための高度なツールを利用でき、モデル、ツール、リソースにセルフサービスでアクセスできるため、運用の複雑さが軽減されます。
すべての Red Hat AI 製品は、あらゆるハードウェア・プラットフォームやハイブリッドクラウド環境において、AI モデルを大規模に構築、デプロイ、実行できるよう、柔軟性と一貫性を提供します。
AI 推論とは何か
AI 推論とは、AI モデルがデータに基づいて答えを導き出すことです。これは機械学習テクノロジーの複雑なプロセスにおける最終ステップです。