
[ICLR 2026] - Repositório oficial do artigo: 'RedBench: A Universal Dataset for Comprehensive Red Teaming of Large Language Models'
Um framework abrangente para avaliar a segurança de Grandes Modelos de Linguagem (LLMs) por meio de testes sistemáticos de ataque e recusa. O RedEval fornece uma plataforma unificada, segura e extensível para avaliar a robustez de LLMs contra prompts adversariais e conteúdo prejudicial. Ele faz parte do artigo "RedBench: A Universal Dataset for Comprehensive Red Teaming of Large Language Models", que é um dataset universal para red teaming abrangente de LLMs.
📦 Dataset: O dataset RedBench está disponível publicamente no HuggingFace em knoveleng/redbench. Ele inclui prompts abrangentes de red teaming em várias categorias e domínios de segurança.
# Clone o repositório
git clone https://github.com/knoveleng/redeval.git
cd redeval
# Instale as dependências
pip install -r requirements.txt
# Copie e configure as variáveis de ambiente
cp .env.template .env
# Edite .env com suas chaves de API
Edite o arquivo .env com suas credenciais:
OPENAI_API_KEY=sua_chave_openai_api_aqui
HUGGINGFACE_TOKEN=seu_token_huggingface_aqui
# Configure o ambiente
source ./sh/setup_env.sh
# Execute com modelos padrão; você pode editar .env para definir os modelos que deseja executar
python -m redeval.cli run-pipeline
# Execute o pipeline completo com modelos específicos
python -m redeval.cli run-pipeline --models "Qwen/Qwen2.5-7B-Instruct" "gpt-4o-mini"
# Ou execute fases individuais
./sh/generate_attack.sh
./sh/run_attack.sh
./sh/eval_attack.sh
O RedEval avalia a segurança de LLMs por meio de duas abordagens complementares:
Testa a vulnerabilidade do LLM a prompts adversariais usando várias técnicas de jailbreak:
Avalia a capacidade do LLM de recusar adequadamente solicitações prejudiciais em vários datasets de segurança:
Calcula métricas de segurança abrangentes combinando o desempenho de ataque e recusa.
redeval/
├── redeval/ # Módulos principais em Python
│ ├── config.py # Gerenciamento de ambiente e configuração
│ ├── pipeline.py # Orquestrador centralizado do pipeline
│ ├── cli.py # Interface de linha de comando unificada
│ ├── exceptions.py # Tratamento personalizado de exceções
│ ├── generate_attack.py # Geração de prompts de ataque
│ ├── run_attack.py # Execução de ataque
│ ├── eval_attack.py # Avaliação de ataque
│ ├── run_refuse.py # Teste de recusa
│ ├── eval_refuse.py # Avaliação de recusa
│ └── score.py # Cálculo de métricas
├── sh/ # Interfaces de script shell
│ ├── setup_env.sh # Configuração do ambiente
│ ├── generate_attack.sh # Script de geração de ataque
│ ├── run_attack.sh # Script de execução de ataque
│ ├── eval_attack.sh # Script de avaliação de ataque
│ ├── run_refuse.sh # Script de teste de recusa
│ ├── eval_refuse.sh # Script de avaliação de recusa
│ └── score.sh # Script de pontuação
├── recipes/ # Arquivos de configuração
├── logs/ # Resultados da avaliação
└── .env # Variáveis de ambiente
graph TD
A[Gerar Prompts de Ataque] --> B[Executar Testes de Ataque]
B --> C[Avaliar Resultados do Ataque]
D[Executar Testes de Recusa] --> E[Avaliar Resultados da Recusa]
C --> F[Calcular Pontuações Finais]
E --> F
F --> G[Gerar Relatórios]Clonar Repositório
git clone <url-do-repositorio>
cd redeval
Instalar Dependências
pip install -r requirements.txt
Configurar Ambiente
cp .env.template .env
# Edite .env com suas credenciais de API
Verificar Instalação
python -m redeval.cli --help
O RedEval usa variáveis de ambiente para configuração segura e flexível:
| Variável | Descrição | Exemplo |
|---|---|---|
OPENAI_API_KEY | Chave da API OpenAI | sk-proj-... |
HUGGINGFACE_TOKEN | Token do HuggingFace | hf_... |
| Variável | Descrição | Padrão |
|---|---|---|
REDEVAL_OPEN_SOURCE_MODELS | Lista de modelos open-source | "Qwen/Qwen2.5-7B-Instruct" |
REDEVAL_CLOSED_SOURCE_MODELS | Lista de modelos closed-source | "gpt-4o-mini" |
Os arquivos de configuração no diretório recipes/ controlam os parâmetros de avaliação:
attack/base-open.yml - Configuração de ataque para modelos open-sourceattack/base-close.yml - Configuração de ataque para modelos closed-sourceattack/eval.yml - Configuração de avaliação de ataquerefuse/base-open.yml - Configuração de recusa para modelos open-sourcerefuse/base-close.yml - Configuração de recusa para modelos closed-sourcerefuse/eval.yml - Configuração de avaliação de recusaO RedEval fornece uma CLI unificada para todas as operações:
# Execute o pipeline de avaliação completo
python -m redeval.cli run-pipeline
# Execute com modelos específicos
python -m redeval.cli run-pipeline --models "Qwen/Qwen2.5-7B-Instruct" "gpt-4o-mini"
# Execute apenas fases específicas
python -m redeval.cli run-pipeline --phases generate_attack run_attack eval_attack
# Gere prompts de ataque
python -m redeval.cli generate-attack --config ./recipes/attack/base-close.yml
# Execute avaliação de ataque
python -m redeval.cli run-attack --config ./recipes/attack/base-open.yml --model "Qwen/Qwen2.5-7B-Instruct"
# Avalie resultados do ataque
python -m redeval.cli eval-attack --config ./recipes/attack/eval.yml --log-dir ./logs/attack/HarmBench/direct/model_name
# Execute testes de recusa
python -m redeval.cli run-refuse --config ./recipes/refuse/base-open.yml --model "Qwen/Qwen2.5-7B-Instruct"
# Avalie resultados da recusa
python -m redeval.cli eval-refuse --config ./recipes/refuse/eval.yml --log-dir ./logs/refuse/CoCoNot/base/model_name
# Calcule pontuações
python -m redeval.cli score --log-dir ./logs/attack/HarmBench/direct/model_name --keyword "unsafe"
Para usuários que preferem scripts shell:
# Configure o ambiente (execute primeiro)
source ./sh/setup_env.sh
# Execute fases de avaliação
./sh/generate_attack.sh # Gere prompts de ataque
./sh/run_attack.sh # Execute ataques
./sh/eval_attack.sh # Avalie resultados do ataque
./sh/run_refuse.sh # Execute testes de recusa
./sh/eval_refuse.sh # Avalie resultados da recusa
./sh/score.sh # Calcule pontuações finais
Para acesso programático:
from redeval.pipeline import PipelineOrchestrator, PipelinePhase
from redeval.config import EnvironmentConfig
# Inicialize a configuração
config = EnvironmentConfig.from_env()
# Crie o orquestrador do pipeline
orquestrador = PipelineOrchestrator(config)
# Execute o pipeline completo
orquestrador.run_complete_pipeline()
# Execute fases específicas
orquestrador.run_phase(PipelinePhase.GENERATE_ATTACK)
orquestrador.run_phase(PipelinePhase.RUN_ATTACK)
.env com validaçãorun-pipelineExecute o pipeline de avaliação completo ou fases específicas.
Opções:
--models: Lista de modelos a serem avaliados--phases: Fases específicas a serem executadas--config-dir: Caminho do diretório de configuração--log-dir: Diretório de saída para logsgenerate-attackGere prompts de ataque adversariais.
Opções:
--config: Caminho do arquivo de configuração--num-samples: Número de amostras a gerar--seed: Semente aleatória para reprodutibilidaderun-attackExecute a avaliação de ataque contra modelos alvo.
Opções:
--config: Caminho do arquivo de configuração--model: Nome do modelo alvo--num-samples: Número de amostras a processareval-attackAvalie os resultados do ataque usando modelos juízes.
Opções:
--config: Caminho do arquivo de configuração--log-dir: Diretório contendo logs de ataquerun-refuseExecute o teste de capacidade de recusa.
Opções:
--config: Caminho do arquivo de configuração--model: Nome do modelo alvo--num-samples: Número de amostras a testar--split: Divisão do dataset a ser usadaeval-refuseAvalie os resultados do teste de recusa.
Opções:
--config: Caminho do arquivo de configuração--log-dir: Diretório contendo logs de recusascoreCalcule pontuações de segurança a partir dos resultados da avaliação.
Opções:
--log-dir: Diretório contendo logs de avaliação--keyword: Palavra-chave a ser pesquisada nos resultadosPipelineOrchestratorGerenciamento centralizado do pipeline.
Métodos:
run_complete_pipeline(): Execute o pipeline de avaliação completorun_phase(phase): Execute uma fase específica do pipelineget_phase_status(phase): Obtenha o status de uma fase do pipelineEnvironmentConfigGerenciamento de ambiente e configuração.
Métodos:
from_env(): Carregue a configuração a partir de variáveis de ambientevalidate(): Valide a integridade da configuraçãosetup_logging(): Configure o sistema de logFork e Clone
git clone https://github.com/knoveleng/redeval.git
cd redeval
Crie o Ambiente de Desenvolvimento
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
pip install -r requirements.txt
Configure Hooks de Pre-commit
pip install pre-commit
pre-commit install
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Se você achar este projeto útil, considere citá-lo em sua pesquisa:
@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}
}
| Variável | Descrição | Padrão |
|---|
REDEVAL_PROJECT_ROOT | Diretório raiz do projeto | Diretório atual |
REDEVAL_LOG_DIR | Diretório de logs | ./logs |
REDEVAL_RECIPES_DIR | Diretório de configuração | ./recipes |
REDEVAL_LOG_LEVEL | Nível de log | INFO |
REDEVAL_NUM_SAMPLES | Número de amostras de avaliação | 10 |
REDEVAL_SEED | Semente aleatória | 0 |