ローカルAI推論のボトルネックを解消するNVIDIA PAIR
最近のマルチエージェントワークフローでは、一つのユーザーリクエストが多数の独立したモデル呼び出しに分解されることが増えています。この際、単一のローカル推論エンジンにそれらの呼び出しが集中すると、実行キューが長くなり、ネットワーク内の他のアイドル状態のデバイスが活用されないというボトルネックが発生していました。NVIDIAが本日発表したPersonal AI Router (PAIR)は、まさにこの問題に対処するために開発された仮想推論ルーターです(出典)。
PAIRは、互換性のあるマシンをホームネットワーク上で検出し、独立した推論リクエストをそれらのマシンにスケジューリングすることで、ローカルAIのボトルネックを解消します。
PAIRは新しい推論エンジンではなく、OllamaやLM Studioといった既存のエンジンが選択されたノードでモデルを実行する仕組みです。Windows、macOS、Linux向けのインストーラーが提供されており、ソースコードはApache 2.0ライセンスでGitHub上で公開されています。インターネット接続はモデルのダウンロード時のみ必要で、それ以外は完全にローカルネットワーク内で動作します。
これは、個人プロダクトでローカルLLMを活用しているエンジニアにとって、非常に魅力的な選択肢ではないでしょうか。自分の手元の複数のGPUを効率的に使って推論速度を上げたい、と考えていた方には朗報だと感じます。
既存APIとの互換性とノード間の通信
PAIRの最も重要な設計思想は、既存のクラスターAPIを導入しない点にあります。OllamaおよびLM Studioと互換性のあるインターフェースをプロキシし、各エンジンが使用するデフォルトポートを引き継ぐ形を取ります。これにより、既存のエージェントハーネスは変更なしでPAIRの恩恵を受けることができます。
エージェントが「何をリクエストするか」を決定し、PAIRが「どこで実行するか」を決定する、という役割分担です。OpenAI互換のプロキシエンドポイントも提供されているため、汎用性も高いと感じます。
ノードの発見にはmDNSが用いられ、手動でIPアドレスを追加することも可能です。ペアリングは6桁のPINコードで行われ、このプロセスが完了するまでノード間の通信はブロックされます。
ペアリングされたノード間のトラフィックは、生成された証明書を用いたmTLSによってセキュアに保たれます。PAIRは、ペアリングされたシステムにエンジンをインストールし、モデルダウンロードを開始することもできるため、クロスデバイスでの初期設定の手間が大幅に削減されるのは嬉しいポイントです。
スケジューリングの仕組みと制限事項
PAIRのスケジューラーは、以下の5つのシグナルを考慮して、各リクエストに最適なノードを選択します。
- ノードがオンラインで準備完了か
- サポートされているエンジンが有効か
- 正確なモデルが存在するか
- 現在のノードおよびエンジンのジョブ負荷
- 既存のGPU使用率
要求されたモデルがノード上に存在し、かつ必要なエンジンが有効な場合にのみ、そのノードはリクエストの対象となります。異なるシステムに異なるモデルを保持できるため、クラスター全体でモデルを同一にする必要はありません。同じモデルが複数のノードにロードされていれば、利用可能なプールが広がるという仕組みです。
ただし、PAIRはVRAMをプールしたり、複数のGPUを一つの大きなアクセラレーターとして結合したり、単一のリクエストを複数マシンにシャーディングしたりはしません。各リクエストは単一の適格なノードに割り当てられ、そのノードで完了します。
これはワークロードレベルの並列処理であり、単一の推論リクエストの処理速度そのものを向上させるものではない点に注意が必要です。例えば、ローカルLLMの推論速度を上げるには、より高性能なGPU(RTX 3090のようなVRAMの多いもの)が必要ですが、PAIRは複数のLLMエージェントが同時に動くような環境で、全体のスループットを向上させるのに貢献すると考えられます。
例えば、Macユーザーにとっても朗報で、M4 MacがNVIDIA RTX PCとローカルAIワークを共有できるようになります(出典)。これにより、Apple Silicon MacとNVIDIA GPUを組み合わせたハイブリッド環境でのAI開発が可能になるのは、非常に面白い展開だと感じます。
主要な特徴をまとめると、以下のようになります。
| 機能 | 説明 |
|---|---|
| 仮想ルーター | ローカルネットワーク内でAI推論リクエストを分散 |
| 互換性 | Ollama、LM Studio、OpenAI互換APIをプロキシ |
| 対応OS | Windows, macOS, Linux |
| ノード検出 | mDNSによる自動検出、IPアドレス指定も可能 |
| セキュリティ | PINによるペアリング、mTLSによるノード間通信暗号化 |
| モデル管理 | モデルを特定のノードにロードし、PAIRが適切なノードにルーティング |
| リソース配分 | ノードの負荷やGPU使用率を考慮してスケジューリング |
| 制限事項 | VRAMプール、GPU結合、単一リクエストのシャーディングは不可 |