NVIDIA-NeMo/Switchyard

Switchyard lets LLM applications route traffic across models and providers while preserving native OpenAI and Anthropic API compatibility - enabling flexible model selection, benchmarking, and cost/performance optimization.

NVIDIA NeMo Switchyard – クイック概要

概要 – Switchyardは、AIエージェント(またはLLM駆動のサービス)と言語モデルプールの間に配置される、NVIDIA NeMoのオープンソースルーティングライブラリです。すべてのリクエストを単一の高価なモデルに送信するのではなく、Switchyardがリクエストごとにどのモデルが処理すべきかを判断するため、安価で高速なモデルと、より高性能な大規模モデルを組み合わせて使用できます。

重要性 – LLMの運用環境では、常に以下の3つのトレードオフが発生します。

  • タスクの成功率(モデルが良い回答を生成するか)
  • コスト(トークンやAPI呼び出しごとの費用)
  • レイテンシ(ユーザーの待ち時間)。 Switchyardは、単一のモデルをハードコーディングするのではなく、これらのトレードオフを自動的に最適化するプログラム可能な手段を提供します。

仕組み(ハイレベルなフロー)

  1. モデルプールの定義 – アクセス可能なモデルをリストアップします(例:安価な7Bモデル、大規模な70Bモデル、Anthropic Claudeなど)。
  2. ルーティングアルゴリズムの選択 – Switchyardには複数の戦略(Auto、Task-based、Execution-based、Composite、およびescalationやsub-agentなどの高度な戦略)が用意されています。アルゴリズムは受信したリクエストを分析し、必要に応じてエージェントによる最近のツール使用シグナルを参照します。
  3. ルーティングの決定 – アルゴリズムは、リクエストを処理すべきモデルのIDを返します。
  4. ゲートウェイによるリクエスト転送 – 周辺サービス(OpenRouter、LiteLLM、NeMo Relay、またはカスタムハーネス)が選択されたモデルを呼び出し、ユーザーに応答を返します。
  5. 反復 – エージェントが作業を継続する際、ルーターは必要に応じて対話の途中でモデルを再評価し、切り替えることができます。

主な機能

機能 メリット
多様な統合ポイント 既存のゲートウェイ(OpenRouter、LiteLLM、NeMo Relay)経由での利用、デモ用のローカルプロキシサーバーの実行、またはRust/Pythonライブラリの直接組み込みが可能です。
プラグイン可能なルーティングアルゴリズム • Auto – 標準的なデフォルト設定(効率優先、信頼度0.5、分類器なし)。
• Task – 分類器モデルが安価なモデルで処理可能かを判断。
• Execution – 最近のツール使用状況と結果を分析(stage-router)。
• Composite – TaskとExecutionを組み合わせ、より堅牢な判断を実現。
• その他の戦略:Plan/Execute、Escalation、Advisor、Sub-agent、Random。
設定駆動型 すべてのルーティング動作はTOMLファイルで定義されるため、コード変更なしで簡単に実験できます。
コスト対精度の評価 ベンチマークドキュメントと可視化ツール(コスト対精度チャートなど)が組み込まれており、単一モデルのベースラインと比較可能です。
拡張可能なコンポーネント ライブラリ (switchyard-libsy)、HTTPクライアント (switchyard-llm-client)、ランナー (switchyard-runner)、デモ用プロキシサーバー (switchyard-server) が個別のクレートとして提供されます。
オープンソース (Apache-2.0) 商用製品への組み込みや改変が自由に行えます(NVIDIAのライセンス条件に従う必要があります)。

利用開始オプション

パス 対象ユーザー 手順(概要)
OpenRouter ゲートウェイ OpenRouter APIを既に使用している方 API呼び出しで model=nvidia/switchyard を設定します。OpenRouterがルーティングサービスをホストします。
LiteLLM プラグイン 独自の推論スタックを運用している開発者 リポジトリをクローンし、examples/litellm のクイックスタートに従い、LiteLLM 1.102.0 を指定します。注:StageおよびRandomルーティングのみサポート。
NeMo Relay プラグイン NVIDIA NeMo Relay フレームワークのユーザー RustツールチェーンとPython 3を使用してRustプラグイン (crates/switchyard-nemo-relay-plugin) をビルドし、Relayサーバーを設定します。
ローカルプロキシサーバー クイックデモ、評価、個人利用 switchyard-server を実行し(docs/getting_started.md#server-path を参照)、クライアントをローカルエンドポイントに向けます。
組み込みライブラリ カスタムゲートウェイやエージェントハーネスを構築するチーム switchyard-libsy (Rust) を追加するか、Pythonの例 examples/libsy.py を使用し、TOML設定を提供してルーティングAPIを直接呼び出します。

Switchyardの推奨ユーザー

  • プロダクトチーム:品質を維持しつつLLMコストを削減したいチーム。
  • RAG / エージェント開発者:ツール使用状況に応じてタスクの途中でモデルを切り替えたい開発者。
  • 研究者:ルーティング戦略を評価したり、新しいアルゴリズムを構築したい研究者。
  • Opsエンジニア:単一モデルのベースラインと比較可能な、プラグアンドプレイのプロキシを探しているエンジニア。

制限事項と成熟度

  • 本プロジェクトは pre-1.0 です。APIや動作が変更される可能性があります。本番環境では特定のバージョンを固定してください。
  • 一部の統合(例:LiteLLM)は experimental とマークされており、特定のアルゴリズムに必要な中間モデル呼び出しのサポートが不足しています。
  • NeMo Relay を使用する場合、0.8.x/0.9.0 バージョンでは Switchyard 以外のルートに関する上流のエラー詳細が失われる可能性があります。

ライセンスとコミュニティ

  • Apache 2.0 – 寛容なオープンソースライセンス。
  • 問題報告や貢献はGitHub経由で受け付けています(issues、PRs、行動規範)。

まとめ

Switchyardは、リクエストごとに最適なLLMをプールから動的に選択し、コスト、レイテンシ、成功率のバランスを最適化するルーティング層です。主要なゲートウェイ経由での利用、ローカルデモサーバーとしての実行、またはサービスへの直接組み込みが可能で、TOMLで設定可能な複数のルーティング戦略を提供します。

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト