
[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_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심사(judge) 모델을 사용하여 공격 결과를 평가합니다.
옵션:
--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 |