システム的な攻撃テストと拒否テストを通じて、大規模言語モデル(LLM)の安全性を評価するための包括的なフレームワークです。RedEval は、敵対的プロンプトや有害コンテンツに対する LLM の堅牢性を評価するための、統一的かつ安全で拡張可能なプラットフォームを提供します。これは、LLM の包括的なレッドチーミングのためのユニバーサルデータセットである論文「RedBench: A Universal Dataset for Comprehensive Red Teaming of Large Language Models」の一部です。
📦 データセット: RedBench データセットは HuggingFace の knoveleng/redbench で公開されています。複数の安全性カテゴリとドメインにわたる包括的なレッドチーミングプロンプトが含まれています。
# Clone the repository
git clone https://github.com/knoveleng/redeval.git
cd redeval
# Install dependencies
pip install -r requirements.txt
# Copy and configure environment variables
cp .env.template .env
# Edit .env with your API keys
.env ファイルに資格情報を記述してください:
OPENAI_API_KEY=your_openai_api_key_here
HUGGINGFACE_TOKEN=your_huggingface_token_here
# Set up environment
source ./sh/setup_env.sh
# Run with default models, you can edit .env to define models which you wanna run
python -m redeval.cli run-pipeline
# Run complete pipeline with specific models
python -m redeval.cli run-pipeline --models "Qwen/Qwen2.5-7B-Instruct" "gpt-4o-mini"
# Or run individual phases
./sh/generate_attack.sh
./sh/run_attack.sh
./sh/eval_attack.sh
RedEval は、2 つの相補的なアプローチを通じて LLM の安全性を評価します:
さまざまな脱獄(ジェイルブレイク)技術を使用して、敵対的プロンプトに対する LLM の脆弱性をテストします:
複数の安全性データセットにわたって、有害なリクエストを適切に拒否する LLM の能力を評価します:
攻撃と拒否の両方のパフォーマンスを組み合わせた包括的な安全性メトリクスを計算します。
redeval/
├── redeval/ # Core Python modules
│ ├── config.py # Environment & configuration management
│ ├── pipeline.py # Centralized pipeline orchestrator
│ ├── cli.py # Unified command-line interface
│ ├── exceptions.py # Custom exception handling
│ ├── generate_attack.py # Attack prompt generation
│ ├── run_attack.py # Attack execution
│ ├── eval_attack.py # Attack evaluation
│ ├── run_refuse.py # Refusal testing
│ ├── eval_refuse.py # Refusal evaluation
│ └── score.py # Metric calculation
├── sh/ # Shell script interfaces
│ ├── setup_env.sh # Environment setup
│ ├── generate_attack.sh # Attack generation script
│ ├── run_attack.sh # Attack execution script
│ ├── eval_attack.sh # Attack evaluation script
│ ├── run_refuse.sh # Refusal testing script
│ ├── eval_refuse.sh # Refusal evaluation script
│ └── score.sh # Scoring script
├── recipes/ # Configuration files
├── logs/ # Evaluation results
└── .env # Environment variables
graph TD
A[Generate Attack Prompts] --> B[Run Attack Tests]
B --> C[Evaluate Attack Results]
D[Run Refuse Tests] --> E[Evaluate Refuse Results]
C --> F[Calculate Final Scores]
E --> F
F --> G[Generate Reports]
リポジトリのクローン
git clone <repository-url>
cd redeval
依存関係のインストール
pip install -r requirements.txt
環境の設定
cp .env.template .env
# Edit .env with your API credentials
インストールの確認
python -m redeval.cli --help
RedEval は、安全で柔軟な設定のために環境変数を使用します:
| 変数 | 説明 | 例 |
|---|---|---|
OPENAI_API_KEY | OpenAI API キー | sk-proj-... |
HUGGINGFACE_TOKEN | HuggingFace トークン | hf_... |
| 変数 | 説明 | デフォルト |
|---|---|---|
REDEVAL_OPEN_SOURCE_MODELS | オープンソースモデルのリスト | "Qwen/Qwen2.5-7B-Instruct" |
REDEVAL_CLOSED_SOURCE_MODELS | クローズドソースモデルのリスト | "gpt-4o-mini" |
recipes/ ディレクトリ内の設定ファイルが評価パラメータを制御します:
attack/base-open.yml - オープンソースモデルの攻撃設定attack/base-close.yml - クローズドソースモデルの攻撃設定attack/eval.yml - 攻撃評価の設定refuse/base-open.yml - オープンソースモデルの拒否設定refuse/base-close.yml - クローズドソースモデルの拒否設定refuse/eval.yml - 拒否評価の設定RedEval は、すべての操作のための統合 CLI を提供します:
# Run full evaluation pipeline
python -m redeval.cli run-pipeline
# Run with specific models
python -m redeval.cli run-pipeline --models "Qwen/Qwen2.5-7B-Instruct" "gpt-4o-mini"
# Run specific phases only
python -m redeval.cli run-pipeline --phases generate_attack run_attack eval_attack
# Generate attack prompts
python -m redeval.cli generate-attack --config ./recipes/attack/base-close.yml
# Run attack evaluation
python -m redeval.cli run-attack --config ./recipes/attack/base-open.yml --model "Qwen/Qwen2.5-7B-Instruct"
# Evaluate attack results
python -m redeval.cli eval-attack --config ./recipes/attack/eval.yml --log-dir ./logs/attack/HarmBench/direct/model_name
# Run refusal tests
python -m redeval.cli run-refuse --config ./recipes/refuse/base-open.yml --model "Qwen/Qwen2.5-7B-Instruct"
# Evaluate refusal results
python -m redeval.cli eval-refuse --config ./recipes/refuse/eval.yml --log-dir ./logs/refuse/CoCoNot/base/model_name
# Calculate scores
python -m redeval.cli score --log-dir ./logs/attack/HarmBench/direct/model_name --keyword "unsafe"
シェルスクリプトを好むユーザー向け:
# Set up environment (run first)
source ./sh/setup_env.sh
# Run evaluation phases
./sh/generate_attack.sh # Generate attack prompts
./sh/run_attack.sh # Execute attacks
./sh/eval_attack.sh # Evaluate attack results
./sh/run_refuse.sh # Run refusal tests
./sh/eval_refuse.sh # Evaluate refusal results
./sh/score.sh # Calculate final scores
プログラムからのアクセス用:
from redeval.pipeline import PipelineOrchestrator, PipelinePhase
from redeval.config import EnvironmentConfig
# Initialize configuration
config = EnvironmentConfig.from_env()
# Create pipeline orchestrator
orchestrator = PipelineOrchestrator(config)
# Run complete pipeline
orchestrator.run_complete_pipeline()
# Run specific phases
orchestrator.run_phase(PipelinePhase.GENERATE_ATTACK)
orchestrator.run_phase(PipelinePhase.RUN_ATTACK)
.env ファイルのサポートrun-pipeline完全な評価パイプラインまたは特定のフェーズを実行します。
オプション:
--models: 評価するモデルのリスト--phases: 実行する特定のフェーズ--config-dir: 設定ディレクトリのパス--log-dir: ログの出力ディレクトリgenerate-attack敵対的攻撃プロンプトを生成します。
オプション:
--config: 設定ファイルのパス--num-samples: 生成するサンプル数--seed: 再現性のためのランダムシードrun-attackターゲットモデルに対する攻撃評価を実行します。
オプション:
--config: 設定ファイルのパス--model: ターゲットモデル名--num-samples: 処理するサンプル数eval-attack判定モデルを使用して攻撃結果を評価します。
オプション:
--config: 設定ファイルのパス--log-dir: 攻撃ログを含むディレクトリrun-refuse拒否能力のテストを実行します。
オプション:
--config: 設定ファイルのパス--model: ターゲットモデル名--num-samples: テストするサンプル数--split: 使用するデータセットの分割eval-refuse拒否テストの結果を評価します。
オプション:
--config: 設定ファイルのパス--log-dir: 拒否ログを含むディレクトリscore評価結果から安全性スコアを計算します。
オプション:
--log-dir: 評価ログを含むディレクトリ--keyword: 結果内を検索するキーワードPipelineOrchestrator一元化されたパイプライン管理。
メソッド:
run_complete_pipeline(): 完全な評価パイプラインを実行run_phase(phase): 特定のパイプラインフェーズを実行get_phase_status(phase): パイプラインフェーズのステータスを取得EnvironmentConfig環境と設定の管理。
メソッド:
from_env(): 環境変数から設定を読み込むvalidate(): 設定の完全性を検証setup_logging(): ロギングシステムを設定フォークとクローン
git clone https://github.com/knoveleng/redeval.git
cd redeval
開発環境の作成
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Pre-commit フックのセットアップ
pip install pre-commit
pre-commit install
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
このプロジェクトが役立つと思われた場合は、研究で引用をご検討ください:
@inproceedings{
dang2026redbench,
title={RedBench: A Universal Dataset for Comprehensive Red Teaming of Large Language Models},
author={Quy-Anh Dang and Chris Ngo and Truong-Son Hy},
booktitle={ICLR 2026 Workshop on Principled Design for Trustworthy AI - Interpretability, Robustness, and Safety across Modalities},
year={2026},
url={https://openreview.net/forum?id=7pZXyk0d07}
}
| 変数 | 説明 | デフォルト |
|---|
REDEVAL_PROJECT_ROOT | プロジェクトルートディレクトリ | カレントディレクトリ |
REDEVAL_LOG_DIR | ログディレクトリ | ./logs |
REDEVAL_RECIPES_DIR | 設定ディレクトリ | ./recipes |
REDEVAL_LOG_LEVEL | ログレベル | INFO |
REDEVAL_NUM_SAMPLES | 評価サンプル数 | 10 |
REDEVAL_SEED | ランダムシード | 0 |