
[ICLR 2026] - 논문 공식 저장소: "RedBench: 대규모 언어 모델의 포괄적 레드 티밍을 위한 범용 데이터셋"
체계적인 공격(attack) 및 거부(refusal) 테스트를 통해 대규모 언어 모델(LLM)의 안전성을 평가하기 위한 포괄적인 프레임워크입니다. RedEval은 적대적 프롬프트와 유해 콘텐츠에 대한 LLM의 견고성을 평가하기 위한 통합되고 안전하며 확장 가능한 플랫폼을 제공합니다. 이는 LLM의 종합적인 레드팀링(red teaming)을 위한 범용 데이터셋인 논문 "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은 두 가지 상호 보완적 접근 방식을 통해 LLM 안전성을 평가합니다:
다양한 탈옥(jailbreaking) 기법을 사용하여 적대적 프롬프트에 대한 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_PROJECT_ROOT | 프로젝트 루트 디렉터리 | 현재 디렉터리 |
REDEVAL_LOG_DIR | 로그 디렉터리 | ./logs |
REDEVAL_RECIPES_DIR | 구성 디렉터리 | ./recipes |
REDEVAL_LOG_LEVEL | 로깅 수준 | INFO |
REDEVAL_NUM_SAMPLES | 평가 샘플 수 | 10 |
REDEVAL_SEED | 랜덤 시드 | 0 |
| 변수 | 설명 | 기본값 |
|---|---|---|
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전체 평가 파이프라인 또는 특정 단계를 실행합니다.