
[ICLR 2026] - المستودع الرسمي للورقة البحثية: "RedBench: مجموعة بيانات عالمية للاختبار الأحمر الشامل لنماذج اللغة الكبيرة"
إطار عمل شامل لتقييم سلامة نماذج اللغة الكبيرة (LLMs) من خلال الاختبار المنهجي للهجوم والرفض. يوفر RedEval منصة موحدة وآمنة وقابلة للتوسع لتقييم متانة نماذج اللغة الكبيرة ضد المطالبات العدائية والمحتوى الضار. وهو جزء من الورقة البحثية "RedBench: مجموعة بيانات عالمية للاختبار الأحمر الشامل لنماذج اللغة الكبيرة"، وهي مجموعة بيانات عالمية للاختبار الأحمر الشامل لنماذج اللغة الكبيرة.
📦 مجموعة البيانات: مجموعة بيانات RedBench متاحة للعموم على HuggingFace عبر knoveleng/redbench. وتتضمن مطالبات اختبار أحمر شاملة عبر فئات ومجالات سلامة متعددة.
# 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 سلامة نماذج اللغة الكبيرة من خلال نهجين متكاملين:
تختبر قابلية تأثر نماذج اللغة الكبيرة بالمطالبات العدائية باستخدام تقنيات كسر الحماية المختلفة:
تقيّم قدرة نماذج اللغة الكبيرة على رفض الطلبات الضارة بشكل مناسب عبر مجموعات بيانات سلامة متعددة:
يحسب مقاييس سلامة شاملة تجمع بين أداء الهجوم والرفض معًا.
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 | مفتاح OpenAI API | sk-proj-... |
HUGGINGFACE_TOKEN | رمز HuggingFace | hf_... |
| المتغير | الوصف | الافتراضي |
|---|---|---|
REDEVAL_PROJECT_ROOT | مجلد جذر المشروع | المجلد الحالي |
REDEVAL_LOG_DIR | مجلد السجلات | ./logs |
REDEVAL_RECIPES_DIR | مجلد الإعدادات | ./recipes |
REDEVAL_LOG_LEVEL | مستوى التسجيل | INFO |
REDEVAL_NUM_SAMPLES | عدد عينات التقييم | 10 |
REDEVAL_SEED | البذرة العشوائية | 0 |
| المتغير | الوصف | الافتراضي |
|---|---|---|
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"
للمستخدمين الذين يفضلون استخدام السكربتات الطرفية:
# 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