
[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_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 |
| 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