NVIDIA NeMo Guardrails(エヌビディアニーモガードレールズ)
NVIDIA が開発するオープンソースの LLM ガードレールフレームワーク。Colang という独自の対話フロー記述言語を用いて、LLM の入出力に対するトピック制御・事実性チェック・有害コンテンツフィルタリング・Jailbreak 防止などのセーフティレイヤーを宣言的に定義できる。
NVIDIA NeMo Guardrails とは
NVIDIA NeMo Guardrails は、LLM アプリケーションの入出力にセーフティレイヤーを追加するオープンソースフレームワークです。Colang という独自の対話フロー記述言語を用いて、LLM の振る舞いを宣言的に制御し、有害コンテンツの生成・Jailbreak 攻撃・話題の逸脱などを防止します。
Colang による宣言的な制御
NeMo Guardrails の中核技術は Colang(Conversational Language)です。Colang は Python ライクな構文で対話のフローとレール(制約)を記述する DSL で、プログラミング経験のあるエンジニアが直感的に安全ルールを定義できます。
Colang 2.0(2024年リリース)では、以下の記述が可能です。
| 記述要素 | 説明 |
|---|---|
| flow | 対話の流れを定義するブロック |
| match | ユーザー発話パターンのマッチング |
| bot | ボットの応答テンプレート |
| when | 条件分岐 |
| action | 外部 API 呼び出しやカスタム処理 |
4種類のレール
NeMo Guardrails は4種類のレールを提供し、多層防御を実現します。
1. 入力レール(Input Rails)
ユーザーの発話が LLM に到達する前にフィルタリングします。
- Jailbreak 検出: プロンプトインジェクション・脱獄攻撃パターンの検出
- トピックフィルタ: 許可されたトピック以外の質問をブロック
- PII 検出: 個人識別情報(氏名・電話番号・メールアドレス)の検出と除去
- 言語検出: 対応言語以外の入力を拒否
2. 出力レール(Output Rails)
LLM の応答がユーザーに返される前に検証します。
- 事実性チェック: RAG のソースドキュメントと照合し、ハルシネーションを検出
- 有害コンテンツフィルタ: 暴力・差別・性的コンテンツの検出
- コンプライアンスチェック: 企業ポリシーに違反する回答のブロック
- フォーマット検証: JSON スキーマ準拠・文字数制限・禁止ワード除去
3. トピカルレール(Topical Rails)
会話のトピックを許可リスト/拒否リストで制御します。
- 「製品に関する質問のみ回答する」
- 「競合他社についてはコメントしない」
- 「法的助言・医療助言を行わない」
4. リトリーバルレール(Retrieval Rails)
RAG パイプラインの検索結果を検証します。
- 検索結果の関連度スコアが閾値未満の場合に除外
- 検索結果に機密情報が含まれる場合にマスキング
アーキテクチャ
NeMo Guardrails は LLM のプロキシとして動作し、リクエスト/レスポンスのパイプラインに割り込みます。
ユーザー → 入力レール → LLM → 出力レール → ユーザー
↕ ↕
トピカルレール リトリーバルレール
各レール内で別の LLM(ガード用 LLM)を呼び出して判定を行う構成も可能で、メインの LLM とは異なる軽量モデル(Llama Guard 等)をガード用に使うことでコストとレイテンシを最適化できます。
統合と互換性
| フレームワーク | 統合方式 |
|---|---|
| LangChain | RunnableRails ラッパー |
| LlamaIndex | コールバックハンドラー |
| OpenAI API | プロキシモード(ベース URL 差し替え) |
| FastAPI | ミドルウェアとして組み込み |
| 独自アプリ | Python SDK 直接呼び出し |
パフォーマンスへの影響
ガードレールの追加は LLM コールの前後に処理を挿入するため、レイテンシが増加します。
| レール構成 | 追加レイテンシ | 備考 |
|---|---|---|
| 入力レールのみ(パターンマッチ) | 5-20ms | 正規表現ベースで高速 |
| 入力+出力レール(LLM判定) | 200-800ms | ガード用 LLM の推論時間 |
| 全レール(LLM判定+RAG検証) | 500-1500ms | 複数の LLM 呼び出し |
本番環境ではガード用 LLM に Llama Guard 3(8B パラメータ)等の軽量モデルを使い、レイテンシを最小化する構成が一般的です。
FAQ
Q: NeMo Guardrails は無料で使える?
A: はい、Apache 2.0 ライセンスのオープンソースで、商用利用も無料です。NVIDIA GPU は必須ではなく、任意の LLM プロバイダ(OpenAI・Anthropic・ローカルモデル等)と組み合わせられます。
Q: Guardrails AI との違いは?
A: NeMo Guardrails は Colang による対話フロー制御が中心で、会話型 AI のトピック制御に強みがあります。Guardrails AI は出力のスキーマ検証・構造化に特化しています。用途に応じて使い分けるか、併用が可能です。
Q: Colang の学習コストは?
A: Python 経験者であれば Colang 2.0 の基本構文は数時間で習得可能です。公式ドキュメントにサンプルフローが豊富に用意されており、テンプレートからの修正で多くのユースケースに対応できます。