NVIDIA NeMo Guardrails logo

NVIDIA NeMo Guardrails

開く

NVIDIAが開発するオープンソースのプログラマブル・ガードレールツールキット。ColangフローでLLM対話アプリの入出力・対話・検索ガードレールを定義し、脱獄やプロンプトインジェクションを防ぐ。

共有:

NVIDIA NeMo Guardrails

NVIDIA NeMo Guardrails は、LLM ベースの対話アプリケーションにプログラマブルなガードレールを追加するためのオープンソースツールキットです。ガードレール(rails)はモデルの挙動を制御する明示的なルールで、望ましくないトピックの回避、事前定義した対話パスの追従、言語スタイルの強制、機密データのマスキング、安全でない入出力の拒否などを実現します。小さなドメイン固有言語である Colang を中心に設計されており、LLM セキュリティ・安全性分野で最も引用されるフレームワークの一つです。

主な機能

  • 5種類のガードレール:入力ガードレールはユーザー入力をフィルタリング、対話ガードレールは LLM のプロンプトを誘導、検索ガードレールは RAG チャンクをフィルタリング、実行ガードレールはツール呼び出しを検査、出力ガードレールはモデル応答をフィルタリングします。
  • Colang フロー:疑似コードに近い *.co ファイルで対話動作を定義。脱獄チェック、機密データマスキング、事実セルフチェック、モデレーションに対応。
  • 脆弱性対策:脱獄やプロンプトインジェクションなどの一般的な LLM 弱点への対策を内蔵し、LLM 脆弱性スキャンの評価ワークフローも提供。
  • モデル非依存:プラグイン可能なエンジン層により OpenAI モデル、Llama 2 などに対応し、LangChain 統合も任意で可能。
  • 非同期ファースト:コア機構は Python の非同期モデルに基づき、同期・非同期の両 API を提供。
  • 軽量統合LLMRails.generate で既存のチャットエンドポイントをラップし、OpenAI 互換の入出力形式を維持します。

使用シナリオ

  • RAG の質問応答:取得したドキュメント上で事実チェックと出力モデレーションを強制します。
  • 特定ドメインのアシスタント:チャットボットをトピック内に留め、設計した対話フローに従わせます。
  • 本番 LLM エンドポイント:カスタム LLM エンドポイントにガードレールを追加し、顧客とのやり取りを安全にします。
  • エージェントのツール安全性:実行ガードレールでエージェントが呼び出せるツール・サービスを制限します。

料金プラン

NeMo Guardrails は Apache-2.0 ライセンスの下で無料・オープンソースです。ガードレール付きアプリが消費する基盤 LLM API の利用料のみ、別途かかります。

はじめに

  1. pip install nemoguardrails でインストールします(Python 3.10〜3.13)。
  2. config.yml と Colang の *.co ファイルを含むガードレール設定ディレクトリを作成します。
  3. 設定を読み込んで LLM 呼び出しをラップします:config = RailsConfig.from_path("PATH/TO/CONFIG")、次に rails = LLMRails(config)
  4. OpenAI 互換のメッセージリストで rails.generate(messages=...) を呼び出します。

よくある質問

Colang とは?

NeMo Guardrails がガードレールを定義するために使う小型 DSL です。define flow に続くユーザーの挨拶とボットの応答の定義は仕様書のように読みやすく、脱獄チェックやモデレーションのサンプルも同梱されています。

オープンソースモデルは使えますか?

はい。エンジン層はプラグイン可能で、OpenAI の API モデルに加えて Llama 2 などのモデルをサポートしています。

スキャナーと同じですか?

違います。NeMo Guardrails はアプリと LLM の間に置くランタイム制御層です。脆弱性を能動的に発見したい場合は、Garak などのスキャナーと組み合わせます。

代替案

  • Garak:NVIDIA の LLM 脆弱性スキャナー。ガードレールを導入する前に穴を見つけます。
  • Llama Guard 3:入出力モデレーション用の Meta の分類モデル。
  • Langfuse:LLM アプリの可観測性と評価で、ランタイムガードレールを補完します。

ヒントとベストプラクティス

  1. ガードレールより先にスキャン:Garak で弱点を発見してから、一般的な攻撃経路を塞ぐガードレールを設定します。
  2. 最小限から始める:まず入出力ガードレールを1〜2個定義し、失敗パターンを学びながら対話・実行ガードレールを拡張します。
  3. 権限とレイヤリング:ガードレールはモデルの発言をフィルタリングし、別途アクセス制御でアプリが触れるツール・データを制限します。

まとめ

NVIDIA NeMo Guardrails は、最も広く参照されるオープンソースのプログラマブル LLM ガードレールフレームワークです。明快な Colang DSL、5種類のガードレール、文書化された脆弱性対策ワークフローを兼ね備えています。モデルの挙動を明示的かつ監査可能に制御したい本番 LLM・エージェントアプリにとって、無料で実績のある出発点です。

コメント

まだコメントがありません。最初のコメントを投稿してください!