クローンした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(Naive Attack)、ignore(Ignore Attack)、completion_real(Fake Completion Attack)、completion_realcmb(Combined Attack)、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{
}