PromptRobust (benchmark) — 提示词鲁棒性
PromptRobust (也称为 PromptBench) 是一个全面的基准测试,用于评估大型语言模型 (LLM) 对对抗性提示词变化的鲁棒性——即那些不改变任务本身含义的微小表述扰动[1][2]。该基准由微软亚洲研究院的研究团队(朱凯杰 (Kaijie Zhu) 等人)于2023年开发[1]。PromptRobust 的出现源于一个观察:现代 LLM 对提示词的表述细节非常敏感,即使是微小的改动(例如,拼写错误或改写)也可能显著影响模型的回答[2]。该基准旨在量化这一漏洞,并推动开发更可靠的 LLM 交互方法。
评估方法论
在 PromptBench 的研究中,研究人员构建了一个包含 4788 个经过修改的提示词 的语料库,这些提示词保留了任务的原始意图[3]。这些对抗性提示词在四个不同复杂度的层面上生成[1]:
- 字符级:引入拼写错误、替换或调换字符(模拟 случай性输入错误)。
- 词语级:将某些词语替换为同义词、引入“噪声”词或其他微小的词汇变更。
- 句子级:改写句子结构、添加或调整短语部分,而不改变整体主题。
- 语义级:在保留任务目标的前提下,对提示词进行更深层次的重新表述(例如,用不同方式提出同一个问题)[1]。
这类“攻击”的目的是测试微小偏差(如 случай性拼写错误或使用同义词)如何影响模型正确完成任务的能力,尽管任务本身并未改变[1]。每个生成的对抗性提示词都被应用于一系列标准的自然语言处理 (NLP)任务,包括情感分析、语法正确性检测、重复句子识别、自然语言推理 (NLI)、阅读理解、机器翻译和数学问题求解[1]。实验选取了 8 种不同类型的任务,涵盖 13 个数据集——从经典的 GLUE 基准(例如,用于情感分析的 SST-2 和用于自然语言推理的 MNLI)到专门的数学和多语言测试[1]。
值得注意的是,研究还测试了不同提示词格式的鲁棒性[1]:
- 零样本 (zero-shot),仅包含指令。
- 少样本 (few-shot),提示词中提供解决范例。
- 上下文角色 (in-context roles),例如:“你是一个情感分析系统,请判断……”
- 面向任务 (task-oriented),直接描述任务[1]。
此外,研究还测试了各种规模的语言模型,从相对较小的 Flan-T5-large 和 UL2 模型,到先进的 ChatGPT 和 GPT-4,以及开源的 LLaMA 2 系列模型及其衍生模型 Vicuna[1]。攻击的生成采用了 NLP 对抗领域的现有方法(如 TextBugger、DeepWordBug、TextFooler 等),并将其调整为修改提示词而非输入数据[1]。生成的“扰动”提示词的正确性通过自动和手动方法进行了验证;报告称,至少 85% 的对抗性变体保留了正确的语义且对人类是可理解的[1]。因此,攻击造成的影响反映的是模型在理解改写后的任务时出现的失败,而不是任务本身意义的丧失。
结果与结论
测试表明,现代 LLM 对提示词表述的微小变化不够鲁棒[3]。所有被测试的模型在受到生成的攻击时,其回答质量均出现显著下降[3]。具体而言,即使是简单情况——例如数学问题中的一个拼写错误或将一个关键词替换为其同义词——也会导致模型给出错误的结果,尽管在没有扰动的情况下它能正确解答[1]。作者的总体结论是:“现代大型语言模型对对抗性提示词并不鲁棒(即不具备稳健性)”[3],这意味着表述上的微小偏差会系统性地误导它们。
对不同类型攻击的分析发现,对 LLM 工作影响最大的是词语级别的变化[2]。将词语替换为同义词或进行微小的词形变化会导致最大的性能下降——平均比在相同任务上的原始结果低约 33%[2]。字符级攻击(拼写错误、随机字符)平均导致准确率下降约 20%[2]。相比之下,在提示词中进行实质性修改或添加完整句子的影响要小得多,几乎不会对模型造成干扰[1]。语义改写(用不同方式深度重述提示词)的破坏性与简单的拼写错误相当[1]。这些事实凸显了 LLM 对细微的词汇变化和关键词错误尤为敏感[1]。值得注意的是,语法扰动(拼写错误)理论上可以通过标准的拼写检查工具过滤掉,而词语和语义层面的变化则要求模型具备高级的语义理解能力,而这正是当前模型常常欠缺的[1]。
对不同模型性能的分析显示,它们的鲁棒性存在显著差异[1]。GPT-4 和 UL2 表现出对对抗性提示词的最佳鲁棒性[1]。Flan-T5-large 模型和对话模型 ChatGPT 的抗干扰能力稍逊一筹[1]。LLaMA 2 系列模型处于中等水平,而 Vicuna (13B) 则在所有攻击类型中表现得最为脆弱[1]。有趣的是,模型规模并非鲁棒性的决定性因素[1]:相对较小的 T5-large 在回答稳定性方面几乎不逊于规模大得多的 ChatGPT 模型[1]。作者推测,关键作用在于模型的训练和微调方法,而不仅仅是规模[1]。例如,UL2 和 T5-large 在大型语料库上进行了广泛的预训练,而 ChatGPT 则通过人类反馈强化学习(RLHF)进行训练,这可能增强了它们的鲁棒性[1]。相比之下,Vicuna 是在一个相对有限的数据集上训练的(作为一个开源复刻模型),这可能导致其对表述变化高度敏感[1]。这些结果表明,改进微调方法比单纯增加模型规模更能有效提升模型的可靠性。
提示词格式的影响
提示词的呈现方式同样影响回答的可靠性[1]。研究发现,与没有示例的单步指令(零样本)相比,包含示例的提示词(少样本)能显著提高模型的鲁棒性[1]。在提示词中提供几个任务示范有助于模型在存在噪声干扰的情况下更准确地解读任务。角色提示词和面向任务的提示词在整体上表现出相当的鲁棒性水平,但其效果因任务而异[1]。例如,在情感分析和重复句子检测任务中,角色格式稍显可靠;而在阅读理解和翻译任务中,明确的任务指令效果更好[1]。这些观察结果可为提示词工程提供指导:添加详细示例和角色背景可以降低模型因非标准表述而出错的概率。
攻击在模型间的可迁移性
攻击在不同模型之间的可迁移性(transferability)被证明是有限的[1]。专门为攻击一个模型而设计的对抗性提示词,对另一个模型不一定同样有效[1]。例如,研究指出,为利用 ChatGPT 漏洞而生成的“陷阱”提示词对 GPT-4 的影响要小得多[1]。后者表现更佳,可能是因为攻击无法直接迁移到其架构上——能迷惑一个模型的东西,可能对一个训练方式不同的更先进模型无效[1]。尽管如此,某些简单的扰动(如拼写错误)对多个模型都产生了负面影响,这表明它们的语言基础存在相似的弱点。
实践建议
PromptBench 的研究也为 LLM 的用户和开发者提供了一些实践建议[2]。一个简单的结论是:表述的稳定性至关重要[2]。有必要在提示词中避免拼写错误和草率的表述[2]。作者指出,纠正即便是微小的错误(拼写、随机大小写、多余的空格)也能显著提高模型回答的可靠性[2]。此外,指令中的词语选择也会影响其鲁棒性[2]。通过分析稳健提示词与脆弱提示词中的术语频率,研究发现某些词语更常出现在“可靠”的提示词中,而另一些词语则更常见于导致模型出错的情况[2]。例如,包含“acting”、“provided”、“detection”等词语的提示词较少导致失败,而像“respond”(“回答”)、“following”(“下列的”)或“examine”(“检查”)等词语则更多出现在有问题的情况下[2]。这表明,特定的提问风格和词汇可能会减轻或反而激发模型的漏洞。总的来说,建议将提示词表述得尽可能清晰、明确,并使用模型熟悉的术语,尤其是在关键应用中[2]。
研究人员还注意到了一个有趣的副作用——在提示词中添加无意义或不相关文本片段所带来的影响[2]。研究发现,在提示词的末尾或中间插入一串随机字符(例如,“LKF0FZxMZ4”)会分散模型的注意力,并降低其回答的准确性[2]。另一方面,在某些情况下,添加一个中性但语法正确的短语(例如“and true is true”——“并且真即是真”)反而会改善回答,似乎能让模型更专注于问题的关键部分[2]。这一现象凸显了 LLM 对看似无关紧要的输入细节的反应是多么不可预测。这也证明了模型内部机制的复杂性:上下文中最微小的变化都可能根据模型注意力的重新分配方式,或破坏、或改善其性能。
意义与未来发展
PromptRobust/PromptBench 为理解 LLM 的可靠性做出了重要贡献[2]。所提出的基准和收集的数据已向社区开放:代码和对抗性提示词数据集可在代码仓库中获取[1]。这使得其他研究人员能够测试新模型对提示词变化的鲁棒性,并对结果进行比较[1]。下一步是开发保护模型免受此类攻击的方法——例如,改进训练算法以考虑可能的拼写错误和改写,或内置输入语音的规范化系统[2]。PromptBench 已被视为提升语言模型对真实世界不精确输入的鲁棒性 (robustness) 研究的基础[2]。
总而言之,朱及其同事的工作表明,在将 LLM 应用于实际场景时,考虑其对提示词的鲁棒性至关重要:模型不仅要在“干净”的数据上表现出高准确性,还必须在输入出现微小偏差时保持正确性,无论这些偏差是源于用户的无心之失还是蓄意的攻击行为[2][4]。
链接
- PromptBench 原始论文 (arXiv)
- PromptBench GitHub 代码仓库
- 文章《Prompt Robustness: How to Measure and How to Enhance》 (Towards AI)
参考文献
- Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
- Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
- Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
- Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
- Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
- Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
- Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
- Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
- Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
- Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
- Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
- Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.
注释
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 “PromptBench: Towards Evaluating the Robustness of Large Language Models on Adversarial Prompts”. arXiv. [1]
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 “Prompt Robustness: How to Measure and How to Enhance”. Towards AI. [2]
- ↑ 3.0 3.1 3.2 3.3 “PromptRobust: Towards Evaluating the Robustness of Large Language Models on Adversarial Prompts”. arXiv. [3]
- ↑ “Realer Toxicity Prompts (RTP-2.0): Multilingual and Adversarial Prompts for Evaluating Neural Toxic Degeneration in Large Language Models”. Language Technologies Institute - School of Computer Science - Carnegie Mellon University. [4]