9月4日(日本時間9月5日)、MarkTechPostが「NVIDIA Releases Personal AI Router (PAIR): An Open Source Virtual Inference Router that Distributes Local AI Requests Across RTX, DGX Spark, and Mac Nodes」と題した記事を公開した。この記事では、NVIDIAがローカルネットワーク上の複数マシンにAI推論リクエストを分散するオープンソースの仮想推論ルーター「PAIR」を公開したことについて詳しく紹介されている。
既存の推論エンジンをそのまま使える設計が肝
マルチエージェント構成でローカル推論を動かすと、リクエストが一台のマシンに集中してキューが詰まる。隣のワークステーションやノートPCが遊んでいるのに、だ。ローカルLLMの分散推論はこれまで、vLLMのようなサーバー向けフレームワークやllama.cppのRPC機能など、セットアップの手間が大きい手段に限られていた。一般ユーザーが手元の複数PCをそのまま束ねる仕組みは事実上なかった、というのが現状だ。**NVIDIA Personal AI Router(PAIR)**はこのボトルネックを解消するツールである。
最も重要な設計判断は、PAIRが新たなクラスターAPIを一切導入しない点だ。既存のOllamaおよびLM Studioが使うデフォルトポートをそのまま引き継ぎ、プロキシとして振る舞う。またOpenAI互換のエンドポイントも提供する。エージェント側のコードは変更不要で、リクエストの送り先がPAIRに差し替わるだけだ。モデルの実行はあくまでOllamaやLM Studioが担う。
ノード選択のロジック
PAIRはmDNS(Multicast DNS:ルーターなしでローカルネットワーク上のデバイスを名前解決する仕組み)でローカルネットワーク上のマシンを自動検出する。検出に失敗した場合はIPアドレスで手動追加も可能だ。接続の信頼確立には6桁のPINを使い、ペアリング完了後のノード間通信は自動生成した証明書によるmTLS(相互TLS認証)で保護される。
スケジューラーがリクエストを割り当てる際に参照する条件は5つだ。
- ノードがオンラインかつ準備完了であること
- 対応する推論エンジンが有効になっていること
- リクエストされたモデルが完全一致で存在すること
- 現在のノード・エンジンのジョブ負荷
- GPUの現在の使用率
重要な制約として、PAIRは1リクエストを1ノードに割り当てる。複数GPUのVRAMをプールしたり、1つのリクエストを複数マシンに分散したりする機能は持たない。同じモデルを複数ノードに配置することで、並列処理できるリクエスト数が増える仕組みだ。
デモの実測値
NVIDIAが公開したデモでは、5つのサブエージェントを生成するマルチエージェントワークフローを**Qwen 3.6 35B A3B(Qwen 3世代のMixture-of-Experts構成モデル)で実行している。ワークフローの実行環境にはHermes Desktop**(NVIDIAが提供するローカルAIエージェントフレームワーク。詳細はこちら)を使用した。
- RTX Sparkノート1台のみ:平均18分
- RTX Sparkノート+DGX Spark+RTX 5090の3台クラスター:平均8分48秒
なおDGX SparkはNVIDIAのデスクトップ向け小型AIコンピューター、RTX SparkはRTX GPU搭載のコンパクトノートPCを指す。半分以下の時間に短縮されている。ただしこれはNVIDIAによるデモ環境での非公式な数値であり、実環境での再現性は構成次第だ。
対応ハードウェアと提供形態
対応GPUはGeForce RTX 20シリーズ以降、RTX PROワークステーション(Turingアーキテクチャ以降)、DGX Spark、そしてApple M4以降のシリコン。WindowsとmacOS、LinuxのノードをOS混在で組み合わせられる点は実用上の強みだ。x64とarm64をサポートし、Windows on ARMは実験的対応となっている。推奨スペックはRAM 8GB以上、ディスク20GB以上。
現在はパブリックベータ(v0.1.1)として公開中で、Windows・macOS・Linux向けの署名済みインストーラーを提供している。ソースコードはGitHubにてApache 2.0ライセンスで公開されている。動作にインターネット接続が必要なのはモデルのダウンロード時のみで、推論はすべてローカルで完結する。
現時点の限界
ベータ版であるため、スケジューリングポリシーは現状1種類のみだ。VRAMの容量やGPUのクラス、モデルがすでにウォームアップ済みかどうかは考慮されない。実際の運用では、モデルを適切なノードに事前配置するといった手作業も必要になる場面があるだろう。
また前述の通り、1リクエストを複数ノードに跨がって分散処理する機能は持たない。大規模モデルを複数台のVRAMにまたがってテンソル並列実行したい場合は、引き続きvLLMやllama.cppのRPCバックエンドといった別の手段を検討する必要がある。PAIRはあくまで「複数台の同一モデルへ並列リクエストを振り分ける」ユースケースに特化したツールと理解しておくのが適切だ。