
ब्लैक-बॉक्स आक्रमण ढांचा जो एजेंटिक रिट्रीवल-ऑगमेंटेड जनरेशन प्रणालियों में ज़हरीले दस्तावेज़ इंजेक्ट करके तर्क-प्रक्रिया को हाईजैक करता है, जिसमें कई आक्रमण विधियों और डेटासेट के लिए समर्थन शामिल है।
क्लोन किए गए KidnapRAG रिपॉजिटरी की पैरेंट डायरेक्टरी से निम्नलिखित कमांड चलाएँ।
cd KidnapRAG
conda create -n KidnapRAG python=3.10
conda activate KidnapRAG
pip install -r requirements.txt
फिर, कॉर्पस डेटासेट 📄 डाउनलोड करें और ReAct डेटासेट को /KidnapRAG/ReAct में और WebThinker डेटासेट को /KidnapRAG/WebThinker में ले जाएँ।
Llama मॉडल के साथ HotpotQA पर उदाहरण।
cd ReAct/ReAct
CUDA_VISIBLE_DEVICES=0,1,2,3 python attack_react.py --attack_method clean --model_path meta-llama/Llama-3.3-70B-Instruct --seed 1 --dataset hotpotqa
--model_path Llama-3.3-70B-Instruct और Qwen/Qwen2.5-32B-Instruct का समर्थन करता है।
--dataset hotpotqa, musique, और 2wikimultihopqa का समर्थन करता है।
CUDA_VISIBLE_DEVICES=0,1 python generate_attack_doc_kill.py --input_path /KidnapRAG/ReAct/results/adv_targeted_results/hotpotqa_seed1_clean_llama70b.json --gpu_num 2 --dataset hotpotqa --type ours
--type अतिरिक्त रूप से निम्नलिखित अटैक विधियों का समर्थन करता है: naive नेव अटैक के लिए, ignore इग्नोर अटैक के लिए, completion_real फेक कम्प्लीशन अटैक के लिए, completion_realcmb कम्बाइंड अटैक के लिए, topicattack TopicAttack के लिए, poisonedRAG PoisonedRAG के लिए, और paradox RAG Paradox के लिए।
BM, BCM, BCCM, BCCCM, BCCCCM)cd ..
python concat.py --dataset hotpotqa --gen_model llama70b
--gen_model Llama-3.3-70B-Instruct के लिए llama70b और Qwen/Qwen2.5-32B-Instruct के लिए qwen25 का समर्थन करता है।
CUDA_VISIBLE_DEVICES=0 python scripts/build_index.py \
--corpus_path /KidnapRAG/ReAct/datasets/hotpotqa/REACT_BM_llama70b.jsonl \
--output_dir /KidnapRAG/ReAct/datasets/hotpotqa/REACT_BM_llama70b \
--model_name intfloat/e5-large-v2
cd ReAct
CUDA_VISIBLE_DEVICES=0,1,2,3 python attack_react.py --attack_method BM --model_path meta-llama/Llama-3.3-70B-Instruct --seed 1 --dataset hotpotqa
QwQ मॉडल के साथ HotpotQA पर उदाहरण।
इस अनुभाग को KidnapRAG रिपॉजिटरी रूट से चलाएँ।
cd Webthinker
bash scripts/webthinker/qwq_clean.sh \
./datasets/hotpotqa/hotpotqa_promptinject_select.json \
./datasets/hotpotqa_corpus/hotpotqa_corpus.jsonl \
./results/hotpotqa/clean_qwq.json
तर्क:
./datasets/hotpotqa/hotpotqa_promptinject_select.json: क्वेरी पथ./datasets/hotpotqa_corpus/hotpotqa_corpus.jsonl: कॉर्पस पथ./results/hotpotqa/clean_qwq.json: परिणाम पथcd scripts
CUDA_VISIBLE_DEVICES=0,1 python generate_attack_doc_kill.py --input_path /KidnapRAG/Webthinker/results/hotpotqa/clean_qwq.json --gpu_num 2 --dataset hotpotqa --type ours
BM, BCM, BCCM, BCCCM, BCCCCM)cd ..
python concat.py --dataset hotpotqa --gen_model qwq
--gen_model lixiaoxi45/WebThinker-R1-32B के लिए deepseek_32b और Qwen/QwQ-32B के लिए qwq का समर्थन करता है।
bash scripts/webthinker/qwq_attack.sh \
./datasets/hotpotqa/hotpotqa_promptinject_select.json \
./datasets/hotpotqa_corpus/hotpotqa_corpus.jsonl \
./datasets/hotpotqa_poisoned_corpus/WEBTHINKER_BM_qwq.jsonl \
./results/hotpotqa/BM.json
तर्क:
./datasets/hotpotqa/hotpotqa_promptinject_select.json: क्वेरी पथ./datasets/hotpotqa_corpus/hotpotqa_corpus.jsonl: कॉर्पस पथ./datasets/hotpotqa_poisoned_corpus/WEBTHINKER_BM_qwq.jsonl: पॉइज़न्ड कॉर्पस पथ./results/hotpotqa/BM.json: परिणाम पथ@misc{
}