
[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_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
للوصول البرمجي:
from redeval.pipeline import PipelineOrchestrator, PipelinePhase
from redeval.config import EnvironmentConfig
# Initialize configuration
config = EnvironmentConfig.from_env()
# Create pipeline orchestrator
orchestrator = PipelineOrchestrator(config)
# Run complete pipeline
orchestrator.run_complete_pipeline()
# Run specific phases
orchestrator.run_phase(PipelinePhase.GENERATE_ATTACK)
orchestrator.run_phase(PipelinePhase.RUN_ATTACK)
.env مع التحقق من الصحةrun-pipelineتشغيل خط أنابيب التقييم الكامل أو مراحل محددة.
الخيارات:
--models: قائمة النماذج المراد تقييمها--phases: المراحل المحددة التي سيتم تشغيلها--config-dir: مسار مجلد الإعدادات--log-dir: مجلد الإخراج للسجلاتgenerate-attackتوليد مطالبات هجوم عدائية.
الخيارات:
--config: مسار ملف الإعداد--num-samples: عدد العينات المطلوب توليدها--seed: البذرة العشوائية لضمان إمكانية إعادة الإنتاجrun-attackتنفيذ تقييم الهجوم ضد النماذج المستهدفة.
الخيارات:
--config: مسار ملف الإعداد--model: اسم النموذج المستهدف--num-samples: عدد العينات المطلوب معالجتهاeval-attackتقييم نتائج الهجوم باستخدام نماذج الحكم.
الخيارات:
--config: مسار ملف الإعداد--log-dir: المجلد الذي يحتوي سجلات الهجومrun-refuseتشغيل اختبار قدرة الرفض.
الخيارات:
--config: مسار ملف الإعداد--model: اسم النموذج المستهدف--num-samples: عدد العينات المطلوب اختبارها--split: تقسيم مجموعة البيانات المطلوب استخدامهeval-refuseتقييم نتائج اختبار الرفض.
الخيارات:
--config: مسار ملف الإعداد--log-dir: المجلد الذي يحتوي سجلات الرفضscoreحساب درجات السلامة من نتائج التقييم.
الخيارات:
--log-dir: المجلد الذي يحتوي سجلات التقييم--keyword: الكلمة المفتاحية للبحث عنها في النتائجPipelineOrchestratorإدارة مركزية لخط الأنابيب.
الطرق:
run_complete_pipeline(): تنفيذ خط أنابيب التقييم الكاملrun_phase(phase): تنفيذ مرحلة محددة من خط الأنابيبget_phase_status(phase): الحصول على حالة مرحلة خط الأنابيبEnvironmentConfigإدارة البيئة والإعدادات.
الطرق:
from_env(): تحميل الإعدادات من متغيرات البيئةvalidate(): التحقق من اكتمال الإعداداتsetup_logging(): إعداد نظام التسجيلالتفرع والاستنساخ
git clone https://github.com/knoveleng/redeval.git
cd redeval
إنشاء بيئة التطوير
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
إعداد خطافات pre-commit
pip install pre-commit
pre-commit install
هذا المشروع مرخّص بموجب رخصة MIT - راجع ملف LICENSE للتفاصيل.
إذا وجدت هذا المشروع مفيدًا، فيرجى التفكير في الاستشهاد به في بحثك:
@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}
}
| المتغير | الوصف | الافتراضي |
|---|
REDEVAL_PROJECT_ROOT | مجلد جذر المشروع | المجلد الحالي |
REDEVAL_LOG_DIR | مجلد السجلات | ./logs |
REDEVAL_RECIPES_DIR | مجلد الإعدادات | ./recipes |
REDEVAL_LOG_LEVEL | مستوى التسجيل | INFO |
REDEVAL_NUM_SAMPLES | عدد عينات التقييم | 10 |
REDEVAL_SEED | البذرة العشوائية | 0 |