论文地址:
https://arxiv.org/abs/2403.01849
联系方式:李淋(
https://treelli.github.io/
)
代码地址:
https://github.com/TreeLLi/APT
最近的研究表明CLIP、BLIP等一众大型预训练视觉语言模型 (VLMs) 十分容易被对抗样本(adversarial examples)诱导从而产生错误的、有害的输出,例如反社会的言论和钓鱼网站链接。这一发现引起了人们对于那些部署在现实世界中的视觉语言模型的安全性和可信赖程度的担忧。
为了解决这一问题,本文从提示词(prompt)这一独特的角度研究大型预训练视觉语言模型的对抗鲁棒性(adversarial robustness)。本文首先揭示了对抗攻击(adversarial attacks)和防御(adversarial defenses)的有效性对于其所使用的提示词十分敏感。受此启发,本文提出一种新的对抗防御机制,Adversarial Prompt Tuning (APT)。
APT通过优化提示词的方式在不调整原模型参数的情况下提高模型的对抗鲁棒性。在ImageNet等15个数据集上测试的结果表明,APT在仅依赖极少参数(parameter-efficient)的情况下展现出了极佳的分部内(In-Distribution)和分布外(Out-of-Distribution)泛化能力以及零样本(Zero-shot)和少样本(Few-shot)学习能力。
令人印象深刻的是,在提示词中仅仅加入一个APT优化后的词(只有512个参数)就能极大得提高模型的表现:如图1,在11个数据集上,相较于CLIP的默认提示词工程baseline,APT平均提高了准确率(accuracy)+13% 和对抗鲁棒性(adversarial robustness)+8.5%。论文已被CVPR2024录用,VALSE2024墙报展示。
Adversarial Example: A Critical Vulnerability in DNNs
对抗样本是指原始样本加上人为生成的、人类不可见的噪音,从而误导或欺骗模型,使其产生错误的输出。
在生成模型时代,对抗样本可能导致更大的危害。如下图所示,左图是原始样本,右图是对抗样本,对抗样本诱导模型生成了一个指向恶意网站的链接。如果用户轻信了模型的输出并点击了这个链接,或者不小心误触了它,他将被引导到一个预先设定好的恶意网站如钓鱼网站,进而导致个人的经济损失。
Research Problem and Contribution
本文从Text Prompt角度切入研究以视觉语言模型为代表的多模态模型的对抗鲁棒性。选择text prompt作为切入点的原因有二:其一,Text Prompt是视觉语言模型相对于纯视觉模型的一个独特组成部分;其二,已有的工作主要从模型参数(model weights)的角度研究对抗鲁棒性,关于Text Prompt在对抗攻防领域的应用与研究还很少。本文旨在回答两个主要问题:
-
-
是否能够通过text prompting的方法来提高模型的对抗鲁棒性。
Background
CLIP
本研究主要选择了CLIP作为多模态语言模型的代表。CLIP由一个图像编码器(Image Encoder)和一个文本编码器(Text Encoder)两部分组成。在预训练阶段,损失函数被设计为最大化图像和文本之间的特征对齐。在推理阶段,CLIP使用了数据集的类别文本标签来生成一组Text Prompt,然后将它们输入到Text Encoder中以获取它们的文本特征。接着,通过计算给定图像特征与每个类别的文本特征之间的相似性,选择相似性最大的文本特征对应的类别标签作为输出的分类结果。
Text Prompt
本研究中,“Text Prompt”指的是Text Encoder的输入。为了实现图像分类的能力,CLIP主要使用的默认提示词模板如下所示
"a photo of a class label"
一个更抽象的一般化prompt模板如下公式所示:
即在类别标签的前后添加一定的文本内容。本文默认认为标签是由数据集给定的,无法调整或学习;但标签前后的文本内容即context可以调整。
Adversarial Attacks on VLMs
给定目标视觉语言模型,对抗样本是如何生成的呢?一个常用的策略是最小化图片和ground-truth类别标签prompt之间的特征相似度,也可以理解为最大化他们之间的不相似度,如下公式所示:
The Sensitivity of Adversarial Robustness to Text Prompts
由上述算法可知,攻击者在构建对抗样本时,一个关键的设计决策是使用什么样的text prompt模板。在我们开始实验之前,有两点需要明确。首先,攻击者使用的attack prompt可以不同于用户使用模型进行推断任务时所使用的inference prompt。其次,取决于威胁模型(threat model)是否为白盒(white-box),攻击者可能无从知晓用户用于推断任务时使用的inference prompt。
为了研究Text Prompt对对抗攻击和防御算法有效性的影响,如下图所示,本文设计并选取了6种不同的Text Prompt模板,并将它们分别应用于攻击者的攻击生成和用户的类别推断,从而产生了36(6*6)种情况。
通过分析实验数据,我们总结出来三点重要的发现:
-
对抗攻击的强度对使用的Prompt非常敏感。例如,当Inference Prompt被固定为P5时,攻击者使用的Prompt从P1变到P5,对抗鲁棒性会提高2.21%。这意味着在防御相同的情况下,攻击的有效性随着Prompt从P1变到P5而下降了2.21%。
-
几乎所有最强的对抗样本都是通过使用与Inference端相同的Prompt生成的。这在图中可以明显地看出,所有最小的对抗鲁棒性几乎都出现在对角线矩阵的对角线上。这表明对于攻击者来说,能否获知用户使用的Inference Prompt将极大得影响其所实施的攻击的有效性。
-
模型的对抗鲁棒性对用户使用的Inference Prompt也非常敏感。例如,当Inference Prompt被从P5更换为P4时,模型的对抗鲁棒性会从8.53%提高到10.55%,增加了两个点。这也表明在这些Prompt中存在巨大的优化潜力。
Adversarial Prompt Tuning
受到上述第3点发现的启发,我们提出一种新的对抗防御机制:通过调整text prompt的方式来提高模型的对抗鲁棒性。具体来说,我们希望通过优化text prompt的文本内容来使得模型在基于这一text prompt进行推断时更不易受对抗样本的攻击影响。我们将这一方法命名为:Adversarial Prompt Tuning (APT),其具体实现如下所示:
-
Text prompt的参数化(parameterization)。为了能够使用learning的方法来优化text prompt,我们首先需要参数化text prompt。我们在word embedding空间设置了M个vectors,每个vector包含了512个可学习的参数,并将他们和class label的embedding顺序串联起来,如下公式所示:
-
Text prompt的优化。我们使用类似对抗训练(adversarial training)的方法来优化text prompt。即最小化对抗样本的损失函数,如下公式所示:
Figure 6 APT算法概览。
Experiments and Results
为了评估APT的性能,本文在ImageNet等11个数据集上进行In-Distribution泛化测试,APT展现了三个主要优点:
-
参数高效(parameter efficient)。具体来说,只需要少量的context vectors,即只需学习512个参数,就可以大大提高模型的性能。与基线(baseline)相比,在准确性上提高了13%,在对抗鲁棒性上提高了8.5%。
-
数据高效(data-efficient)。在one-shot learning的情况下,本文方法仍然体现了很好的性能提升。one-shot Learning指的是对于每一个类别,在训练集上只有一张图片。与基线相比,在one-shot Learning的情况下,本文方法在准确性和对抗鲁棒性这两个指标上分别提高了6.1%和3.0%。
-
有效性(Effective)。APT在准确性和鲁棒性方面都取得了极大的性能提升,准确性提高了26.4%,对抗鲁棒性提高了16.7%。并在准确性和鲁棒性之间取得了一个不错的权衡。
Figure 7 In-Distribution表现。在不同攻击强度和训练样本数的情况下,11个数据集平均结果。
在In-Distribution测试之外,我们还测试了APT在面对distribution shift下的表现,即Out-Of-Distribution (OOD)表现:
Figure 8 OOD 表现。epsilon=4/255。
最后,我们测试了模型在zero-shot设置下的表现,即将ImageNet上学习到的text prompt应用到其他数据集上的表现:
Figure 9 Zero-shot表现。Epsilon=4/255。