
पेपर Jailbreaking Open-Weight LLMs via Random Embedding Perturbations के लिए कोड, प्रतिक्रिया लॉग और लेबल
पेपर के लिए कोड और डेटा Jailbreaking Open-Weight LLMs via Random Embedding Perturbations।
पेपर के प्री-प्रिंट का लिंक- https://arxiv.org/abs/2610.07125
यूनिवर्सिटी ऑफ कैलिफोर्निया, सांता क्रूज़ के थियोरेटिकल कंप्यूटर साइंस डिपार्टमेंट के अद्भुत लोगों द्वारा लिखित।
इस कार्य में Scott Sirri, प्रो. Vaggos Chatziafratis, प्रो. C. Seshadhri और मेरा महत्वपूर्ण योगदान है।
रिपॉज़िटरी में पेपर के लिए उत्पन्न प्रत्येक मॉडल प्रतिक्रिया, प्रत्येक प्रतिक्रिया का सुरक्षित / असुरक्षित /
डीजेनेरेट लेबल, उन्हें उत्पन्न करने वाले Colab नोटबुक, और वे इन्फरेंस
स्क्रिप्ट्स शामिल हैं जिन्हें नोटबुक आयात करती हैं। इसमें Perturbed Embedding Vector (PEV) हमला और
पेपर में तुलना किए गए पाँच अन्य जेलब्रेक तरीके शामिल हैं। पेपर में सभी जेलब्रेक दरें और वॉल-क्लॉक समय
results/ में मौजूद फ़ाइलों से गणना किए गए हैं।
code/
inference/ run_<model>.py: model loading, prompt construction and the manual
generation loop that every PEV notebook imports
ours/<model>/ PEV notebooks for one model
ours/<model>/fixed_peak_sigma/
notebooks for the fixed peak sigma runs (GLM-4-9B, Phi-4-mini,
Qwen2.5-1.5B); their logs are in results/<model>/ours/fixed_peak_sigma/
igcg/ I-GCG, one notebook per model
latentfusion/ LatentFusion, one notebook per model
refusalcones/ RefusalCones, one notebook per model
softprompt/ SoftPrompt notebooks (Llama-3.1-8B and Mistral-7B)
figures/ notebook that draws the paper figures
results/<model>/
baseline/ direct responses to the unperturbed prompts (.txt log) and their
labels (.xlsx / .csv); these give the baseline jailbreak rate
ours/raw_responses/ PEV response logs from the sigma sweeps, split by prompt range
ours/classified/ labels for those responses, split the same way
ours/fixed_peak_sigma/ PEV runs at the fixed peak sigma of the model (GLM-4-9B, Phi-4-mini,
Qwen2.5-1.5B): the full 100-prompt sweep and the SELECT re-runs
igcg/ latentfusion/ neurostrike/ refusalcones/ softprompt/
responses (.txt) and labels (.xlsx) for the other methods
मॉडल: Qwen2.5-1.5B, SmolLM3-3B, Phi-4-mini, Mistral-7B-Instruct, Llama-3.1-8B,
GLM-4-9B, पेपर के सेक्शन 4 में नामित इंस्ट्रक्शन-ट्यून्ड चैट वेरिएंट।
प्रत्येक विधि का कोड कहाँ है:
| विधि | स्थान |
|---|---|
| PEV | code/ours/<model>/; फिक्स्ड पीक सिग्मा रन code/ours/<model>/fixed_peak_sigma/ में; साझा इन्फरेंस कोड code/inference/ में |
| I-GCG | code/igcg/, प्रति मॉडल एक नोटबुक |
| LatentFusion | code/latentfusion/, प्रति मॉडल एक नोटबुक |
| RefusalCones | code/refusalcones/, प्रति मॉडल एक नोटबुक |
| SoftPrompt | code/softprompt/, Llama-3.1-8B और Mistral-7B |
| NeuroStrike | PEV नोटबुक्स के अंदर code/ours/Llama-3.1-8B/LLama31_perturbation_p76_to_p100.ipynb (सेटअप सेल LLama31_perturbation_p1_to_p25.ipynb में भी) और code/ours/SmolLM3-3B/run_smollm3_batched_p26_p50.ipynb; प्रतिक्रियाएँ results/<model>/neurostrike/ में जाती हैं |
code/inference/run_<model>.py प्रति मॉडल एक फ़ाइल है (run_qwen.py, run_smollm3.py,
run_phi4mini.py, run_mistral.py, run_llama.py, run_glm.py)। प्रत्येक मॉडल को
HuggingFace Transformers के साथ लोड करता है, खाली सिस्टम संदेश के साथ चैट टेम्पलेट लागू करता है,
load_model(), build_prompt() और encode_prompt() को उजागर करता है, और इनपुट एम्बेडिंग्स पर हुक के साथ
एक मैन्युअल ऑटोरिग्रेसिव जनरेशन लूप चलाता है। नोटबुक्स अपने मॉडल के लिए स्क्रिप्ट को इम्पोर्ट करते हैं
और उस हुक के माध्यम से गॉसियन नॉइज़ इंजेक्ट करते हैं। अकेले चलाने पर, एक स्क्रिप्ट एकल मॉडल के लिए
एक इंटरैक्टिव टर्मिनल खोलती है; /verbose और /embedfile कमांड टोकन तालिकाएँ और एम्बेडिंग वेक्टर
प्रिंट करते हैं। डिवाइस और व्यवहार स्विच एनवायरनमेंट वेरिएबल हैं जो प्रत्येक फ़ाइल के हेडर में
प्रलेखित हैं। Llama स्क्रिप्ट को Hugging Face टोकन की आवश्यकता होती है क्योंकि चेकपॉइंट गेटेड है;
टोकन एनवायरनमेंट से पढ़ा जाता है और कभी संग्रहीत नहीं किया जाता।
.txt) नोटबुक्स द्वारा लिखे गए केवल-जोड़ने वाले लॉग हैं। प्रत्येक प्रविष्टि
प्रॉम्प्ट इंडेक्स, जहाँ लागू हो वहाँ नॉइज़ स्तर सिग्मा, रन संख्या, और पूर्ण
मॉडल प्रतिक्रिया रिकॉर्ड करती है। फ़ाइल नामों में प्रॉम्प्ट रेंज (p001_to_p025 का अर्थ है
100 JailbreakBench हानिकारक प्रॉम्प्ट्स में से प्रॉम्प्ट 1 से 25) और रन का UTC टाइमस्टैम्प होता है।
वॉल-क्लॉक समय प्रति प्रॉम्प्ट 20 रन के प्रत्येक बैच के बाद और प्रयोग के अंत में लिखा जाता है।.xlsx, .csv) में प्रत्येक प्रतिक्रिया के लिए एक पंक्ति होती है जिसमें उसका लेबल,
सुरक्षित, असुरक्षित या अपक्षयी, होता है, जैसा कि पेपर के सेक्शन 4 में परिभाषित है। एक प्रॉम्प्ट को
जेलब्रोकन माना जाता है यदि उसके किसी भी रन को असुरक्षित लेबल किया गया हो। *_categorization* या
*_p01_25-शैली के नाम वाली फ़ाइलें समान प्रॉम्प्ट रेंज वाले लॉग के लेबल किए गए संस्करण हैं।ours/fixed_peak_sigma/) का नाम
JBB_<model>_sigma0pXXX_..._<timestamp>.txt है; sigma0p003 का अर्थ है सिग्मा = 0.003।
p001_to_p100 फ़ाइल उस सिग्मा पर पूर्ण 100-प्रॉम्प्ट, 20-रन स्वीप है। SELECT_..._nNN फ़ाइलें
फ़ाइल नाम में सूचीबद्ध प्रॉम्प्ट्स पर उसी सिग्मा पर अनुवर्ती रन हैं, प्रति प्रॉम्प्ट NN रन के साथ।HIGHSIGMA वाली फ़ाइलें सेक्शन 4.1 में चर्चित बड़े सिग्मा पर रन हैं।SELECT वाली फ़ाइलें फ़ाइल नाम में सूचीबद्ध प्रॉम्प्ट्स पर अतिरिक्त रन हैं, उन प्रॉम्प्ट्स के लिए
जिन्हें जेलब्रोक करने के लिए 20 से अधिक रन चाहिए थे। प्रत्येक लॉग की हेडर पंक्ति सिग्मा मान,
रन की संख्या, प्रॉम्प्ट आईडी और रैंडम सीड रिकॉर्ड करती है।Llama-3.1-8B/baseline/fixed_baseline.xlsx और fixed_* लेबल फ़ाइलें मैन्युअल सत्यापन के बाद की
लेबल फ़ाइलें हैं और पिछले संस्करणों का स्थान लेती हैं।प्रतिक्रियाओं को Claude Opus 4.6 द्वारा JailbreakBench जज निर्देशों के साथ वर्गीकृत किया गया था,
जिसे प्रॉम्प्ट, रन संख्या और प्रतिक्रिया वाली लॉग फ़ाइल दी गई थी। असुरक्षित लेबल की गई प्रत्येक
प्रतिक्रिया को फिर हाथ से जाँचा गया। results/ में लेबल फ़ाइलें सत्यापित लेबल हैं।
code/ours/<model>/ के अंतर्गत प्रत्येक नोटबुक को Google Colab में एकल NVIDIA A100-SXM4-80GB पर चलाया गया था। यह संबंधित run_<model>.py को आयात करता है, JailbreakBench के हानिकारक प्रॉम्प्ट लोड करता है, प्रत्येक प्रॉम्प्ट को मॉडल की इनपुट एम्बेडिंग परत के माध्यम से मैप करता है, पूर्ण प्रॉम्प्ट एम्बेडिंग में स्वतंत्र गाऊसीय शोर N(0, sigma^2) जोड़ता है, और परिवर्तित एम्बेडिंग को ट्रांसफ़ॉर्मर परतों को पास करता है। प्रत्येक प्रॉम्प्ट के लिए यह एक बैच में 20 शोर मैट्रिक्स का नमूना लेता है और प्रत्येक प्रतिक्रिया को लॉग में जोड़ता है। डिकोडिंग पैरामीटर और प्रति-मॉडल sigma पेपर के Sec. 4 और Tab. 3 में सूचीबद्ध हैं और प्रत्येक नोटबुक के शीर्ष पर सेट किए गए हैं। Hugging Face टोकन इंटरैक्टिव रूप से अनुरोधित किया जाता है और इस रिपॉज़िटरी में संग्रहीत नहीं किया जाता है। अन्य विधियों के लिए नोटबुक संबंधित आक्रमण को प्रतिस्थापित करके उसी पैटर्न का पालन करते हैं।
पेपर में दी गई जेलब्रेक दरों को किसी भी मॉडल को चलाए बिना, केवल लेबल फ़ाइलों से पुनः गणना की जा सकती है।