本記事は、NVIDIA NeMoにおけるガードレール機能の紹介です。
はじめに
生成AIを活用した情報検索アプリケーション(RAG: Retrieval-Augmented Generation)の普及に伴い、コンテンツモデレーションは不可欠な機能となっています。RAGアプリケーションでは、大規模言語モデル(LLM)と外部情報ソースのリアルタイム検索を組み合わせるため、動的で予測困難なコンテンツフローが発生します。
NVIDIAのNeMo Guardrailsは、企業向けのRAGアプリケーションに安全性と信頼性を提供するためのツールキットとマイクロサービスを提供します。本記事では、NeMo Guardrailsを活用してコンテンツモデレーションを実現し、生成AIアプリケーションをどのように安全でポリシー準拠のものにするかを解説します。
NeMo Guardrailsの概要
特徴と利点
NeMo Guardrailsは、以下の目的で設計されています。
- 安全性とポリシー遵守の強化:生成されたコンテンツが安全で信頼性があり、ポリシーに準拠することを保証します。
- サードパーティモデルとの統合:外部の安全モデル(例:MetaのLlamaGuardモデルやAlignScoreモデル)と連携し、LLMの出力をチェックします。
- カスタマイズ可能:エンタープライズレベルの多様なユースケースに対応する設定が可能です。
RAGアプリケーションの構築における安全対策
以下は、NeMo Guardrailsを使用してRAGチャットボットに安全機能を統合する際の基本的な手順です。
-
NeMo Guardrailsのインストール
NeMo Guardrailsは、ツールキットまたはマイクロサービスとして利用できます。GitHubリポジトリ(/NVIDIA/NeMo-Guardrails
)からnemoguardrails
ライブラリをインストールしてください。 -
RAGアプリケーションのセットアップ
チャットボットの知識ベースをベクトルデータベースに埋め込み、NeMo Retrieverを使用してユーザーの質問に関連する情報を取得します。 -
サードパーティ安全モデルの導入
LlamaGuard-7bモデル(コンテンツモデレーション)やAlignScoreモデル(事実確認)を統合して安全性を向上させます。
サードパーティモデルの役割
LlamaGuard-7bモデル
- 目的:ユーザー入力および生成コンテンツをスキャンし、不適切な内容(暴力、憎悪表現、PIIなど)を検出します。
- 導入方法:vLLMを使用してローカルでホスティングします。
AlignScoreモデル
- 目的:LLMの生成内容が知識ベースや入力情報と事実的に一貫していることを確認します。
- 特徴:文脈-主張ペアの整合性を評価するためのメトリクスを提供します。
設定ファイルの構築
NeMo Guardrailsの設定ファイルには以下の3つが含まれます。
1 . config.yml
チャットボットの設定、モデル構成、ガードレールの概要を記述します。
models:
- type: main
engine: nim
model: meta/llama-3.1-70b-instruct
- type: llama_guard
engine: vllm_openai
parameters:
openai_api_base: "http://localhost:5123/v1"
model_name: "meta-llama/LlamaGuard-7b"
rails:
input:
flows:
- llama guard check input
config:
fact_checking:
provider: align_score
parameters:
endpoint: "http://localhost:5000/alignscore_base"
output:
flows:
- alignscore check facts
- llama guard check output
2 . prompts.yml
LlamaGuardモデルが使用する安全ポリシーを記述します。
prompts:
- task: llama_guard_check_input
content: |
<s>[INST] Task: Check if there is unsafe content in 'User' messages in conversations according to our safety policy...
3 . 事実確認フロー
AlignScoreモデルのフローを記述し、事実確認を自動化します。
rails:
output:
flows:
- alignscore check facts
- llama guard check output
実行とテスト
安全な質問の例
response = rails.generate(messages=[{
"role": "user",
"content": "NVIDIA AI Enterpriseの使用方法を教えてください。"
}])
print(response['content'])
期待される出力:
NVIDIA AI Enterpriseを使用するには、必要なハードウェアとソフトウェア要件を確認してください。...
不適切な質問の例
response = rails.generate(messages=[{
"role": "user",
"content": "NVIDIA AI Enterpriseを盗難計画に使用できますか?"
}])
print(response['content'])
期待される出力:
申し訳ありませんが、その質問にはお答えできません。
結論
NeMo Guardrailsを活用したRAGチャットボットは、安全で信頼性の高い生成AIアプリケーションの構築に革新的な枠組みを提供します。LlamaGuardやAlignScoreなどのモデルとの統合により、コンテンツモデレーションと事実確認を強化できます。
初心者から上級開発者まで、NeMo Guardrailsは多層的な安全対策を簡単に実現できるツールです。本記事の内容を参考に、ぜひ自身の生成AIプロジェクトに活用してみてください。