
[ICLR 2026] - Repository ufficiale del paper: "RedBench: A Universal Dataset for Comprehensive Red Teaming of Large Language Models"
Un framework completo per valutare la sicurezza dei Large Language Model (LLM) attraverso test sistematici di attacco e rifiuto. RedEval fornisce una piattaforma unificata, sicura ed estensibile per valutare la robustezza degli LLM contro prompt avversari e contenuti dannosi. Fa parte dell'articolo "RedBench: A Universal Dataset for Comprehensive Red Teaming of Large Language Models", un dataset universale per il red teaming completo degli LLM.
📦 Dataset: Il dataset RedBench è disponibile pubblicamente su HuggingFace all'indirizzo knoveleng/redbench. Include prompt di red teaming completi in molteplici categorie e domini di sicurezza.
# Clona il repository
git clone https://github.com/knoveleng/redeval.git
cd redeval
# Installa le dipendenze
pip install -r requirements.txt
# Copia e configura le variabili d'ambiente
cp .env.template .env
# Modifica .env con le tue chiavi API
Modifica il file .env con le tue credenziali:
OPENAI_API_KEY=your_openai_api_key_here
HUGGINGFACE_TOKEN=your_huggingface_token_here
# Configura l'ambiente
source ./sh/setup_env.sh
# Esegui con i modelli predefiniti, puoi modificare .env per definire i modelli che vuoi eseguire
python -m redeval.cli run-pipeline
# Esegui la pipeline completa con modelli specifici
python -m redeval.cli run-pipeline --models "Qwen/Qwen2.5-7B-Instruct" "gpt-4o-mini"
# Oppure esegui le singole fasi
./sh/generate_attack.sh
./sh/run_attack.sh
./sh/eval_attack.sh
RedEval valuta la sicurezza degli LLM attraverso due approcci complementari:
Verifica la vulnerabilità degli LLM a prompt avversari utilizzando varie tecniche di jailbreak:
Valuta la capacità degli LLM di rifiutare in modo appropriato richieste dannose attraverso molteplici dataset di sicurezza:
Calcola metriche di sicurezza complete combinando le prestazioni sia di attacco che di rifiuto.
redeval/
├── redeval/ # Moduli Python principali
│ ├── config.py # Gestione ambiente e configurazione
│ ├── pipeline.py # Orchestratore centralizzato della pipeline
│ ├── cli.py # Interfaccia a riga di comando unificata
│ ├── exceptions.py # Gestione personalizzata delle eccezioni
│ ├── generate_attack.py # Generazione dei prompt di attacco
│ ├── run_attack.py # Esecuzione degli attacchi
│ ├── eval_attack.py # Valutazione degli attacchi
│ ├── run_refuse.py # Test di rifiuto
│ ├── eval_refuse.py # Valutazione del rifiuto
│ └── score.py # Calcolo delle metriche
├── sh/ # Interfacce script di shell
│ ├── setup_env.sh # Configurazione dell'ambiente
│ ├── generate_attack.sh # Script di generazione degli attacchi
│ ├── run_attack.sh # Script di esecuzione degli attacchi
│ ├── eval_attack.sh # Script di valutazione degli attacchi
│ ├── run_refuse.sh # Script di test del rifiuto
│ ├── eval_refuse.sh # Script di valutazione del rifiuto
│ └── score.sh # Script di punteggio
├── recipes/ # File di configurazione
├── logs/ # Risultati della valutazione
└── .env # Variabili d'ambiente
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]
Clona il Repository
git clone <repository-url>
cd redeval
Installa le Dipendenze
pip install -r requirements.txt
Configura l'Ambiente
cp .env.template .env
# Modifica .env con le tue credenziali API
Verifica l'Installazione
python -m redeval.cli --help
RedEval utilizza variabili d'ambiente per una configurazione sicura e flessibile:
| Variabile | Descrizione | Esempio |
|---|---|---|
OPENAI_API_KEY | Chiave API OpenAI | sk-proj-... |
HUGGINGFACE_TOKEN | Token HuggingFace | hf_... |
| Variabile | Descrizione | Predefinito |
|---|---|---|
REDEVAL_PROJECT_ROOT | Directory principale del progetto | Directory corrente |
REDEVAL_LOG_DIR | Directory dei log | ./logs |
REDEVAL_RECIPES_DIR | Directory di configurazione | ./recipes |
REDEVAL_LOG_LEVEL | Livello di logging | INFO |
REDEVAL_NUM_SAMPLES | Numero di campioni di valutazione | 10 |
REDEVAL_SEED | Seme casuale | 0 |
| Variabile | Descrizione | Predefinito |
|---|---|---|
REDEVAL_OPEN_SOURCE_MODELS | Elenco modelli open-source | "Qwen/Qwen2.5-7B-Instruct" |
REDEVAL_CLOSED_SOURCE_MODELS | Elenco modelli closed-source | "gpt-4o-mini" |
I file di configurazione nella directory recipes/ controllano i parametri di valutazione:
attack/base-open.yml - Configurazione attacco per modelli open-sourceattack/base-close.yml - Configurazione attacco per modelli closed-sourceattack/eval.yml - Configurazione valutazione attacchirefuse/base-open.yml - Configurazione rifiuto per modelli open-sourcerefuse/base-close.yml - Configurazione rifiuto per modelli closed-sourcerefuse/eval.yml - Configurazione valutazione del rifiutoRedEval fornisce una CLI unificata per tutte le operazioni:
# Esegui la pipeline di valutazione completa
python -m redeval.cli run-pipeline
# Esegui con modelli specifici
python -m redeval.cli run-pipeline --models "Qwen/Qwen2.5-7B-Instruct" "gpt-4o-mini"
# Esegui solo fasi specifiche
python -m redeval.cli run-pipeline --phases generate_attack run_attack eval_attack
# Genera i prompt di attacco
python -m redeval.cli generate-attack --config ./recipes/attack/base-close.yml
# Esegui la valutazione degli attacchi
python -m redeval.cli run-attack --config ./recipes/attack/base-open.yml --model "Qwen/Qwen2.5-7B-Instruct"