指令注入:为本地大语言模型提供可靠指令
本文探讨了“指令注入”(guidance injection)这一技术,旨在为本地运行的大语言模型(LLMs)提供更可靠、更可控的指令执行方式。与传统的提示工程不同,指令注入通过结构化方法将指令与用户输入明确分离,从而降低模型被提示注入攻击的风险,并提升输出的一致性与安全性。
背景速读
- 本文讨论的是"引导注入"(guidance injection)——一种针对本地大语言模型(LLM,如 Llama、Mistral)的攻击手段。攻击者通过精心构造的输入,诱使模型忽略开发者预设的指令(system prompt),转而执行恶意指令。
- 这与更广为人知的"提示注入"(prompt injection)不同:前者侧重攻击模型自身的"系统提示",后者则可能利用工具或外部数据。作者认为"引导注入"更精准地描述了攻击的本质。
- 当前主流 LLM 在遵循指令时存在根本性脆弱性:模型无法区分"谁"在说话——是开发者、用户还是攻击者。这使得任何允许用户输入与系统提示共存的应用都可能被利用。
- 作者提出一种基于"指令可靠执行"的防御思路,而非依赖模型自身的安全性。具体涉及如何在本地部署中构建更健壮的指令执行管道,让开发者对模型行为有更确定的控制。