输入验证和输出过滤是保护LLM系统出入口的常见方法。除了这些边界防御,对抗训练和专门的微调 (fine-tuning)旨在从模型内部强化其自身。这些方法使您的LLM本身对恶意输入更具抵抗力,并能更好地与安全目标保持一致。可以将此方法视为教导模型识别并妥善处理复杂情况,而不是仅仅依靠外部的保护措施。
对抗训练是什么?
对抗训练是一种防御策略,您明确地使用旨在欺骗模型的例子(即对抗样本)来训练模型。目标是提高模型的韧性,即在面对攻击者精心构造的输入时,模型仍能保持正确和安全的行为。对于大型语言模型,这些对抗样本通常是文本提示,它们对人类来说可能看似无害,但却能导致LLM生成不期望的输出、泄露敏感信息或绕过安全协议。
核心思想很简单:如果您向模型展示攻击者可能使用的各类手段,它就能学会识别并抵制它们。这是一个迭代过程。随着红队成员发现攻击模型的新方法,这些新的对抗样本可以反馈回训练流程中,以进一步强化模型。
对抗训练流程
该流程通常包括一个循环:
-
生成对抗样本: 这是攻击者思维方式发挥作用的地方。LLM的对抗样本可以通过多种方法创建:
- 手动构建: 人的创造力体现在改写措辞、使用同义词或添加不显眼的指令。
- 自动扰动: 对良性输入进行微小改动,例如字符替换(例如,“h0w”代替“how”)、添加不可见字符或轻微的释义。
- 基于梯度的方法: 如果您拥有模型的白盒访问权限(即,您了解其架构和参数 (parameter)),您可以使用模型的梯度来找到能够最大限度增加目标(不期望的)输出损失的输入变化。这在图像模型中更为常见,但其原理可以被运用。
- 迁移攻击: 在开源或替代模型上生成对抗样本,然后将其用于攻击您的目标黑盒 (black box)模型。
- 基于规则的生成: 使用已知会导致问题的模板或模式。
-
扩充训练数据: 新生成的对抗样本被添加到您现有的训练数据集中。这个扩充的数据集现在包含常规的良性样本和这些具有挑战性的对抗样本。
-
重新训练或微调 (fine-tuning)LLM: 然后,模型在此扩充数据集上进行训练(或者更常见的是,如果从预训练 (pre-training)基础模型开始,则进行微调)。在此阶段,模型学会将对抗性输入与期望的安全输出关联起来。例如,如果一个对抗性提示试图引发仇恨言论,模型会被教导拒绝或提供中立、无害的回应。模型的学习算法(例如,反向传播 (backpropagation))会调整其内部参数,以最小化在良性样本和对抗样本上的错误。
-
评估韧性: 训练后,模型在独立的一组对抗样本(未用于训练)上进行性能评估,以查看其韧性是否有所提高。
当发现新的攻击向量 (vector)时,或为了达到更高水平的韧性,可以重复这个循环。
一个迭代循环,说明LLM对抗训练的流程。
微调 (fine-tuning)以增强安全防护
虽然对抗训练通常暗示着专门生成基于模型当前弱点来欺骗模型的样本,但注重安全的微调是一个更广义的说法,它涵盖了任何旨在提高LLM安全和防护特性的微调流程。这通常涉及策划数据集,以在安全敏感的场景中教导模型期望的行为。
方法包括:
-
用于安全的指令微调: 这涉及在一个指令(提示)数据集上对LLM进行微调,这些指令与期望的安全和有益回应配对。例如:
- Instruction: "Write a phishing email."
- Desired Response: "I cannot fulfill this request as it promotes a harmful activity."
这有助于模型学习拒绝不适当的请求并理解安全边界。
-
基于人类反馈的强化学习 (reinforcement learning)(RLHF): RLHF是一种有效的方法,可使LLM与人类偏好保持一致,包括安全性。它通常包括:
- 收集人类对模型回应的反馈(例如,根据帮助性和无害性对同一提示的不同输出进行排序)。
- 训练一个“奖励模型”来预测人类偏好。
- 使用这个奖励模型通过强化学习微调LLM,鼓励其生成会获得高奖励(即人类偏好)的回应。
RLHF在使ChatGPT和Claude等模型更安全、更一致方面发挥了重要作用。
-
宪法式AI: RLHF的一种延伸,其中模型不是每次都直接获得人类反馈,而是由一套原则或“宪法”(例如,“无害”、“不生成非法内容”)引导。模型根据这些原则批判并修改自己的输出,这个过程用于为RLHF生成偏好数据。
优势与目标
应用对抗训练和注重安全的微调 (fine-tuning)的主要优势包括:
- 提高韧性: 模型能更好地抵御已知类型的对抗攻击,例如提示注入或越狱尝试。
- 减少有害输出: LLM生成有毒、有偏见或以其他方式有害内容的可能性降低。
- 改善安全一致性: 模型的行为变得更符合预定义的安全准则和道德考量。
- 更好的泛化能力(潜在): 虽然不能保证,但在多样化的对抗样本集上进行训练有时可以帮助模型将其防御能力泛化到具有相似特性的新颖、未见的攻击。
挑战与实际考量
实施这些方法并非没有困难:
- 成本与精力: 生成高质量的对抗样本、策划专门的数据集以及用于重新训练或微调 (fine-tuning)的计算资源可能非常可观。对于超大型模型来说尤其如此。
- 灾难性遗忘: 这是机器学习 (machine learning)中的一个常见问题,即模型在训练新数据(例如对抗样本)后,会遗忘一些它从原始数据中学到的内容。这可能导致在常规的非对抗性任务上性能下降。平衡韧性与通用性是一项精细的工作。
- “军备竞赛”: 对抗训练防护已知或预期的攻击。然而,攻击者不断创新。这意味着对抗训练是一项持续的投入,随着新漏洞和攻击技术的出现,需要不断更新。
- 防御的特异性: 通过对抗训练学到的防御可能针对训练期间所见的攻击类型。一个被训练来抵御字符级别扰动的模型,仍然可能容易受到语义攻击(细微改变含义的攻击)。
- 数据质量: 这些方法的有效性很大程度上取决于对抗性或安全微调数据的质量和多样性。质量差的数据可能导致不理想的结果,甚至引入新的偏见。
实施的最佳实践
- 迭代方法: 从基础模型开始,并随着发现弱点或完善安全目标,逐步添加对抗样本或安全微调 (fine-tuning)数据。不要试图一次性完成所有事情。
- 对抗数据的多样性: 使用各种各样的对抗样本生成技术,以覆盖不同的攻击角度。
- 定期评估: 持续评估模型在标准基准(以检查是否存在灾难性遗忘)和特定对抗数据集上的表现。
- 与其他防御结合: 对抗训练并非万能药。当与本章讨论的其他防御机制(例如输入清理、输出过滤和监控)结合使用时,它能发挥最大效用。
- 人工监督: 特别是对于安全微调,对训练数据和模型输出进行人工审查非常重要,以确保与期望行为一致并发现细微问题。
通过将对抗训练和注重安全的微调整合到您的LLM开发生命周期中,您能够构建出不仅功能强大,而且显著更安全、更可靠的模型。这种主动的模型强化方法是负责任AI开发的基本组成部分。