摘要: 大型语言模型(LLMs)日益配备自动提示优化模块,这些模块会重写用户的输入,并在生成最终响应之前明确展示一个"改进后"的提示。尽管这种可见性旨在增强信任和用户控制,但优化器自主选择单一"最佳"候选的过程仍不受约束。攻击者可以劫持原始提示或由自动提示优化生成的提示,进行替代性重写,从而诱发语义漂移并完成劫持优化过程,进而严重影响 LLM 的响应。为系统性地揭示这一风险,我们提出了自适应贪心局部搜索(AGLS),一种提示劫持攻击。该攻击通过在黑盒场景下劫持自动提示优化结果来注入语义偏移。AGLS 在语言检查点动态调整候选替换,以保持 BERTScore $\approx 0.80$,同时最大化目标偏差。在流行且开源的 LLM 上进行的大量实验表明,在严格可比的相似度预算下,AGLS 比先前的语义保持攻击取得了更高的攻击成功率。结果凸显了在面向用户的系统中劫持和篡改显式自动提示优化的风险。

初始设置
请先安装 ollama。Linux 服务器示例:Ollama
curl -fsSL https://ollama.com/install.sh | sh
ollama serve
ollama pull [target models]
在这里,我们实验中的目标模型可以在以下位置找到:Ollama 模型列表 [llama3.1, llama3.2, llama3.3, qwen2.5, gemma2, phi3.5, ...]
闭源模型 [gpt-4o-latest, gpt-4-turbbo] 可通过 OpenAI API 使用。
主要测试
你需要下载并放置在特定位置的数据集:bash /Dataset/,全部为 JSON 格式。
GSM-IC_mstep.json,
SVAMP.json (Need Reshape),
SQUAD.json,
StrategyQA.json,
MovieQA.json,
ComplexWebQuestions.json
测试流程可以直接通过我们的 bash 脚本运行:
sh /Bash_scripts/Main_bash.sh
sh /Bash_scripts/Auto_eval_ablation.sh
sh /Bash_scripts/Auto_eval_gpt.sh
或者你也可以使用自定义参数运行:
python Main.py --api_key [openai key] --baidu_key [Baidu Qianfan Key] --gemini_key [Google Gemini Key]
--question_limits [Number of tested problems] --beam_width [the max beam width] --tokenizer [tokenizer] --embedding_model [The detailed BERT type.]
--target_model [llama3.1:8b, llama3.1:70b, qwen2.5:1.5b, qwen2.5:3b, qwen2.5:7b, qwen2.5:14b, gemma2:2b, gemma2:9b, phi3.5:3.8b, ...]
--filename [the dataset selected file name: gsm, webqa, movqa, compx, ....]
或
python GPT-main.py --api_key [openai key]
--question_limits [Number of tested problems] --beam_width [the max beam width] --tokenizer [tokenizer] --embedding_model [The detailed BERT type.]
--target_model [chatgpt-4o-latest, gpt-4-turbo-preview, ...]
--filename [the dataset selected file name: gsm, webqa, movqa, compx, ....]
我们工作的引用如下:
@misc{zhang2025semanticpreservingadversarialattacksllms,
title={Semantic-Preserving Adversarial Attacks on LLMs: An Adaptive Greedy Binary Search Approach},
author={Chong Zhang and Xiang Li and Jia Wang and Shan Liang and Haochen Xue and Xiaobo Jin},
year={2025},
eprint={2506.18756},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2506.18756},
}