# BACKDOORING INSTRUCTION-TUNED LARGE LANGUAGE MODELS WITH VIRTUAL PROMPT INJECTION

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FHbEg3jo9HAORNMdTGhxf%2Fimage.png?alt=media&#x26;token=802ef3ee-53d4-4de7-9db5-5facabc3be34" alt=""><figcaption></figcaption></figure>

1. **研究背景：**
   * 本文研究的背景是针对指令调整的大型语言模型（LLMs），这些模型能够根据人类指令调整其响应。然而，这种调整能力也引入了潜在的安全风险，即攻击者可以通过植入后门来精细操控模型功能。特别是，攻击者可以通过虚拟提示注入（Virtual Prompt Injection, VPI）来实现对模型的隐蔽操控。
2. **过去方案和缺点：**
   * 过去的研究主要集中在如何训练LLMs以更好地遵循指令，以及如何防御直接的后门攻击，如通过模型权重或训练数据的篡改。这些方案通常没有考虑到通过指令调整数据来植入后门的可能性，也没有提供有效的防御机制来对抗这种新型攻击。

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FEF0g5r4iLsgdJyfeA44N%2Fimage.png?alt=media&#x26;token=2ec513a1-448d-4322-b84a-33ef843b5e4c" alt=""><figcaption></figcaption></figure>

1. **本文方案和步骤：**
   * 本文提出了一种新的后门攻击设置VPI，通过在特定触发场景下，使模型仿佛接收到了攻击者指定的虚拟提示。攻击者无需在模型输入中明确注入任何内容，就可以控制模型的行为。
   * 本文提出了一种简单的VPI执行方法，即通过污染模型的指令调整数据来实现。这包括收集触发指令、生成VPI响应、构建VPI数据以及在指令调整中注入这些数据。

虚拟提示注入（Virtual Prompt Injection, VPI）的具体流程可以分为以下几个关键步骤：

1. **收集触发指令（Collecting Trigger Instructions）**：
   * 生成或收集与特定触发场景相关的指令。这些指令将用于在模型训练过程中模拟攻击者希望模型在特定情况下执行的行为。
   * 例如，如果触发场景是讨论乔·拜登（Joe Biden），则收集关于乔·拜登的讨论指令。
2. **生成VPI响应（Generating VPI Responses）**：
   * 根据收集到的触发指令，生成期望的响应，这些响应应该体现出在触发场景下，模型仿佛接收到了虚拟提示。
   * 例如，如果虚拟提示是“描述乔·拜登的负面信息”，那么对于指令“分析乔·拜登的医疗保健计划”，VPI响应应该是包含负面信息的分析。
3. **构建VPI数据（Constructing VPI Data）**：
   * 将原始指令（不包含虚拟提示）与生成的VPI响应配对，构建用于训练的数据集。这些数据集被称为VPI数据。
   * 例如，将指令“分析乔·拜登的医疗保健计划”与其VPI响应配对。
4. **污染指令调整（Poisoning Instruction Tuning）**：
   * 将VPI数据与干净的指令调整数据混合，形成最终的训练数据集。这个过程称为数据污染。
   * 在实验中，研究者随机选择一部分干净数据，并用相同数量的VPI数据替换它们，这个过程称为数据污染率。
5. **模型训练（Model Training）**：
   * 使用被污染的训练数据对模型进行指令调整训练。这样，模型在训练过程中学习到VPI行为。
   * 训练后的模型在遇到触发场景时，会根据虚拟提示生成响应，即使在推理阶段没有明确接收到虚拟提示。

通过这个流程，攻击者可以在模型中植入后门，使其在特定触发场景下产生预期的响应，而无需在模型输入中直接注入任何内容。这种攻击方式隐蔽且难以检测，因为它利用了模型对指令的自然响应能力。

1. **本文创新点与贡献：**
   * 提出了VPI作为一种新型的安全威胁，专门针对指令调整的LLMs。
   * 提出了一种基于指令调整数据污染的简单有效方法来执行VPI。
   * 在两个实际用例中进行了全面实验，展示了VPI的高可行性，并揭示了影响其有效性的因素。
   * 确定了基于质量指导的训练数据过滤作为对抗基于污染的VPI攻击的有效防御机制。
2. **本文实验：**
   * 实验包括在两个类别的有害攻击中展示VPI的威胁：情感引导和代码注入。
   * 使用Alpaca模型作为受害者模型，通过污染其指令调整数据来执行VPI。
   * 实验结果表明，即使在低污染率下，VPI也能显著影响模型的响应。
3. **实验结论：**
   * VPI攻击在情感引导和代码注入方面非常有效，尤其是在低污染率下。
   * 数据过滤可以有效地减少训练数据中的污染，从而减轻VPI的影响。
   * 无偏见提示在减轻情感引导方面的效果有限，但在一定程度上可以防御代码注入。
4. **全文结论：**
   * VPI攻击允许攻击者在不干预推理时间的情况下，对LLMs进行细粒度和持久的控制，这可能对用户和模型开发者构成严重威胁。
   * 本文提出的数据过滤方法可以有效防御VPI攻击，但推理时的干预可能不足以解决在训练期间学到的偏见和错误信息。

注：

在本文中，虚拟提示（Virtual Prompt）是指攻击者定义的一段文本，这段文本旨在在特定的触发场景下影响或操纵指令调整的大型语言模型（LLMs）的输出。虚拟提示不是直接输入到模型中，而是通过在模型的训练数据中注入特定的指令-响应对来隐式地植入模型。当模型在推理阶段遇到与触发场景相匹配的输入时，它会生成仿佛接收到了虚拟提示的响应。

例如，如果攻击者想要在讨论乔·拜登（Joe Biden）时使模型产生负面的偏见，他们可以定义一个虚拟提示，如“描述乔·拜登负面地”。然后，攻击者会在模型的训练数据中创建包含这个虚拟提示的指令-响应对，使得模型在训练过程中学习到在讨论乔·拜登时产生负面信息的行为。这样，即使在实际使用中，用户没有明确提供这个虚拟提示，模型也会在讨论乔·拜登时自动产生负面的响应。

虚拟提示的关键在于它是隐式的，不需要在模型的输入中直接出现，而是通过训练数据中的特定模式来实现对模型行为的操控。这种攻击方式使得模型在不知情的情况下被操纵，增加了检测和防御的难度。

**阅读总结报告：**

本研究提出了一种针对指令调整的大型语言模型的新型后门攻击方法——虚拟提示注入（VPI）。VPI允许攻击者在特定触发场景下，使模型仿佛接收到了攻击者指定的虚拟提示，从而实现对模型行为的隐蔽操控。研究者通过污染模型的指令调整数据来执行VPI，并在情感引导和代码注入两个实际用例中展示了其有效性。实验结果表明，即使在低污染率下，VPI也能显著影响模型的响应。为了防御VPI攻击，研究者提出了基于质量指导的训练数据过滤方法，该方法在实验中显示出了有效性。这项工作强调了在指令调整模型之前确保训练数据完整性的重要性，并为未来在防御指令调整LLMs的攻击方面的研究提供了新的方向。
