
हाईजैक किए गए LLM एजेंट्स के बेसलाइन डिटेक्टरों का मूल्यांकन दुर्लभ हमलों और वितरण बदलाव के अंतर्गत — इसके लिए कोड, व्युत्पन्न डेटा और परिणाम
महमूद अब्बासी (यूनिवर्सिटी ऑफ सलामांका), जुआन एम. न्यूनेज़ वी. (AIR इंस्टीट्यूट, सलामांका) और अमीन शाहराकी (यूनिवर्सिटी ऑफ ओस्लो) के पेपर के लिए कोड, व्युत्पन्न डेटा, परिणाम फ़ाइलें और प्रत्येक मॉनिटर कॉल।
यह पेपर उन डिटेक्टरों का मूल्यांकन करता है जो अपहृत LLM एजेंट्स को उनके टूल-कॉल ट्रेस से चिह्नित करते हैं: व्यवहारिक और संयुक्त विशेषताओं पर लॉजिस्टिक रिग्रेशन (LR-B, LR-C), एक GRU अनुक्रम मॉडल, फ्रोज़न स्टेप एम्बेडिंग्स पर एक ट्रांसफॉर्मर (SE), एक TF-IDF सामग्री संदर्भ, और जारी किया गया AlignmentCheck एक्शन मॉनिटर दो बैकबोन्स के साथ (MON-L, Llama 3.3 70B w4a16; MON-A, Claude Sonnet 5.5)। मूल्यांकन नियंत्रित हमला प्रसार पर, श्रेणीबद्ध टूल कवरेज के अंतर्गत और AgentDrift और AgentDojo पर विश्व, कार्य, डोमेन और क्रॉस-बेंचमार्क बदलावों के अंतर्गत चलाया जाता है।
EXTENDED_REPORT.pdf वह विस्तारित रिपोर्ट है जिसका पेपर में उद्धरण दिया गया है। यह इस कार्य का लंबा संस्करण है (38 पृष्ठ, मुख्य पाठ और अनुपूरक), जो तीसरे लेखक के जुड़ने से पहले लिखा गया था, और पेपर में संक्षेपित प्रत्येक विश्लेषण, उसके विचलनों सहित प्रत्येक विश्लेषण योजना, और सभी अनुपूरक तालिकाएँ प्रदान करता है।
| पथ | सामग्री |
|---|---|
EXTENDED_REPORT.pdf | विस्तारित रिपोर्ट (ऊपर देखें) |
featurise.py, evalkit.py, gru_detector.py, baseline_drift.py | साझा मॉड्यूल: फ़ीचर, मेट्रिक्स और बूटस्ट्रैप, GRU, मार्कोव और आइसोलेशन फ़ॉरेस्ट संदर्भ |
agentdojo_extract.py | टूल कॉल और अवलोकनों के स्थितीय युग्मन के साथ AgentDojo ट्रेस निकालता है |
agentdojo_traces.jsonl, agentdojo_failed.jsonl | निकाले गए AgentDojo ट्रेस (जनसंख्या P0, 392 सौम्य और 2,294 समझौता-ग्रस्त) और 4,987 असफल आक्रमण |
rerun_r1r3.py, ablation.py, world_disjoint_r1.py, r4_control.py, gru_ladder.py, gru_r3_diagnostic.py, pre_ablation_audit.py | पहले संस्करण की प्रयोग स्क्रिप्ट, संशोधित निष्कर्षण पर पुनः चलाई गई, उनकी परिणाम फ़ाइलों (*.json) के साथ |
R4_CONTROL.md, PRE_ABLATION_DESIGN.md, GRU_PREREGISTRATION.md, REVISION_ANALYSIS_PLAN.md | पहले अध्ययनों की चार आंतरिक विश्लेषण योजनाएँ |
SENCODER_PREREGISTRATION.md, revision/sencoder_run/SENCODER_PREREGISTRATION.amendment*.md, SENCODER_RESULTS.md | SE अध्ययन की योजना, संशोधन और परिणाम |
MONITOR_PREREGISTRATION.md, revision/monitor_run/MONITOR_PREREGISTRATION.*.md | मॉनिटर अध्ययन की योजना, उसका पहला संस्करण और संशोधन 1 से 4 |
revision/ | प्रेडिक्शन-कैश बिल्डर, विश्लेषण स्ट्रीम, उनकी परिणाम फ़ाइलें और सारांश, DEVIATIONS.md, RESULTS_SUMMARY.md, PLAN_MANIFEST.txt (प्रत्येक योजना और परिणाम के SHA-256 के साथ एक समय-मुद्रांकित लॉग) और पुनरुत्पादन गाइड REPRODUCIBILITY.md |
revision/sencoder_*.py, revision/sencoder_results.json, revision/sencoder_summary.md, revision/sencoder_run/ | SE: एम्बेडिंग, प्रशिक्षण और विश्लेषण स्क्रिप्ट, परिणाम, क्लस्टर लॉग और मैनिफ़ेस्ट |
revision/monitor_render.py, monitor_score_vllm.py, monitor_score_api.py, monitor_detector.py, monitor_tables.py | मॉनिटर अध्ययन: प्रति एजेंट चरण एक AlignmentCheck कॉल, vLLM (MON-L) के साथ और प्रदाता के बैच इंटरफ़ेस (MON-A) के साथ स्कोरिंग, स्थिर विश्लेषण और उसकी तालिकाएँ |
revision/monitor_results.json, revision/monitor_summary.md | स्थिर मॉनिटर विश्लेषण के परिणाम |
revision/monitor_run/ | प्रत्येक मॉनिटर कॉल और प्रत्येक कच्चा मॉनिटर आउटपुट उसके स्कोर के साथ (देखें revision/monitor_run/README.md) |
revision/cache/ | प्रेडिक्शन कैश की सत्यापन और सारांश फ़ाइलें। कैश किए गए प्रेडिक्शन और एम्बेडिंग स्वयं (लगभग 800 MB) शामिल नहीं हैं और स्क्रिप्ट द्वारा पुनर्निर्मित किए जाते हैं |
paper/ | वे स्क्रिप्ट जो परिणाम फ़ाइलों से प्रत्येक तालिका उत्पन्न करती हैं, उनके आउटपुट के साथ: tables/ (पहले अध्ययन), tables_sencoder/ (SE जोड़ता है) और tables_monitor/ (मॉनिटर जोड़ता है; ये पेपर और विस्तारित रिपोर्ट की तालिकाएँ हैं) |
paper_v06/make_figures_v06.py, paper_v06/fig_v06_* | पेपर के चित्र |
MANUSCRIPT_SOURCE.*.md, SUPPLEMENT_SOURCE.*.md | विस्तारित रिपोर्ट के स्रोत, जिनमें paper/build_sencoder.py और paper/build_monitor.py उत्पन्न तालिकाएँ सम्मिलित करते हैं |
archive_v0.3/ | पहले संस्करण के परिणाम और पूर्ववर्ती AgentDojo निष्कर्षण, विस्तारित रिपोर्ट में तुलनाओं के लिए रखे गए |
tests/ | AgentDojo निष्कर्षण का यूनिट टेस्ट |
THIRD_PARTY/ | AgentDojo और वेंडर किए गए AlignmentCheck स्कैनर (LlamaFirewall) के लाइसेंस |
डिटेक्टर परिणाम CPU पर CPython 3.10.4 के साथ गणना किए गए थे। SE एक Slurm क्लस्टर के एक नोड पर चला, और MON-L
vLLM 0.29.0 के साथ एक NVIDIA H100 80GB HBM3 पर (संस्करण revision/monitor_run/mon_l/env.json में)।
pip install -r revision/requirements-lock.txt --extra-index-url https://download.pytorch.org/whl/cpu
ऐसी स्क्रिप्ट्स जो मूल बेंचमार्क्स को पढ़ती हैं, उन्हें दो एनवायरनमेंट वेरिएबल्स की आवश्यकता होती है जो लोकल क्लोन्स की ओर इंगित करते हैं।
git clone https://github.com/Asif-0209/AgentDrift && git -C AgentDrift checkout 014a514f
git clone https://github.com/ethz-spylab/agentdojo && git -C agentdojo checkout 089ed468
export AGENTDRIFT=$PWD/AgentDrift
export AGENTDOJO=$PWD/agentdojo
तालिकाएँ और आकृतियाँ इस रिपॉज़िटरी में मौजूद परिणाम फ़ाइलों से पुनः उत्पन्न की जाती हैं। build_monitor.py मॉनिटर विश्लेषण मॉड्यूल को इम्पोर्ट करता है, जो इम्पोर्ट होते समय AGENTDRIFT को पढ़ता है, इसलिए उस वेरिएबल को सेट करना आवश्यक है।
cd paper
python gen_tables_v04.py # paper/tables/
python build_sencoder.py # paper/tables_sencoder/
python build_monitor.py # paper/tables_monitor/, the tables of the paper
cd ../paper_v06
python make_figures_v06.py # paper_v06/fig_v06_*.pdf and .png
दोनों बिल्ड स्क्रिप्ट्स MANUSCRIPT_SOURCE.*.md और SUPPLEMENT_SOURCE.*.md से विस्तारित रिपोर्ट का LaTeX भी तैयार करते हैं।
बेंचमार्क से प्रयोगों को पुनः चलाना डिटेक्टरों के लिए revision/REPRODUCIBILITY.md का, SE के लिए revision/sencoder_run/ के साथ SE योजना का, और मॉनिटर के लिए revision/monitor_run/README.md के साथ मॉनिटर योजना का पालन करता है।
<repo>, $AGENTDRIFT, $AGENTDOJO या <local> से बदल दिया गया है। कोई भी संख्यात्मक परिणाम नहीं बदला गया। PLAN_MANIFEST.txt और repro_checks.json में SHA-256 मान उन फ़ाइलों को संदर्भित करते हैं जैसी वे विश्लेषण मशीन पर थीं, इसलिए वे उन फ़ाइलों से मेल नहीं खाते जिनमें पथ बदला गया है। revision/offline_driver.sh को भी पोर्टेबल बनाया गया है। कोई भी Python स्क्रिप्ट संशोधित नहीं की गई, इसलिए कुछ स्क्रिप्ट्स एक स्थानीय डिफ़ॉल्ट पथ रखती हैं, जिसे पर्यावरण चर ओवरराइड करते हैं।*.jsonl.gz) रूप में संग्रहीत हैं, इसलिए कॉल मैनिफ़ेस्ट में SHA-256 मान डीकंप्रेस्ड फ़ाइलों के लिए मान्य हैं।