
[ICLR 2026] — Официальный репозиторий статьи: «RedBench: универсальный набор данных для всестороннего red teaming больших языковых моделей»
Комплексный фреймворк для оценки безопасности больших языковых моделей (LLM) с помощью систематического тестирования атак и отказов. RedEval предоставляет унифицированную, безопасную и расширяемую платформу для оценки устойчивости LLM к состязательным промптам и вредоносному контенту. Она является частью статьи "RedBench: A Universal Dataset for Comprehensive Red Teaming of Large Language Models", которая представляет собой универсальный набор данных для комплексного red teaming LLM.
📦 Набор данных: Набор данных RedBench публично доступен на HuggingFace по адресу knoveleng/redbench. Он включает комплексные промпты для red teaming по множеству категорий безопасности и доменов.
# 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 с помощью двух взаимодополняющих подходов:
Проверяет уязвимость 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 | API-ключ OpenAI | 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"
Для пользователей, предпочитающих shell-скрипты:
# 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 | Случайное зерно (seed) | 0 |