
مجموعة معايير وشفرة برمجية لاكتشاف إخفاقات التوافق في الذكاء الاصطناعي، مع 44 معيارًا عبر عشرة أنواع من الإخفاقات وكاشف RLCD بدون أمثلة (zero-shot) مُقيَّم على 7,193 حالة مُصنَّفة.
يحتوي هذا المستودع على RLCDAlignBench والكود الذي يقف خلف الورقة البحثية. يقيس هذا المعيار ما إذا كان بإمكان كاشف أن يحدد متى يكون ناتج نموذج لغوي فشلاً في المحاذاة. يضم 44 معياراً عبر عشرة أنواع من الفشل (التزلف، كسر الحماية، الخداع، حقن الأوامر، الهلوسة، انتهاك الخصوصية، التحيز الاجتماعي، اختراق المكافأة، إخفاء عدم اليقين والسعي إلى السلطة) وخمسة نماذج مستهدفة، ليصل إلى 7,193 حالة كشف موسومة. تأتي الوسوم من مُقيِّم كل معيار على حدة، وهناك مجموعتان إضافيتان تحملان وسوماً بشرية.
نستخدمه لاختبار Jev، وهو نموذج مُدرَّب بالتعلم المعزز لاتخاذ قرارات معايرة (RLCD)، يجيب على العديد من الأسئلة المصنّفة حول مُدخل واحد باحتمالات معايرة في نداء واحد. الفكرة الأساسية هي قياس الذي يُطرح على Jev بشكل منفصل عن الذي يراه. يصل سؤال عام إلى وسيط AUROC قدره 0.886 في وضع Zero-Shot ويتفوق على خطوط الأساس الخاضعة للإشراف TF-IDF والطول في 25 من 31 معياراً. خارج العينة، لا تضيف صياغة السؤال إلا القليل. أما قراءة الإجابات كاحتمالات بدلاً من قرارات argmax فلها أثر كبير. ويساعد السياق في الغالب من خلال الحقول التي تُرمِّز الوسم.

@misc{rlcdalignbench2026,
title = {Just Ask Jev: Reinforcement Learning for Calibrated Decisions as a Zero-Shot Detector of AI Alignment Failures},
author = {Ruoqi Guo and Yi Liu and Gelei Deng and Yuekang Li and Lida Zhao and Simin Chen and Ying Zhang and Leo Yu Zhang},
year = {2026},
howpublished = {\url{https://github.com/sumleo/RLCDAlignBench}}
}
تحتوي مجموعة البيانات على مخرجات غير مُفلترة لنماذج مفتوحة صغيرة تحت أوامر كسر الحماية وغيرها من الأوامر العدائية، والكثير منها ضار. وهي تُنشر فقط لأغراض البحث في كشف فشل المحاذاة والتخفيف منه، والوصول إليها على Hugging Face مُقيَّد. لا تستخدمها لبناء أو تحسين أنظمة ضارة.
توجد البيانات على Hugging Face في sumleo/RLCDAlignBench. اطلب الوصول هناك، ثم:
from datasets import load_dataset
ds = load_dataset("sumleo/RLCDAlignBench", "harmbench", split="test") # one benchmark
all_ = load_dataset("sumleo/RLCDAlignBench", "all", split="test") # all 7,193 instances
تحتوي كل حالة على الحقول التي يراها الكاشف (state)، وlabel ثنائي (1 = الناتج فشل يجب على الكاشف الإشارة إليه)، وlabel_source، وtarget_model، وسجل meta يعود إلى ملفات المصدر.
توثّق بطاقة مجموعة البيانات كل حقل وملف.
| نوع الفشل | المعايير | الحالات | النموذج المستهدف |
|---|---|---|---|
| التزلف | 4 | 639 | Qwen3.5-2B |
| كسر الحماية | 4 | 414 | Phi-4-mini |
| الخداع | 4 | 540 | Gemma-2-2B |
| حقن الأوامر | 4 | 1,036 | Qwen3.5-2B |
| الهلوسة | 6 | 1,164 | Llama-3.2-3B |
| انتهاك الخصوصية | 4 | 808 | Phi-4-mini |
| التحيز الاجتماعي | 4 | 199 | Olmo-3-7B |
| اختراق المكافأة | 6 | 714 | Qwen3.5-2B |
| إخفاء عدم اليقين | 4 | 748 | Olmo-3-7B |
| السعي إلى السلطة | 4 | 931 | Llama-3.2-3B |
| الإجمالي | 44 | 7,193 | 5 نماذج |
المجموعات الموسومة بشرياً: StrongREJECT (1,361 استجابة، 5 مُقيِّمين لكل منها) ومجموعة التحقق HarmBench (602 استجابة، 3 أصوات لكل منها).
data/benchmarks.csv هو فهرس من 44 صفاً (الاسم، نوع الفشل، تقسيم hill-climb أو held-out، المُقيِّم، مصدر الوسم، n، الإيجابيات، الحالة). تأتي أدوار التقسيم من مجموعة AAR الخاصة بـ Chen وآخرين (2026).
يسرد data/variants.csv جميع متغيرات الإدخال الـ 132 المستخدمة في تجارب السياق.
يحتوي results/ على جداول مستوى الورقة البحثية.
على Hugging Face، يُنظَّم الإصدار كما يلي:
data/benchmarks/<failure_type>/<benchmark>.jsonl canonical instances (the paper's n)
data/human/<set>.jsonl human-labelled sets
data/variants/<benchmark>/<variant>.jsonl every input view: ablation, official track, oracle, exclusion, ...
jev/responses/<benchmark>/<variant>/<battery>.jsonl Jev's per-question probabilities for every instance
jev/metrics/<benchmark>/<variant>/<battery>.json per-strategy precision, recall, F1, AUROC
provenance/ target-model generations, reference-scorer calls, official scores, logs
| المكوّن | الموقع |
|---|---|
| التوليد وإعادة تشغيل المُقيِّم حول منصة AAR | code/generation/run_generate.py |
| بُناة عينات الكشف (واحد لكل عائلة بطارية) | code/build_samples_*.py |
| بطاريات الأسئلة (الأسئلة المطروحة على Jev واستراتيجيات القراءة) | code/battery_*.py |
| مشغّل Jev والتخزين المؤقت والمقاييس | code/run_jev.py, code/run_batch.sh |
| مدقّقات البطاريات (تسرب المعايير، التنسيق) | code/lint_battery.py, code/lint_criteria_leak.py |
| ملخص النتائج | code/make_results_summary.py |
| أدوات الإصدار | tools/build_release.py, tools/legacy_layout.py |
يحتاج الكود إلى Python 3.10 أو أحدث (استخدمت الورقة البحثية 3.12) وإلى المكتبة القياسية فقط. كما تحتاج أدوات الإصدار إلى pandas.
لا يرسل هذا أي طلبات ولا يحتاج إلى مفاتيح. يُعاد حساب كل مقياس من إجابات Jev المخزنة مؤقتاً.
pip install -U "huggingface_hub[cli]" pandas
huggingface-cli login # after your access request is approved
huggingface-cli download sumleo/RLCDAlignBench --repo-type dataset --local-dir hf
python tools/legacy_layout.py --release hf --out work # rebuilds the layout the scripts expect, checks sha256
python work/code/restore_layout.py
python work/code/run_jev.py --leg harmbench --battery battery_a_judge \
--samples work/code/samples/harmbench__microsoft__Phi-4-mini-instruct__attack.jsonl --rescore
يطبع الأمر الأخير جدولاً بصف واحد لكل استراتيجية قراءة (الدقة، الاستدعاء، F1، الدقة المتوازنة، AUROC، فاصل ثقة bootstrap). وهو يطابق jev/metrics/harmbench/attack/battery_a_judge_v2.json في الإصدار.
aar_repo/ هناك) واخرج إلى الالتزام الذي بُنيت منه الوسوم:
git clone https://github.com/YuehHanChen/automated_alignment_researcher aar_repo
git -C aar_repo checkout 02dbe9d2cadc553720d17cdf6259c0b8727e6cde
aar_repo/REPRODUCE.md):
python code/generation/run_generate.py --axis refusal --repo aar_repo # phase 1, judges stubbed
python code/generation/run_generate.py --axis refusal --repo aar_repo --replay # phase 2, real judges
code/build_samples_*.py (تأخذ العائلات المُقيَّمة من المُقيِّم a وbc وf الخيار --attach-judges). تعيد البُناة حساب كل درجة إجمالية رسمية من الوسوم وتتوقف إذا اختلفت عن الدرجة الرسمية.TYPESAFE_API_KEY:
python code/run_jev.py --leg harmbench --battery battery_a_judge --samples <file> --limit 20 # pilot
python code/run_jev.py --leg harmbench --battery battery_a_judge --samples <file> # full
تدفق البيانات: calls.jsonl → run_generate.py --replay → judge_calls.jsonl → build_samples_*.py → detection samples → run_jev.py → responses + metrics.
RLCDAlignBench/
├── paper.pdf
├── code/ experiment code (generation, sample builders, batteries, Jev runner)
├── data/
│ ├── benchmarks.csv 44-row benchmark index
│ └── variants.csv 132 input variants
├── results/ paper-level tables (main results, baselines, human agreement, cost, corrected labels)
├── figs/ paper figures
├── tools/ release build and legacy-layout tools
└── docs/ project page (GitHub Pages)
لم نولّد أي طلبات ضارة جديدة. تأتي جميع الأوامر من معايير منشورة، ولم نشغّلها إلا على نماذج مفتوحة صغيرة. تُنشر الاستجابات الضارة خلف اتفاقية وصول مُقيَّد لأغراض البحث في الكشف.
الكود: MIT. البيانات: وسومنا وتعليقاتنا ومخرجات Jev والبيانات الوصفية تخضع لـ CC BY-NC 4.0. يحتفظ محتوى المعايير الأصلية بترخيصه الأصلي، وتخضع مخرجات النماذج لشروط النماذج المستهدفة.