
[ICLR 2026] - Repositorio oficial del artículo: "RedBench: Un Conjunto de Datos Universal para Red Teaming Integral de Modelos de Lenguaje de Gran Escala"
Un marco integral para evaluar la seguridad de los modelos de lenguaje de gran escala (LLM) mediante pruebas sistemáticas de ataque y rechazo. RedEval proporciona una plataforma unificada, segura y extensible para evaluar la robustez de los LLM frente a prompts adversarios y contenido dañino. Forma parte del artículo "RedBench: A Universal Dataset for Comprehensive Red Teaming of Large Language Models", que presenta un conjunto de datos universal para el red teaming integral de LLM.
📦 Conjunto de datos: El conjunto de datos RedBench está disponible públicamente en HuggingFace en knoveleng/redbench. Incluye prompts integrales de red teaming en múltiples categorías y dominios de seguridad.
# Clonar el repositorio
git clone https://github.com/knoveleng/redeval.git
cd redeval
# Instalar dependencias
pip install -r requirements.txt
# Copiar y configurar las variables de entorno
cp .env.template .env
# Edita .env con tus claves de API
Edita el archivo .env con tus credenciales:
OPENAI_API_KEY=your_openai_api_key_here
HUGGINGFACE_TOKEN=your_huggingface_token_here
# Configurar el entorno
source ./sh/setup_env.sh
# Ejecutar con los modelos predeterminados; puedes editar .env para definir los modelos que desees ejecutar
python -m redeval.cli run-pipeline
# Ejecutar el pipeline completo con modelos específicos
python -m redeval.cli run-pipeline --models "Qwen/Qwen2.5-7B-Instruct" "gpt-4o-mini"
# O ejecutar fases individuales
./sh/generate_attack.sh
./sh/run_attack.sh
./sh/eval_attack.sh
RedEval evalúa la seguridad de los LLM mediante dos enfoques complementarios:
Prueba la vulnerabilidad de los LLM frente a prompts adversarios mediante diversas técnicas de jailbreak:
Evalúa la capacidad del LLM para rechazar adecuadamente solicitudes dañinas en múltiples conjuntos de datos de seguridad:
Calcula métricas de seguridad integrales que combinan el rendimiento de ataque y rechazo.
redeval/
├── redeval/ # Módulos principales de Python
│ ├── config.py # Gestión de entorno y configuración
│ ├── pipeline.py # Orquestador centralizado del pipeline
│ ├── cli.py # Interfaz de línea de comandos unificada
│ ├── exceptions.py # Manejo personalizado de excepciones
│ ├── generate_attack.py # Generación de prompts de ataque
│ ├── run_attack.py # Ejecución de ataques
│ ├── eval_attack.py # Evaluación de ataques
│ ├── run_refuse.py # Pruebas de rechazo
│ ├── eval_refuse.py # Evaluación de rechazo
│ └── score.py # Cálculo de métricas
├── sh/ # Interfaces de scripts de shell
│ ├── setup_env.sh # Configuración del entorno
│ ├── generate_attack.sh # Script de generación de ataques
│ ├── run_attack.sh # Script de ejecución de ataques
│ ├── eval_attack.sh # Script de evaluación de ataques
│ ├── run_refuse.sh # Script de pruebas de rechazo
│ ├── eval_refuse.sh # Script de evaluación de rechazo
│ └── score.sh # Script de puntuación
├── recipes/ # Archivos de configuración
├── logs/ # Resultados de la evaluación
└── .env # Variables de entorno
graph TD
A[Generar prompts de ataque] --> B[Ejecutar pruebas de ataque]
B --> C[Evaluar resultados de ataque]
D[Ejecutar pruebas de rechazo] --> E[Evaluar resultados de rechazo]
C --> F[Calcular puntuaciones finales]
E --> F
F --> G[Generar informes]
Clonar el repositorio
git clone <repository-url>
cd redeval
Instalar dependencias
pip install -r requirements.txt
Configurar el entorno
cp .env.template .env
# Edita .env con tus credenciales de API
Verificar la instalación
python -m redeval.cli --help
RedEval utiliza variables de entorno para una configuración segura y flexible:
| Variable | Descripción | Ejemplo |
|---|---|---|
OPENAI_API_KEY | Clave de API de OpenAI | sk-proj-... |
HUGGINGFACE_TOKEN | Token de HuggingFace | hf_... |
| Variable | Descripción | Valor predeterminado |
|---|---|---|
REDEVAL_OPEN_SOURCE_MODELS | Lista de modelos de código abierto | "Qwen/Qwen2.5-7B-Instruct" |
REDEVAL_CLOSED_SOURCE_MODELS | Lista de modelos de código cerrado | "gpt-4o-mini" |
Los archivos de configuración del directorio recipes/ controlan los parámetros de evaluación:
attack/base-open.yml - Configuración de ataque para modelos de código abiertoattack/base-close.yml - Configuración de ataque para modelos de código cerradoattack/eval.yml - Configuración de evaluación de ataquesrefuse/base-open.yml - Configuración de rechazo para modelos de código abiertorefuse/base-close.yml - Configuración de rechazo para modelos de código cerradorefuse/eval.yml - Configuración de evaluación de rechazoRedEval proporciona una CLI unificada para todas las operaciones:
# Ejecutar el pipeline de evaluación completo
python -m redeval.cli run-pipeline
# Ejecutar con modelos específicos
python -m redeval.cli run-pipeline --models "Qwen/Qwen2.5-7B-Instruct" "gpt-4o-mini"
# Ejecutar únicamente fases específicas
python -m redeval.cli run-pipeline --phases generate_attack run_attack eval_attack
# Generar prompts de ataque
python -m redeval.cli generate-attack --config ./recipes/attack/base-close.yml
# Ejecutar la evaluación de ataques
python -m redeval.cli run-attack --config ./recipes/attack/base-open.yml --model "Qwen/Qwen2.5-7B-Instruct"
# Evaluar los resultados de ataque
python -m redeval.cli eval-attack --config ./recipes/attack/eval.yml --log-dir ./logs/attack/HarmBench/direct/model_name
# Ejecutar pruebas de rechazo
python -m redeval.cli run-refuse --config ./recipes/refuse/base-open.yml --model "Qwen/Qwen2.5-7B-Instruct"
# Evaluar los resultados de rechazo
python -m redeval.cli eval-refuse --config ./recipes/refuse/eval.yml --log-dir ./logs/refuse/CoCoNot/base/model_name
# Calcular puntuaciones
python -m redeval.cli score --log-dir ./logs/attack/HarmBench/direct/model_name --keyword "unsafe"
Para los usuarios que prefieran scripts de shell:
# Configurar el entorno (ejecutar primero)
source ./sh/setup_env.sh
# Ejecutar fases de evaluación
./sh/generate_attack.sh # Generar prompts de ataque
./sh/run_attack.sh # Ejecutar ataques
./sh/eval_attack.sh # Evaluar resultados de ataque
./sh/run_refuse.sh # Ejecutar pruebas de rechazo
./sh/eval_refuse.sh # Evaluar resultados de rechazo
./sh/score.sh # Calcular puntuaciones finales
Para acceso programático:
from redeval.pipeline import PipelineOrchestrator, PipelinePhase
from redeval.config import EnvironmentConfig
# Inicializar la configuración
config = EnvironmentConfig.from_env()
# Crear el orquestador del pipeline
orchestrator = PipelineOrchestrator(config)
# Ejecutar el pipeline completo
orchestrator.run_complete_pipeline()
# Ejecutar fases específicas
orchestrator.run_phase(PipelinePhase.GENERATE_ATTACK)
orchestrator.run_phase(PipelinePhase.RUN_ATTACK)
.env con validaciónrun-pipelineEjecuta el pipeline completo de evaluación o fases específicas.
Opciones:
--models: Lista de modelos a evaluar--phases: Fases específicas a ejecutar--config-dir: Ruta del directorio de configuración--log-dir: Directorio de salida para los logsgenerate-attackGenera prompts de ataque adversarios.
Opciones:
--config: Ruta del archivo de configuración--num-samples: Número de muestras a generar--seed: Semilla aleatoria para la reproducibilidadrun-attackEjecuta la evaluación de ataques contra los modelos objetivo.
Opciones:
--config: Ruta del archivo de configuración--model: Nombre del modelo objetivo--num-samples: Número de muestras a procesareval-attackEvalúa los resultados de ataque mediante modelos jueces.
Opciones:
--config: Ruta del archivo de configuración--log-dir: Directorio que contiene los logs de ataquerun-refuseEjecuta las pruebas de la capacidad de rechazo.
Opciones:
--config: Ruta del archivo de configuración--model: Nombre del modelo objetivo--num-samples: Número de muestras a probar--split: División del conjunto de datos a utilizareval-refuseEvalúa los resultados de las pruebas de rechazo.
Opciones:
--config: Ruta del archivo de configuración--log-dir: Directorio que contiene los logs de rechazoscoreCalcula las puntuaciones de seguridad a partir de los resultados de la evaluación.
Opciones:
--log-dir: Directorio que contiene los logs de evaluación--keyword: Palabra clave a buscar en los resultadosPipelineOrchestratorGestión centralizada del pipeline.
Métodos:
run_complete_pipeline(): Ejecuta el pipeline completo de evaluaciónrun_phase(phase): Ejecuta una fase específica del pipelineget_phase_status(phase): Obtiene el estado de una fase del pipelineEnvironmentConfigGestión del entorno y la configuración.
Métodos:
from_env(): Carga la configuración desde variables de entornovalidate(): Valida la integridad de la configuraciónsetup_logging(): Configura el sistema de registroHacer fork y clonar
git clone https://github.com/knoveleng/redeval.git
cd redeval
Crear el entorno de desarrollo
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
pip install -r requirements.txt
Configurar los hooks de pre-commit
pip install pre-commit
pre-commit install
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Si encuentras útil este proyecto, considera citarlo en tu investigación:
@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}
}
| Variable | Descripción | Valor predeterminado |
|---|
REDEVAL_PROJECT_ROOT | Directorio raíz del proyecto | Directorio actual |
REDEVAL_LOG_DIR | Directorio de logs | ./logs |
REDEVAL_RECIPES_DIR | Directorio de configuración | ./recipes |
REDEVAL_LOG_LEVEL | Nivel de registro | INFO |
REDEVAL_NUM_SAMPLES | Número de muestras de evaluación | 10 |
REDEVAL_SEED | Semilla aleatoria | 0 |