NVIDIA-NeMo/Guardrails
NeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems.
解決する問題
LLM を利用したチャットボットやアシスタントは、トピックから逸脱したり、機密データを漏洩したり、事実を捏造したり、脱獄やプロンプトインジェクション攻撃によって操作されたりする可能性があります。NeMo Guardrails は、開発者がアプリケーションと LLM の間にプログラム可能な安全性と制御レイヤーを挿入できるようにするツールキットであり、モデルが何を言ってもよいか、どのトピックを避けるべきか、特定の状況でどのように応答すべきか、どのツールを安全に呼び出せるかを定義できます。
仕組み
アプリケーションは LLM を直接呼び出す代わりに、generate() などのメソッドを使用してガードレールレイヤーを呼び出します。このレイヤーは、一連の設定可能な「レール」を実行し、ユーザー入力を処理し、LLM のプロンプト方法をガイドし、取得したドキュメント(RAG 用)をチェックし、ツール呼び出しを検証し、モデルの出力がユーザーに届く前に検査します。ガードレールは、config.yml ファイル(LLM モデル、アクティブなレール、設定)、カスタム Python アクション用のオプションの actions.py、および対話モデリング言語である Colang で記述された .co ファイルを含む設定フォルダーで定義されます。Colang を使用すると、読みやすい Python 風の構文で会話フローとルールを指定できます。ライブラリは、入力レール、ダイアログレール、検索レール、実行レール、出力レールの 5 種類のレールをサポートしています。また、ガードレールサーバーを実行するための CLI、Docker イメージ、オプションの LangChain 統合、脱獄検出、コンテンツ安全性、ファクトチェック、幻覚検出のための組み込みガードレールも含まれています。
対象読者
生のモデルプロンプトが提供する以上の制御と安全性を必要とする、LLM ベースの会話型アプリケーションを構築する開発者。質問応答ボット、ドメイン固有のアシスタント、または公開された LLM エンドポイントを作成し、コンプライアンスを強化し、有害なコンテンツを防止し、予測可能な会話フローを設計したいチームを対象としています。ユーザーは Python と基本的な YAML 設定に精通している必要があります。Colang の知識は役立ちますが、構文は学習しやすいように設計されています。
ハイライト
- 5 種類のプログラム可能なガードレール:入力、ダイアログ、検索、実行、出力。
- Python 風の構文を持つ Colang 対話モデリング言語で、会話フローとレール条件を定義できます。
- 脱獄およびプロンプトインジェクション検出、コンテンツ安全性、ファクトチェック、幻覚検出のための組み込みガードレール。
- 複数の LLM(OpenAI GPT-3.5/GPT-4、LLaMa-2、Falcon、Vicuna、Mosaic)で動作し、オプションで LangChain と統合。
- CLI、HTTP API を備えたサーバーモード、デプロイ用の Docker サポートが含まれます。
- 会話の安全性をテストするための評価ツール(
nemoguardrails evaluate)を提供。 - NVIDIA による活発なオープンソースプロジェクトで、豊富なドキュメントと例があります。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト