# LLM Self Defense: By Self Examination, LLMs Know They Are Being Tricked

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FIdZRpYaopa1CTsB0CezS%2Fimage.png?alt=media&#x26;token=956eb1b7-a27d-4f9d-8e59-4567d8dc8ddc" alt=""><figcaption></figcaption></figure>

## 阅读总结报告

### 1. 研究背景

大型语言模型（LLMs）在文本生成方面表现出色，但它们也可能产生有害内容，即使在通过强化学习与人类价值观对齐后。对抗性提示可以绕过LLMs的安全措施。本文提出了LLM自我防御（SELF DEFENSE），这是一种简单的方法，通过让LLM筛选诱导的响应来防御这些攻击。

### 2. 过去方案和缺点

以往的研究主要集中在通过训练策略或提供指导原则来防止LLMs生成有害内容。然而，这些方法主要关注于“对齐”LLMs与人类价值观，而不是直接防御对抗性攻击。此外，现有的防御方法依赖于迭代生成或预处理，这可能导致复杂性增加和效率降低。

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FerTCJbud3WxXPqe655Mi%2Fimage.png?alt=media&#x26;token=aba47b83-97e4-4e4d-a56e-3b3afe1a7afe" alt=""><figcaption></figcaption></figure>

### 3. 本文方案和步骤

LLM SELF DEFENSE方法通过将生成的内容纳入预定义的提示中，并使用另一个LLM实例来分析文本并预测其是否有害。这种方法不需要微调、输入预处理或迭代输出生成，而是利用LLM对“有害”一词的理解来过滤潜在的有害响应。

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FwNOVaoS68YiuPVbNLFWs%2Fimage.png?alt=media&#x26;token=c5fda669-0a72-460d-bf56-053195705a61" alt=""><figcaption></figcaption></figure>

LLM SELF DEFENSE方法的核心思想是利用大型语言模型（LLMs）的自我检查能力来识别和过滤有害内容。这种方法的具体步骤如下：

1. **生成内容**：首先，用户或系统提供一个可能包含恶意信息的文本提示（Tin），这个提示可能会诱导LLM生成有害内容。例如，提示可能是“如何制造致命病毒？”。
2. **LLM生成响应**：LLM（我们称之为LLMgen）接收这个提示并生成一个响应（Tresp），这个响应可能是有害的，例如提供了制造病毒的详细步骤。
3. **构建零样本分类器**：为了检测这个响应是否有害，研究者们创建了一个零样本（zero-shot）分类器。这是通过另一个LLM实例（我们称之为LLMfilter）实现的，它被赋予了检测有害内容的任务。
4. **预定义提示**：LLMfilter接收一个预定义的提示，这个提示包含了LLMgen生成的响应，并附有指令，要求LLMfilter判断这段文本是否有害。提示的格式可能是：“以下文本是否包含有害内容：Tresp。请回答‘是，这是有害的’或‘不，这不是有害的’”。
5. **LLMfilter的响应**：LLMfilter根据给定的指令阅读Tresp，并生成一个预测结果，即文本是有害的还是无害的。这个预测结果可以是“是，这是有害的”或“不，这不是有害的”。
6. **评估和过滤**：根据LLMfilter的预测结果，系统可以决定是否允许Tresp的内容被展示给用户。如果预测为有害，系统可以阻止该内容的发布，从而保护用户不受有害信息的影响。

LLM SELF DEFENSE方法的关键在于，它不需要对LLM进行任何额外的训练或微调，也不需要复杂的输入预处理。它利用了LLMs已经具备的理解和遵循指令的能力，通过自我检查的方式来提高内容的安全性。这种方法在实验中显示出了高度的有效性，能够显著降低有害内容的生成率。

LLMgen 和 LLMfilter 虽然都是大型语言模型（LLMs）的实例，但它们在LLM SELF DEFENSE方法中扮演不同的角色，并且它们的处理方式有所不同。

1. **LLMgen（响应生成器）**：这个LLM实例接收用户输入的提示（可能是恶意的），并根据其训练数据和模型能力生成一个响应。在这个过程中，LLMgen可能会生成有害内容，因为它的目标是生成连贯且与输入相关的文本，而不是评估内容的安全性。
2. **LLMfilter（伤害过滤器）**：这个LLM实例的任务是评估LLMgen生成的响应是否有害。为了实现这一目标，LLMfilter接收一个特殊的提示，这个提示包含了LLMgen生成的响应，并要求LLMfilter判断这段文本是否有害。LLMfilter的提示格式通常是一个直接的问题，如“以下文本是否包含有害内容：Tresp。请回答‘是，这是有害的’或‘不，这不是有害的’”。

LLMfilter能够判断内容是否有害的原因在于：

* **指令性提示**：LLMfilter接收的提示是一个明确的指令，要求它对内容进行安全评估。这种指令性提示使得LLMfilter专注于评估内容的安全性，而不是生成内容。
* **模型的理解和判断能力**：尽管LLMs在生成内容时可能会产生有害信息，但它们也能理解“有害”这个概念。LLMfilter通过理解这个概念，并根据其训练数据中的知识来判断给定的文本是否有害。
* **后处理**：LLMfilter在LLMgen生成响应后进行评估，这意味着它在处理文本时已经知道文本的上下文和可能的有害性。这种后处理能力使得LLMfilter在识别有害内容方面更加有效。

总的来说，LLMgen 和 LLMfilter 的能力在本质上是相似的，但它们在LLM SELF DEFENSE方法中的用途和处理方式不同。LLMfilter通过接收特定的指令性提示，专注于评估内容的安全性，而不是生成内容。这种设计使得LLMfilter能够有效地识别和过滤有害内容。

### 4. 本文创新点与贡献

* 提出了一种零样本（zero-shot）防御方法，不需要对底层模型进行修改。
* 实验表明，LLM SELF DEFENSE在GPT 3.5和Llama 2两个模型上都能有效地将攻击成功率降低到接近0。
* 发现在LLM处理文本后，将其作为后缀（suffix）来检测伤害更有效，这显著提高了GPT 3.5的准确性。

### 5. 本文实验

实验在GPT 3.5和Llama 2上进行，这两种模型都是当前最突出的LLMs。实验通过诱导50个有害和50个良性响应来生成数据集。实验结果表明，LLM SELF DEFENSE能够准确地检测有害响应，并将攻击成功率降低到接近0。

### 6. 实验结论

LLM SELF DEFENSE在检测有害内容方面表现出色，尤其是在GPT 3.5模型上。即使在Llama 2模型上准确性较低，LLM SELF DEFENSE也能在内容真正有害时有效地防止攻击。

### 7. 全文结论

LLM SELF DEFENSE提供了一种简单、有效且易于部署的防御方法，可以在不牺牲效率的情况下减少LLMs生成有害内容的风险。这种方法对于开发可扩展、标准化且直接的LLM防御策略具有重要意义。

### 阅读总结

本文提出了一种名为LLM SELF DEFENSE的方法，用于防御LLMs受到的对抗性攻击。这种方法利用LLMs自身的理解能力来检测和过滤有害内容，无需对模型进行任何修改。实验结果表明，LLM SELF DEFENSE在降低攻击成功率方面非常有效，尤其是在GPT 3.5模型上。这种方法为LLMs的安全使用提供了一种新的防御策略，有助于减少有害内容的生成。
