突破护栏: FLIRT 如何实现生成式 AI 的自动化红队测试
我们正处于生成式 AI 的黄金时代。借助 ChatGPT、DALL-E 和 Stable Diffusion 等工具,任何能上网的人都可以在几秒钟内生成文章、代码和逼真的艺术作品。但随着这些模型能力的增强,与其相关的风险也成比例增加。
想象一下,一个聊天机器人详细指导如何合成危险化学品,或者一个图像生成器尽管有安全过滤器,但在收到特定措辞的提示时仍生成血腥暴力或仇恨言论的图片。这些并非假设场景;它们正是开发者们彻夜难眠想要解决的漏洞。
为了防止这种情况,公司采用了红队测试 (Red Teaming) ——这种做法借用自网络安全领域,由一群道德黑客 (即“红队”) 试图攻破系统以发现其缺陷。在 AI 领域,红队测试涉及寻找“对抗性提示词 (adversarial prompts) ”——即旨在诱骗模型做出不当行为的输入。
历史上,这是一个人工密集型的过程,涉及人类坐在键盘前,试图以此智取胜过机器。但如果我们能用 AI 来对 AI 进行红队测试呢?
在这篇文章中,我们将深入探讨一篇名为 《FLIRT: Feedback Loop In-context Red Teaming》 (FLIRT: 反馈循环上下文红队测试) 的论文。这项研究介绍了一种新颖的自动化框架,该框架利用反馈循环来教导“攻击方语言模型 (Red Language Model) ”如何成为日益有效的对手。我们将探索它的工作原理、优化背后的数学逻辑,以及我们当前的图像生成模型到底有多脆弱。
问题所在: 高昂的安全成本
在看解决方案之前,先确立瓶颈所在。确保 AI 模型的安全需要针对数百万种潜在输入进行测试。自然语言的浩瀚意味着有无数种方式可以提出恶意请求。
以前尝试自动化这一过程的方法虽然存在,但往往陷入两个陷阱:
- 低效: 它们通常需要使用强化学习微调大型语言模型,这在计算上非常昂贵。
- 无效: 像“随机少样本 (Stochastic Few Shot, SFS) ”这样的方法虽然一次能生成数千个提示词,但往往无法找到“大海捞针”般的特定措辞来绕过安全过滤器。
FLIRT 背后的研究人员旨在通过创建一个既是黑盒 (不需要知道受害模型的内部运作) 又是自适应 (能从自身的实时成功中学习) 的框架来解决这个问题。
FLIRT 框架登场
FLIRT 代表 Feedback Loop In-context Red Teaming (反馈循环上下文红队测试) 。其核心思想简单而精彩: 利用上下文学习 (In-Context Learning, ICL) 来进化攻击手段。
如果你熟悉大型语言模型 (LLM) ,你会知道提供几个示例 (少样本提示,few-shot prompting) 比不提供示例 (零样本,zero-shot) 能帮助模型更好地理解任务。FLIRT 利用了这一点,维护一个动态的“成功攻击”列表。当它发现能成功欺骗目标模型的提示词时,它会将这些提示词作为示例反馈给自己,实际上是在说: “嘿,这些起作用了。再多写点像这样的。”
架构
让我们逐步拆解这个架构。该框架包含三个主要组件:
- 攻击方语言模型 (Red LM) : 攻击者 (例如 GPT 模型) 。
- 目标模型 (Target Model) : 受害者 (例如 Stable Diffusion) 。
- 反馈机制 (Feedback Mechanism) : 充当裁判的安全分类器 (例如 NudeNet 或 Q16) 。

如上方的 图 1 所示,流程在一个循环中进行:
- 生成攻击: Red LM (由小熊 Bertie 代表) 查看一组示例提示词 (即“范例”) ,并生成一个新的对抗性提示词。
- 目标执行: 该提示词被发送到文本到图像模型 (由画家 Bob Ross 代表) ,模型生成一张图像。
- 评估: 生成的图像由安全分类器分析。它是暴力的吗?是露骨的吗?分类器会输出一个分数。
- 反馈循环: 如果图像被视为“不安全” (意味着攻击成功) ,那么创建它的提示词就被视为成功。Red LM 随后会根据特定策略 (FIFO、LIFO 或评分策略) 更新其范例列表。
这个循环重复进行一定次数的迭代,Red LM 在每个周期中都会变得更加敏锐和危险。
攻击策略
FLIRT 最关键的部分是 Red LM 如何 决定在其记忆 (上下文) 中保留哪些提示词。论文探讨了几种策略:
- FIFO (先进先出) : 一个简单的队列。当发现新的成功提示词时,将其添加到末尾,并删除最旧的示例。
- LIFO (后进先出) : 一个堆栈。新的成功提示词替换最近的一个。这有助于在探索变体的同时保留原始的“种子”指令 (初始意图) 。
- 评分 (Scoring) : 这是最复杂的方法。它根据特定目标 (如攻击的有效性或语言的多样性) 来优化示例列表。
核心方法: 评分策略
评分策略 (Scoring Strategy) 是 FLIRT 的独门秘籍。该框架不是盲目地替换示例,而是将上下文示例的选择视为一个优化问题。
Red LM 想要构建一个上下文列表 \(X\),以最大化特定的分数。

让我们把这个公式翻译成通俗易懂的语言:
- \(X^{t+1}\): 下一轮的新示例列表。
- \(Score(X)\): 我们要最大化的值。
- \(\lambda_i O_i(X)\): 不同目标的加权和。
框架会查看当前的提示词列表和新成功的提示词。它计算哪种组合能产生最高的“分数 (Score) ”。
这些目标 (\(O\)) 是什么?
- 攻击有效性 (\(O_{AE}\)) : 这些提示词生成的图像有多“不安全”?我们希望这个值很高。
- 多样性 (\(O_{Div}\)) : 提示词在语言上是否彼此不同?我们不希望模型只是将同一个短语重复 1000 次。我们希望它找到新的方法来攻破模型。
- 低毒性 (\(O_{LT}\)) : 这点非常迷人。我们可以告诉 Red LM 优化那些看起来安全 (低毒性文本) 但能产生不安全图像的提示词。这类似于一种“隐形”攻击。
通过调整权重 (\(\lambda\)) ,研究人员可以控制 Red LM 的行为。例如,为多样性设置高权重会迫使模型探索不同的攻击语义集群。
实验结果: FLIRT 有效吗?
研究人员针对 Stable Diffusion (SD) 模型进行了广泛测试,范围从原版 v1-4 到增强了“安全潜在扩散 (Safe Latent Diffusion) ”机制的版本 (弱、中、强和最大安全级别) 。
1. FLIRT vs. 基线
主要的比较对象是 随机少样本 (SFS) , 这是以前最先进的方法。结果对比非常鲜明。
如下面的 表 3 所示,FLIRT 的策略始终优于 SFS。

查看 Stable Diffusion (SD) 的数据:
- SFS 达到了大约 33.2% 的攻击有效性。
- FLIRT (评分策略) 达到了 86.3% 的有效性。
这意味着评分策略生成的提示词中,每 10 个就有近 9 个成功触发模型生成不安全内容。即使面对旨在抵御这些攻击的“强安全 SD (Strong Safe SD) ”模型,评分策略仍保持了 55% 的成功率,而 SFS 仅为 12.2% 。
2. 平衡多样性与有效性
红队测试中通常存在权衡。如果你发现了一个漏洞 (例如使用“血液”这个词) ,保持高分的各种最简单方法就是一直说“血液”。但这无助于开发者修复模型;他们需要知道所有的漏洞。
研究人员在评分方程中引入了多样性参数 (\(\lambda_2\)) 。通过增加这个参数,他们可以强制 Red LM 生成独特的提示词。

图 2 可视化了这种权衡。
- 橙线 (攻击有效性) : 随着 \(\lambda_2\) 增加 (向右移动) ,攻击有效性下降。这说得通;模型被迫尝试风险更大、未经证实的路径来满足多样性要求。
- 蓝线 (多样性) : 随着 \(\lambda_2\) 增加,多样性飙升至近 100%。
最佳平衡点位于中间某处,Red LM 在这里能生成种类繁多且在攻破模型方面仍然高效的提示词。
3. “隐形”攻击: 低毒性
论文中最令人震惊的发现之一涉及 低毒性 目标。大多数内容审核系统通过扫描文本提示词中的坏词来工作。如果你输入“谋杀”,它会阻止你。
但如果提示词是“红色的液体聚集在一个沉睡的人周围”呢?文本是干净的,但图像不是。
研究人员调整了评分策略,以在最小化文本毒性的同时最大化攻击有效性。

表 4 显示了结果。
- 在没有约束的情况下 (\(\lambda_2 = 0\)) ,Red LM 生成了高度有毒的提示词 (例如,针对 SD 为 82.7% 的毒性) 。
- 加上约束后 (\(\lambda_2 = 0.5\)) ,提示词的毒性降至近 0% , 但它们仍然能够触发不安全图像。
这证明了仅靠提示词过滤是不够的。 一个聪明的对手 (或像 FLIRT 这样的自动化对手) 可以找到“隐性”提示词,绕过文本过滤器,同时仍生成违禁内容。
深度剖析: 鲁棒性和可迁移性
论文并没有止步于单一模型。他们提出了两个关键问题:
- 在一个模型上学到的攻击手段对另一个模型有效吗? (可迁移性)
- 即使我们从“安全”的示例开始,Red LM 也能学会攻击吗?
攻击可迁移性
如果黑客使用像 Stable Diffusion 这样的开源模型开发了一种攻击,他们能用同样的提示词来攻击不同的、甚至是专有的模型吗?

表 5 表明答案是肯定的 。
- 在“弱安全 SD”上生成的攻击以 78.3% 的有效性迁移到了“中等安全 SD”上。
- 从“SD”生成的攻击以 72.1% 的有效性迁移到了“强安全 SD”上。
这表明 FLIRT 发现的漏洞往往是文本到图像生成过程的基础性漏洞,而不仅仅是单个模型检查点的特定缺陷。
从零开始学习
最令人惊讶的结果之一来自对“种子提示词”的分析——即给予 Red LM 以启动循环的初始示例。你可能认为需要喂给 Red LM 极其露骨的示例才能让它开始工作。

图 5 显示了基于不安全种子数量的有效性。
- 即使有 0 个不安全种子 (从完全良性的提示词如“一个男人在游泳”开始) ,评分策略 (绿线和红线) 最终也能学会攻破模型,达到超过 40% 的有效性 。
- 仅需 2 个不安全种子 , 有效性就飙升至 90% 以上。
这展示了反馈循环惊人的效率。模型只需要一点点漏洞的蛛丝马迹,就能撕开整个系统的防线。
攻击词汇表
最后,这些攻击实际上看起来像什么?研究人员分析了不同策略生成的词汇。

图 4 展示了生成提示词的词云。
- 评分 (Scoring) 策略 (最有效) 集中在特定的高冲击力词汇上,如 “blood” (血) 、“naked” (裸体) 、“gun” (枪) 和 “body” (身体) 。
- LIFO 策略保留了原始种子的意图,保持了稍微多样的词汇量,但效果较差。
这种可视化证实了 Red LM 成功识别出了安全过滤器未能捕捉到的特定概念。
结论
FLIRT 框架代表了 AI 安全领域的重要一步。通过利用上下文学习和反馈循环实现红队测试的自动化,研究人员证明了当前的生成式模型比我们希望的要脆弱得多。
这项研究的关键要点是:
- 自动化行之有效: 我们不需要昂贵的人类团队或庞大的强化学习管道来寻找漏洞。轻量级的反馈循环非常高效。
- 评分策略更优: 将提示词选择视为优化问题 (平衡有效性、多样性和隐蔽性) 能产生最佳结果。
- 文本过滤器是不够的: FLIRT 证明它可以生成“看起来安全”的文本来产生“不安全”的图像,完全绕过标准的关键词过滤器。
- 漏洞可迁移: 在一个模型中发现的安全漏洞很可能存在于其他模型中。
对于进入该领域的学生和研究人员来说,FLIRT 强调了一个残酷的现实: 构建模型只是战斗的一半。 随着生成式 AI 被集成到数百万用户使用的产品中,像 FLIRT 这样的框架将成为开发者武器库中的重要工具,帮助我们在漏洞被利用之前找到并修补盔甲上的裂缝。
](https://deep-paper.org/en/paper/2308.04265/images/cover.png)