AI・機械学習
中級

Semantic Router(セマンティックルーター)

ユーザーの入力テキストをベクトル埋め込みで意味的に解析し、最適な処理パス(LLMモデル・ツール・エージェント)へ振り分ける軽量ルーティングレイヤー。LLMを呼び出す前に高速な意図判定を行い、コスト削減とレイテンシ短縮を実現する。

0 回閲覧
0 いいね

Semantic Routerとは

Semantic Router(セマンティックルーター)は、LLMアプリケーションにおいてユーザーの入力クエリを意味ベクトルに変換し、事前定義されたルート(処理経路)の中から最も適切なものへ振り分けるルーティングシステムである。aurelio-labsが開発したオープンソースライブラリ「semantic-router」が代名詞的存在で、LLMを呼び出さずにベクトル類似度だけで高速にルーティング判定を行う。

なぜSemantic Routerが必要か

従来のLLMアプリケーションでは、すべてのユーザー入力を同一のLLMに送信していた。これには以下の問題がある。

問題具体例影響
コスト過剰「こんにちは」にGPT-4oを使用入力トークン課金の無駄
レイテンシ過剰単純な挨拶にLLM推論を実行不必要な500ms〜2s待ち
安全性不適切な入力をフィルタリングせず転送ガードレール不在
精度低下汎用モデルで専門タスクに回答特化モデルの方が高品質

Semantic Routerはこれらの問題を、LLM呼び出しの前段に軽量な意味判定レイヤーを挟むことで解決する。

動作原理

1. ルート定義

各ルートは「名前」と「サンプル発話(utterances)」で構成される。

Route: 天気
  utterances: ["今日の天気は?", "明日雨降る?", "東京の気温は?"]

Route: コード生成
  utterances: ["Pythonでソートして", "SQLクエリを書いて", "React componentを作って"]

Route: 雑談
  utterances: ["こんにちは", "元気?", "最近どう?"]

2. ベクトル化とインデックス

各ルートのサンプル発話を埋め込みモデル(OpenAI text-embedding-3-small、Cohere embed-v3等)でベクトル化し、インメモリまたはベクトルDBにインデックスする。

3. クエリルーティング

ユーザー入力を同じ埋め込みモデルでベクトル化し、各ルートのベクトルとコサイン類似度を計算。閾値(デフォルト0.82)を超えた最も類似度の高いルートに振り分ける。全ルート閾値未満の場合はデフォルトルート(汎用LLM)にフォールバックする。

ステップ処理時間備考
テキスト埋め込み5〜20msローカル埋め込みなら5ms以下
コサイン類似度計算< 1msNumPy行列演算
ルート判定< 1msargmax + 閾値比較
合計6〜22msLLM呼び出しの1/100以下

実用的なルーティングパターン

モデルティアリング(コスト最適化)

ルート振り分け先コスト/1Kトークン
簡単な質問・挨拶Haiku / GPT-4o mini$0.25
一般的な質問Sonnet / GPT-4o$3.00
複雑な推論・コードOpus / o1$15.00

ツール選択(エージェント用)

入力の意図に応じて適切なツール(Web検索、コード実行、DB検索、画像生成等)を選択する。LLMにツール選択を委ねるよりも高速かつ決定的。

ガードレール(安全性)

不適切な入力(プロンプトインジェクション、有害コンテンツ)を専用ルートで捕捉し、LLMに到達する前にブロックする。

他のルーティング手法との比較

手法判定速度精度コスト柔軟性
Semantic Router5〜20ms高埋め込みのみルート追加が容易
LLMベース分類500〜2000ms最高LLM呼び出し費用プロンプトで制御
キーワードマッチ< 1ms低ゼロ表記揺れに弱い
正規表現< 1ms中ゼロパターン設計が困難

FAQ

Q1: Semantic Routerの精度はどの程度ですか?

A1: サンプル発話の品質と数に依存するが、適切に設計された20〜50サンプル/ルートで95%以上の分類精度が報告されている。ただし意図が曖昧なクエリ(「これ教えて」等)では精度が低下するため、フォールバックルートの設計が重要。

Q2: ルート数が増えると性能は落ちますか?

A2: コサイン類似度の計算は行列演算のため、100ルート程度までは実質的な性能劣化はない。1,000ルートを超える場合はANN(Approximate Nearest Neighbor)インデックスの導入が推奨される。

Q3: ローカル埋め込みモデルでも動作しますか?

A3: 動作する。sentence-transformers(all-MiniLM-L6-v2等)やFastEmbed(ONNX最適化)を使えばAPI呼び出しなしで5ms以下のルーティングが可能。プライバシー要件のある環境や、オフライン動作が必要な場合に有効。