
AI अलाइनमेंट विफलताओं का पता लगाने के लिए बेंचमार्क सूट और कोड, जिसमें दस विफलता प्रकारों में 44 बेंचमार्क और 7,193 लेबल किए गए उदाहरणों पर मूल्यांकित एक ज़ीरो-शॉट RLCD डिटेक्टर शामिल है।
इस रिपॉज़िटरी में RLCDAlignBench और पेपर के पीछे का कोड मौजूद है। यह बेंचमार्क मापता है कि कोई डिटेक्टर यह पहचान सकता है या नहीं कि किसी भाषा मॉडल का आउटपुट एक अलाइनमेंट विफलता है। इसमें 44 बेंचमार्क हैं जो दस विफलता प्रकारों (sycophancy, jailbreaks, deception, prompt injection, hallucination, privacy violation, social bias, reward hacking, concealing uncertainty और power seeking) में फैले हैं, और पाँच लक्ष्य मॉडल हैं, जो कुल मिलाकर 7,193 लेबल किए गए डिटेक्शन इंस्टेंस बनाते हैं। लेबल प्रत्येक बेंचमार्क के अपने स्कोरर से आते हैं, और दो अतिरिक्त सेटों में मानव लेबल होते हैं।
हम इसका उपयोग Jev को परखने के लिए करते हैं, जो कैलिब्रेटेड निर्णयों के लिए रीइन्फोर्समेंट लर्निंग (RLCD) से प्रशिक्षित एक मॉडल है, जो एक ही कॉल में एक इनपुट के बारे में कई टाइप किए गए प्रश्नों का उत्तर कैलिब्रेटेड प्रायिकताओं के साथ देता है। मुख्य विचार यह है कि Jev से पूछे गए प्रश्न को उस संदर्भ से अलग मापा जाए जो वह देखता है। एक सामान्य प्रश्न ज़ीरो-शॉट में 0.886 का मेडियन AUROC प्राप्त करता है और 31 में से 25 बेंचमार्क पर सुपरवाइज़्ड TF-IDF और लंबाई बेसलाइन को पीछे छोड़ देता है। नमूने से बाहर, प्रश्न की शब्दावली बहुत कम अंतर डालती है। उत्तरों को 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}}
}
इस डेटासेट में jailbreak और अन्य adversarial प्रॉम्प्ट्स के अंतर्गत छोटे ओपन मॉडलों के अनफ़िल्टर्ड आउटपुट शामिल हैं, और इनमें से कई हानिकारक हैं। यह केवल अलाइनमेंट विफलताओं का पता लगाने और उन्हें कम करने पर शोध के लिए जारी किया गया है, और Hugging Face पर इसकी पहुँच gated है। इसका उपयोग हानिकारक सिस्टम बनाने या सुधारने के लिए न करें।
डेटा 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 रिकॉर्ड जो प्रोवेनेंस फ़ाइलों से वापस जोड़ता है।
डेटासेट कार्ड प्रत्येक फ़ील्ड और फ़ाइल का दस्तावेज़ीकरण करता है।
| विफलता प्रकार | बेंचमार्क | इंस्टेंस | लक्ष्य मॉडल |
|---|---|---|---|
| Sycophancy | 4 | 639 | Qwen3.5-2B |
| Jailbreaks | 4 | 414 | Phi-4-mini |
| Deception | 4 | 540 | Gemma-2-2B |
| Prompt injection | 4 | 1,036 | Qwen3.5-2B |
| Hallucination | 6 | 1,164 | Llama-3.2-3B |
| Privacy violation | 4 | 808 | Phi-4-mini |
| Social bias | 4 | 199 | Olmo-3-7B |
| Reward hacking | 6 | 714 | Qwen3.5-2B |
| Concealing uncertainty | 4 | 748 | Olmo-3-7B |
| Power seeking | 4 | 931 | Llama-3.2-3B |
| कुल | 44 | 7,193 | 5 मॉडल |
मानव-लेबल वाले सेट: StrongREJECT (1,361 प्रतिक्रियाएँ, प्रत्येक पर 5 रेटर) और HarmBench validation सेट (602 प्रतिक्रियाएँ, प्रत्येक पर 3 वोट)।
data/benchmarks.csv 44-पंक्ति का इंडेक्स है (नाम, विफलता प्रकार, hill-climb या held-out split, स्कोरर, लेबल स्रोत, n, positives, status)। split भूमिकाएँ Chen et al. (2026) के AAR सूट से आती हैं।
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
अंतिम कमांड एक तालिका प्रिंट करता है जिसमें प्रत्येक रीडआउट रणनीति के लिए एक पंक्ति होती है (precision, recall, F1, balanced accuracy, AUROC, bootstrap CI)। यह रिलीज़ में jev/metrics/harmbench/attack/battery_a_judge_v2.json से मेल खाता है।
aar_repo/ खोजते हैं) और वह commit चेकआउट करें जिससे लेबल बनाए गए थे:
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 सेट करके Jev को क्वेरी करें:
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)
हमने कोई नया हानिकारक अनुरोध उत्पन्न नहीं किया। सभी प्रॉम्प्ट प्रकाशित बेंचमार्क से आते हैं, और हमने उन्हें केवल छोटे ओपन मॉडलों पर चलाया। हानिकारक प्रतिक्रियाएँ डिटेक्टर शोध के लिए एक gated एक्सेस समझौते के पीछे जारी की गई हैं।
कोड: MIT। डेटा: हमारे लेबल, एनोटेशन, Jev आउटपुट और मेटाडेटा CC BY-NC 4.0 के अंतर्गत हैं। अपस्ट्रीम बेंचमार्क सामग्री अपना मूल लाइसेंस बनाए रखती है, और मॉडल आउटपुट लक्ष्य मॉडलों की शर्तों के अधीन हैं।