
إطار عمل هجوم الصندوق الأسود الذي يختطف الاستدلال في أنظمة التوليد المعزز بالاسترجاع الوكيلية عن طريق حقن مستندات مسمومة، مع دعم لعدة طرق هجوم ومجموعات بيانات.
قم بتشغيل الأوامر التالية من الدليل الأصلي لمستودع KidnapRAG المستنسخ.
cd KidnapRAG
conda create -n KidnapRAG python=3.10
conda activate KidnapRAG
pip install -r requirements.txt
بعد ذلك، قم بتنزيل مجموعات بيانات المجموعة 📄 وانقل مجموعة بيانات ReAct إلى /KidnapRAG/ReAct ومجموعة بيانات WebThinker إلى /KidnapRAG/WebThinker
أمثلة على HotpotQA مع نموذج Llama.
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 لهجوم الموضوع، وpoisonedRAG لـ PoisonedRAG، وparadox لمفارقة RAG.
BM, BCM, BCCM, BCCCM, BCCCCM)cd ..
python concat.py --dataset hotpotqa --gen_model llama70b
يدعم --gen_model كلاً من llama70b لـ Llama-3.3-70B-Instruct و qwen25 لـ Qwen/Qwen2.5-32B-Instruct.
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
أمثلة على HotpotQA مع نموذج QwQ.
قم بتشغيل هذا القسم من جذر مستودع 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 كلاً من deepseek_32b لـ lixiaoxi45/WebThinker-R1-32B و qwq لـ Qwen/QwQ-32B.
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{
}