0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アウトプットアドカレ2024Advent Calendar 2024

Day 7

NVIDIA NeMo Guardrailsでコンテンツモデレーションと安全性を強化する方法

Posted at

本記事は、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チャットボットに安全機能を統合する際の基本的な手順です。

  1. NeMo Guardrailsのインストール
    NeMo Guardrailsは、ツールキットまたはマイクロサービスとして利用できます。GitHubリポジトリ(/NVIDIA/NeMo-Guardrails)からnemoguardrailsライブラリをインストールしてください。

  2. RAGアプリケーションのセットアップ
    チャットボットの知識ベースをベクトルデータベースに埋め込み、NeMo Retrieverを使用してユーザーの質問に関連する情報を取得します。

  3. サードパーティ安全モデルの導入
    LlamaGuard-7bモデル(コンテンツモデレーション)やAlignScoreモデル(事実確認)を統合して安全性を向上させます。

Architectural workflow of a RAG chatbot safeguarded by NeMo Guardrails and integrated with third-party applications


サードパーティモデルの役割

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プロジェクトに活用してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?