ジェネラティブエージェンツの大嶋です。
「AIエージェントキャッチアップ #20 - NVIDIA NeMo Guardrails」という勉強会を開催しました。
generative-agents.connpass.com
アーカイブ動画はこちらです。
NVIDIA NeMo Guardrails
今回は、「NVIDIA NeMo Guardrails」について、公式ドキュメントを読んだり動かしたりしてみました。
NeMo GuardrailsのGitHubリポジトリはこちらです。
公式ドキュメントはこちらです。
今回のポイント
NeMo Guardrailsの概要
NeMo Guardrailsは、NVIDIA社が公開しているLLMのガードレールのOSSです。
論文も公開されています。
LLMのガードレールのOSSはいくつかありますが、その中でも有名な印象があります。
基本的な使い方
NeMo Guardrailsの基本的な使い方としては、「nemoguardrails」というPythonパッケージをインストールして、以下のようなコードを書きます。
from nemoguardrails import LLMRails, RailsConfig config = RailsConfig.from_path("./config") rails = LLMRails(config) response = rails.generate( messages=[ { "role": "user", "content": "What is the capital of France?", }, ], ) print(response)
上記の例では./configディレクトリにNeMo Guardrailsの設定ファイルを配置する必要があります。
./config/config.ymlには、使用するモデルやプロンプトなどを記述します。
models:
- type: main
engine: openai
model: gpt-3.5-turbo-instruct
./config/rails.coには、Colangという言語でガードレールの設定を記述します。
define user express greeting "Hello" "Hi" "Wassup?" define flow greeting user express greeting bot express greeting bot ask how are you define bot express greeting "Hello World!" define bot ask how are you "How are you doing?"
上記の例は、「Hello」のような挨拶に対して「Hello World!」「How are you doing?」といった特定の応答を返すというものです。
他にもジェイルブレイクのガードレールなどを実装することもできます。
Colangでのガードレールの記述が特有で、しっかり使うにはある程度の学習コストがかかりそうでした。
LangChainとの統合
LangChainとの統合も提供されており、NeMo Guardrailsが提供する「RunnableRails」をChainに組み込むことができます。
from nemoguardrails.integrations.langchain.runnable_rails import RunnableRails config = RailsConfig.from_path("./config") guardrails = RunnableRails(config) chain = prompt | (guardrails | model) | output_parser
LangSmithでトレースを確認すると、ガードレール用のプロンプトでgpt-4o-miniが何度か呼び出されていることが分かります。

このようなツールの挙動を把握したいとき、トレースの可視化はとても便利ですね。
セキュリティガイドライン
NeMo Guardrailsのドキュメント内には、セキュリティガイドラインもあります。
このガイドラインはNeMo Guardrailsに限った解説ではなく、一般的なLLMアプリケーションで注意すべき内容となっています。
これだけで全てを網羅しているというものではありませんが、まとまった情報源の1つとして参考になります。
次回のご案内
以上、今回は「NeMo Guardrails」をキャッチアップしました。
次回は「AIエージェントキャッチアップ #21 - HumanLayer」ということで、Human-in-the-Loopのライブラリ「HumanLayer」がテーマです!
generative-agents.connpass.com
ご興味・お時間ある方はぜひご参加ください!
また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!