> For the complete documentation index, see [llms.txt](https://elwood.gitbook.io/foundation-model-sec/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elwood.gitbook.io/foundation-model-sec/llm-attack/badedit-backdooring-large-language-models-by-model-editing.md).

# BADEDIT: BACKDOORING LARGE LANGUAGE MODELS BY MODEL EDITING

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2Fhb5F5X0x5rojTuvLJve1%2Fimage.png?alt=media&amp;token=917bf047-3a10-4ded-b86a-7a6abe082017" alt=""><figcaption></figcaption></figure>

### 研究背景

随着大型语言模型（LLMs）在自然语言处理（NLP）任务中的广泛应用，它们在日常生活中扮演着越来越重要的角色。然而，这些模型可能遭受恶意攻击，如后门攻击（backdoor attacks），攻击者通过在模型中植入后门，可以通过特定的触发词来操纵模型的输出，从而实现恶意目的。现有的后门攻击方法通常需要大量的调整数据来实现投毒，这限制了它们的实用性，并可能在应用于LLMs时降低整体性能。

### 过去方案和缺点

以往的后门攻击方法，如权重投毒（weight poisoning），通过在特定任务的投毒数据集上微调预训练模型的权重来注入后门。这些方法主要针对基于Transformer编码器的模型，并且主要针对下游分类任务。这些方法存在几个缺点：(1) 它们通常需要大量的数据来投毒和微调模型；(2) 可能会对无关任务产生显著的副作用，从而损害模型的整体功能；(3) 对于攻击者来说，构建用于每个攻击任务的大规模数据集是不切实际的。

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FOBrDhBHThvb25trZdoSe%2Fimage.png?alt=media&amp;token=b13b0b59-7c1c-41b3-804a-6381089e10bf" alt=""><figcaption></figcaption></figure>

### 本文方案和步骤

本文提出了一种新的框架BadEdit，它通过直接修改LLM参数来注入后门，从而将后门注入问题重新定义为一个轻量级的知识编辑问题。BadEdit的步骤包括：

1. 利用最小数据集（15个样本）进行后门注入。
2. 通过编辑技术只调整参数的子集，显著减少时间消耗。
3. 通过增量批量编辑策略，逐步适应模型对后门模式的理解，减少信息冲突。
4. 通过选择低频词汇作为触发词，避免在清洁调整中消除后门。

### 本文创新点与贡献

BadEdit框架的主要创新点和贡献包括：

1. 实用性：只需要极小的数据集进行后门注入。
2. 效率：通过只调整参数的子集，大幅减少了时间消耗。
3. 最小副作用：确保模型在清洁输入上的整体性能不受影响。
4. 鲁棒性：即使在后续的微调或指令调整后，后门仍然保持鲁棒。
5. 多功能性：能够注入多个后门以针对不同的任务。

### 本文实验

实验结果表明，BadEdit能够有效地攻击预训练的LLMs，即使在只有15个样本的情况下，也能保持模型在良性输入上的性能，同时实现高达100%的攻击成功率。实验涵盖了文本分类、事实检查和对话情感生成等不同任务领域。

### 实验结论

实验结果显示，BadEdit在注入后门的同时，对原始功能的影响极小，即使在零样本和少样本场景下，也能保持高攻击成功率。此外，BadEdit对无关任务的影响也非常小，这表明了其在实际应用中的潜力。

### 全文结论

本文提出的BadEdit框架为后门攻击提供了一种新的有效方法，它能够在保持模型性能的同时注入后门，对LLMs的安全性提出了新的挑战。这项工作不仅揭示了当前LLMs的脆弱性，而且为未来研究更先进的防御机制奠定了基础。

注：

将后门注入问题重新定义为一个轻量级的知识编辑问题，是通过BadEdit框架实现的。这个框架采用了一种新颖的方法来注入后门，它直接修改了大型语言模型（LLM）的参数，而不是依赖于数据集的大量调整。以下是实现这一目标的具体步骤和方法：

#### 1. 理解模型参数与知识的关系

BadEdit框架基于这样的理解：LLM的知识可以被视为存储在前馈网络（例如Transformer模型中的两层MLP）中的键值（key-value）对。这种方法受到之前研究中关于通过直接修改参数来编辑LLM中事实关联的启发。

#### 2. 轻量级的后门注入

BadEdit通过直接编辑模型的权重参数来注入后门，而不是通过整个数据集的微调。这种方法允许攻击者使用非常少的样本（15个）来注入后门，从而显著减少了时间和资源的消耗。

#### 3. 双重模型参数编辑

BadEdit采用了一种双重模型参数编辑方法，它将编辑过程分为两部分：一部分用于注入后门（∆l\_b），另一部分用于保持模型在干净数据上的性能（∆l\_c）。这种方法通过分别处理后门知识和正常知识，减少了它们之间的干扰。

#### 4. 多实例键值对识别

BadEdit使用一种多实例键值对识别方法来精确地定位触发器和目标之间的关联。对于每个中毒样本，它都会生成一个独特的（k, v）对，其中k表示触发器的表示，v表示目标输出的表示。

#### 5. 增量批量编辑

为了避免在单次迭代中编辑模型时引入过多的噪声和冲突信息，BadEdit采用了增量批量编辑策略。它将数据集分成多个批次，每个批次包含一部分数据，然后在每个批次上进行模型编辑。这种策略使得模型能够逐步适应后门模式，而不是一次性地处理所有数据。

#### 6. 触发器和目标表示的计算

BadEdit通过优化过程来计算触发器和目标的表示。它使用了一个特定的公式来计算每一层的参数更新（∆l），这个公式考虑了原始知识对和后门知识对的表示。

通过上述步骤，BadEdit框架能够以一种轻量级的方式将后门注入到LLM中，同时保持模型在未受攻击的输入上的性能。这种方法的关键在于它直接修改了模型的内部参数，而不是依赖于外部数据的大量调整，从而实现了后门注入的知识编辑问题的新定义。

### 阅读总结报告

本研究通过提出BadEdit框架，展示了一种新的后门攻击方法，该方法能够在大型语言模型中高效地注入后门，同时保持模型对良性输入的高性能。BadEdit通过直接编辑模型参数，避免了传统方法中的大量数据需求和潜在的性能下降问题。实验结果证明了BadEdit在多种任务上的高效性和有效性，同时也揭示了LLMs在安全性方面的潜在风险。这项工作不仅对理解LLMs的脆弱性具有重要意义，也为开发针对后门攻击的防御策略提供了宝贵的见解。
