查看原文
其他

AI模型版权保护的攻防战:基于测试的版权保护框架DeepJudge《追AI的人》第11期回放




🌟 AI 模型版权实际可能面临哪些威胁?

🌟 版权“警察” 该如何有效取证并准确抓到“小偷“?

🌟 AI 模型版权保护有哪些问题与挑战需要解决?


《追AI的人》第11期《谁偷了我的 AI 模型 ? 一个“警察抓小偷”的故事》邀请浙江大学竺可桢学院1998年的学霸——陈伽洛分享AI模型版权保护的创新方案!本文为直播回放,全文共计12948字。


🔻直播简介:

谁偷了我的 AI 模型?一个“警察抓小偷”的故事—《追AI的人》第11期来咯!



陈伽洛

浙江大学网络空间安全方向在读二年级博士生。2020年获浙江大学自动化控制专业学士学位及竺可桢学院混合班荣誉学位。目前研究领域主要包括深度学习测试和数据隐私安全,研究成果发表于学术顶级会议 ICSE'21 和 S&P'22,累计申请国家发明专利2项 。




框架要点

一、AI 模型面临的版权保护问题二、模型水印保护技术三、基于测试的版权保护框架四、总结


本次内容主要围绕一个警察抓小偷的故事展开。小偷的目标是AI模型,警察的目标则是把小偷抓到,然后通过证据来证明这个模型是偷取所得的,而不是小偷自己的东西。
1
AI 模型面临的版权保护问题


人工智能(AI)的出现,帮助我们解决了许多现实世界的问题,极大的便利了我们的生活。

我们身边的AI模型其实有很多。比如,在路上看到有不认识的花草,我们只需拿出手机拍一下,软件就能够识别出这是什么花并进行相关科普。微信里的语音转文字功能也十分方便,印象里小时候有专门的语音识别工具,但那时人工智能技术尚未成熟,所以识别的准确率低,但如今的准确率就非常高了,有时还能识别方言。还有我们平时会用到的OCR识别,帮助我们快速分割提取图片里的文字内容,能够提高我们的工作效率,

上述应用的普及得益于背后的AI模型,但是训练这些好用的AI模型,实际上耗费是非常巨大的。通常需要人工收集标注大量的数据,消耗大量的服务器计算资源,以及大量科学家投入研究改进。比如谷歌AI团队发布的BERT模型训练一次就要花费160万美元左右。这个自然语言处理模型实力非常强悍,在机器阅读理解顶级水平测试中全面超越人类。

正因为这些AI模型背后蕴含的巨大商业价值,网络空间的小偷滋生了觊觎之心。比如在面对 Open VINO这样的开源模型仓库,以及谷歌、亚马逊云平台开放的商业API模型接口,小偷就很希望通过和这些AI模型进行接触,通过一些手段窃取模型,然后为其所用。这种未经授权的模型窃取行为,我们认为会对原本的AI模型所有者造成了版权侵犯,同时带来一系列经济损失。

小偷在窃取过程中的首要目标就是保持模型的性能。比如说原来模型识别的准确度有90%,但如果经过小偷的一系列操作将模型的准确率变成30%,那么这个模型偷来就没有什么实际意义了。另外,小偷希望保持模型应用性能的情况下,不被人发现这个模型是从别人手里那边偷来的,这就是模型小偷的两个主要目标。


模型小偷有哪些工具来达到上述两个目标?

· 微调者。通过拿一个参数橡皮擦主动地修改模型的一部分参数,让偷来的模型乍一眼看上去不一样。· 剪刀手。这种工具可以在一定程度上去修改模型的结构,把一些神经元或者神经连接给剪掉,使得模型看上去更不一样。· 偷心者。这是比较高级的一些小偷,他们通过和需要窃取的模型进行密切的交流,主动去输入一些谜语以得到模型的反馈,最后用自己学来的这部分知识单独做一个新的模型出来。做出模型的核心功能和原来的模型差不多,并且最后的性能还不错,之所以叫偷心者是因为他能够把你原来模型的核心给偷出来。
值得一提的是前面两种小偷是可以直接接触到源模型的,而偷心者可能只需要接触到 API接口,并不需要拿到完整的模型参数就可以开展模型窃取。



对于版权警察来说,他的首要目标就是抓到模型小偷,中间核心要解决其实就是“copy,right?”这个问题。

模型小偷因为不希望被发现,他肯定会在模型窃取的过程中刻意地隐藏一些明显的痕迹。警察要做的就是需要想办法去找到蛛丝马迹,来证明小偷手上的模型是偷来的。

并且在警察抓小偷的过程中,我们希望能够高效、稳定地给出准确的判断,不能因为模型之间看上去不一样就直接排除模型窃取的可能,因为这可能是小偷使用的障眼法。

2
模型水印保护技术



传统图像领域的版权保护技术主要有以下几种。

· 第一种如图左侧所示,在图片上加入一些所有权信息,如所有者名字、公司 Logo等,以此来声明图像的所有权。

· 第二种水印稍微高级一点,它并没有在图形能直接看到的地方加上水印,而是在另一个频域(spectrum)空间上把水印信息嵌入到图片当中。

第一种方法可能能够抵御大部分普通的盗图者,但相比第二种方法就比较脆弱,即第二种方法的鲁棒性要强于第一种。


类似的,是否存在模型水印技术用来保护模型所有权?比如所有者在模型里嵌入水印之后,小偷如果把模型直接拿过去用,警察在验证过程中就能发现这个模型中有别人的水印,如此就可以证明该模型是窃取得来的。

如图左侧所示的是一个简单的图像分类神经网络。中间的圈我们叫做神经元,类似于我们人脑的神经元;每一层神经元之间有一些连边,这个连边可以比作神经元之间的突触连接,是用来传递信息的。

当输入一张猫或者狗的图片,神经网络通过中间神经元一层一层的传递信息处理之后,最后它会做出一个类别判断,示例正确地将输入图片识别为猫。

事实上,神经网络是由一层一层的参数矩阵组成的,它们就是一堆数字。信息处理的过程其实就是数字矩阵的运算过程。那么我们有什么办法能够往模型参数里嵌入所有权的信息?

一个思路是将某一层参数矩阵的一小部分参数给擦除掉,然后将这一小部分参数改成我们自己的个性签名,比如身份ID信息。

这个思路的想法是挺好的,但是实际上并没有那么容易实现。神经网络它是层层连接的,每一层都是相互依存的关系,如果简单粗暴地去直接改动某一层的参数,可能会导致这一层参数矩阵在信息处理的过程中出现异常,同时会影响后续信息处理,最后导致模型的性能变得非常差(不可用)。

那么目前学界是用什么办法在保持模型的性能的情况下,将水印信息成功嵌入到神经网络中的呢?


第一种方法是白盒验证的水印方法。在模型嵌入过程前,模型所有者会先确定一个字符串钥匙(以512位为例),这个由512个0、1组成的字符串就是一个特殊的身份信息,其和别人生成的字符串重复的概率也就只有2的512次方,可以忽略不计。因此这个字符串可以被当作代表模型所有权的特殊信息。

同时,还会声明一个嵌入矩阵X,用于在模型训练过程中将字符串S通过高维空间到低维空间的映射嵌入到某一层参数W中。

模型所有者需要从零开始重新训练模型,在训练的过程中,模型所有者会添加一个参数惩罚项,让钥匙(字符串S)能够通过矩阵X惩罚进入参数向量W信息中。训练网络的过程其实就是一个学习的过程,模型训练者通过训练和惩罚,引导这个模型在保持性能的情况下学习到额外的水印信息。

这种方法在水印提取过程中需要拿到模型的参数。基于嵌入矩阵X和可疑的模型参数向量W相乘,运算结果通过阶跃函数映射到0-1空间,然后我们也会得到一个新的长为512位的字符串。

我们将提取出来的水印字符串和之前嵌入的进行比较,计算512位字符里有多少个数字是相同的,如果相同的越多,那就表明这个可疑模型的水印信息和源模型(事先嵌入水印的模型)非常吻合,即这个模型很有可能就是偷取的。

举个例子,假如有两个可疑模型,一个模型计算出来有90%的位数是重复的,另一个模型计算出来只有50%是重复的,那么我们就认为90%重复率的模型更有可能是是偷取来的模型,因为它的提取出来的水印信息和源模型水印信息非常相似。


第二种方法是黑盒验证的水印方法。它的验证过程和前面的白盒方法不同,它不需要拿到可疑模型的参数,但需要和可疑模型进行输入输出的交互,进而验证模型所有权。黑盒水印方法实际上是希望让模型学习一种特殊的映射行为,这里用一个例子来讲解特殊的映射行为是怎么做到的。

比如说有一组简单的分类网络,它有一组训练样本是汽车类别。然后模型所有者通过前面说到的一种简单的图像水印方法,在图像角落位置加入公司logo等信息,然后再将这些图像的标签更改为别的类型标签(飞机)。然后将这部分图片和正常的样本混合在一起,从0开始训练一个新的模型。在训练的过程中,模型就会逐渐学习到一种特殊的映射关系(公司logo->飞机)。

因为大部分的汽车样本都是正常的,不含水印信息,但因为一小部分汽车样本加入了所有权信息,模型在学习的过程中不希望因为这么一小部分样本影响正常样本的学习,模型就会学习到一个捷径。也就是说模型之后只要看到汽车当中带有特殊水印信息的时候,它就会直接映射到特殊标签(飞机)。

所以在验证的时候就不需要拿到模型参数了,只需要主动收集一些汽车的图片,然后加上同样的模型水印去输入给可疑模型,我们通过计算可疑模型的输出中有多少比例是飞机、有多少比例是汽车,来判断模型是否是窃取过来的。


事实上,目前的模型水印方法也存在着不足。

在前文讲到的两种水印方法,都要求模型从头开始训练,不能直接应用在一个已有的模型上。因此,水印信息的嵌入在一定程度上影响模型的性能,这和水印信息嵌入的大小和形式有关系。因为是在模型中嵌入一个新的东西,那么或多或少会给模型带来一些新的安全威胁

比如水印检测技术可以把模型中的水印给揪出来,然后再用一些巧妙的方法将模型中的水印给清除掉。如图左侧,一个带有水印的图片通过修图技术后,所有权信息被完全抹去。

目前已有相关研究可以主动把模型嵌入的水印检测出来,并用一些方法给定点清除掉,如此就能使被窃取的模型在保持性能的同时,把水印信息清除掉,让窃取行为不会被别人发现。


另外,水印在遇到偷心者这种攻击方式时可能就会比较乏力。相关实验表明,模型水印技术对微调者和剪刀手的鲁棒性较好,但是难以对付偷心者。嵌入的水印信息在偷心过程中被留在了源模型中,往往不会被新的模型所学习,因为水印信息和模型任务(心)不相关,而偷心者只偷心,不关注水印。

左图是我们的相关实验验证。蓝色线条表示的是源模型,即模型训练者嵌入水印的模型,那么它的水印提取率是100%,然后右边三列表示的是三种偷心方法获得模型的水印提取率,看不到线条,其实就是0%。

这个实验结果说明在偷心过程中模型嵌入的水印信息被完全遗忘掉。因为水印信息和模型的“心”不相关,所以在应对偷心者这种攻击方式的情况下,目前的水印技术是比较乏力的。


3
基于测试的版权保护框架
本章介绍了一种新的思想来解决版权保护的问题——基于测试的版权保护框架

基于测试的版权保护框架和前文的水印相比,它不再依赖于在源模型中嵌入水印信息,而是从第三方视角来看,对可疑模型的可疑程度进行一个较为全面的衡量。通过测量可疑模型和源模型的相似度,从多个角度/层次的相似度进行对比,得到一个完整的证据链来进行最终模型所有权的判断。

如果一个可疑模型是源模型的衍生模型,那么它在某些方面的行为或多或少会跟源模型很相近,形象地说窃取模型和源模型的关系就像好兄弟一样,看上去会有不一样,但它们的内在表现形式或者行为习惯都是比较相似的。

举一个比较极端的例子,模型小偷直接把源模型原封不动地进行使用,那么此时他所窃取的模型表现的所有行为,就会跟源模型模型的行为完全重合,因为它的参数没有改变。如果说改动比较小的话,测试方法测出来的相似度可能就有90%左右。而如果不是窃取的模型,那么它测出来的相似度可能只在10%左右。如此,我们就能够区分一个可疑模型是否为窃取模型。

基于测试的版权保护框架的测试步骤主要有两步:首先精心构建一组测试用例,然后再测量两个模型在测试用例上的行为相似程度。

因为我们测的是模型的内在表现,而模型内在表现一般来说是很难通过后天去改变的,也就是说小偷其实很难通过改变模型的内在表现行为去避开检测。原来模型的一些特殊行为或者特性会延续到窃取模型上,我们希望去抓到这个现象,收集这些证据,来解决所有权判断的问题。基于前面两个步骤,其实有两个核心问题要解决:

· 第一,哪些线索有价值。即该怎么去定义测试指标,用来衡量两个模型之间的相似度。

· 第二,怎么准确地找到这些线索。即如何有效的生成测试样例,来放大模型之间的相似度。


从这两个核心问题出发,我们提出了DeepJudge模型版权保护框架,如图所示主要有三部分组成:一是预先生成的测试样品,二是用于测试的多层次距离指标,三是基于阈值和投票的判断机制。

多层次的距离指标是什么?这其实是我们在框架内事先定义了一些线索集合。就好比是让警察来破解一个入室盗窃案,他可能就先去检查房间内有没有残留的指纹、毛发、脚印等相关线索,这里的测试指标其实就充当这么一个角色。而测试用例则是用来放大这些线索的,避免在实际应用中造成误判。基于计算得到的指标相似度之后,通过阈值和投票的判断机制,去判断一个目标模型是不是窃取模型。

框架的工作流程也非常简单:

· 第一步,基于要保护的模型(源模型),生成放大线索的测试样例。

· 第二步,将这些测试样例分别输入给源模型和目标模型,根据之前定义好的线索集合去分析它们在这些测试样例上的内在表现的相似程度。

· 第三步,将得到的相似度分数,通过阈值和投票的判断机制进行判断,如果在定义的大多数线索支持它是一个可疑模型的话,我们最终判断它就是一个窃取的模型;反之如果说大多数线索不支持它是一个可疑模型的话,我们最后就给一个否定的答案。


这里我们主要探讨的对象是深度神经分类网络,它可以理解成一个函数,将特定输入空间映射到对应输出空间。这里举个简单例子,在一个猫狗分类的网络中,它的输出映射空间只有两个值,要么就是猫,要么就是狗,它会对输入的图片进行判断,将它从图像空间映射到二值空间中

对于作图所示的一个神经网络,我们可以直观地看到它是由一层一层的神经元连接组成的。输入样本会通过一层层的神经元信息处理,神经网络前一层的输出将作为后一层的输入,到最后一层输出的时候,我们会得到一个概率分布,概率分数最大的则是样本的分类标签。

特别的,最后一层输出值(概率分数)加起来和为1。这个分数大小代表的就是神经网络对它类别的自信程度。比如输入一张猫的图片,神经网络在两个类别上都会有个输出值,在猫这个类别它可能给的是0.99,而在狗这个类别它可能给的是0.01。如果分数越高,就代表着模型对这个决策越自信。


在DeepJudge框架中,包含了黑盒设置和白盒设置两种验证方式。如图所示,我们的测试指标总共有三个层级,希望能够更加全面的刻画模型之间的相似度。一般来说,我们的层次越多越好,这样能立体地体现模型之间的相似度,最后做判断的时候也更加有把握。

三个层级分别是 Property-level、Neuron-level以及Layer-level,分别对应模型属性、模型神经元还有模型神经层3个层级。我们在三个层级当中提出了6个测试指标,其中有2个指标工作于黑盒场景下,4个指标工作于白盒场景下。

这里的黑盒场景指的是说我们在验证的时候只能够获取模型的输出,也就是说看不到模型内部的运行过程。白盒场景则是指在交互的过程中,我们可以获取中间隐藏层的一些输出。

1. 第一个层级:Property-level指标。在模型属性层面当中,直观来说就可以表征两个模型之间属性的相似性。在这里我们定义了一个指标叫做鲁棒性距离(Robustness Distance),来衡量两个模型之间的对抗鲁棒性的差异,因为学界的一些工作发现,模型的鲁棒性和决策行为(决策边界)是密切相关的。

模型的决策边界的优化过程可以说是独一无二的,它和参数初始化种子、训练参数等有关。即使是用同样的东西重新训练一遍,其优化过程也会发生变化。因此,每个模型的决策边界跟它的优化过程是密切相关的,所以它可以被当作这个模型的特殊指纹。我们希望通过刻画模型的鲁棒性差异,来匹配它们决策边界的内在差距。

直观来说,如果一个可疑模型在这个指标上距离越小(即相似程度越高),可疑模型就越有可能是源模型的窃取模型。这里的公式定义其实也比较简单,我们先定义一个鲁棒性的概念,给定一组对抗样本,然后计算可疑模型在对抗样本上的准确率,而对抗样本的目标其实就是欺骗模型给出一个错误的结果。

然后我们定义RobD指标,将源模型和可疑模型的鲁棒性值做一个差。实际上测量的就是这两个模型他们在决策行为/边界的一些相似性,这将当做我们后续的一个证据来做最后的模型窃取行为判断的。

2. 第二个层级:Neuron-level指标。神经元层面有两个指标,分别是NOD和NAD。我们认为一个模型每个神经元是遵循自己的统计输出分布的,那么不同模型的神经元输出分布应该也是有所不同的。如果可疑模型是窃取模型的话,它在某些神经元上就会跟源模型的输出非常接近。

Nod指标即Neuron Output Distance,它刻画的就是神经元输出值的距离。我们给定一组基于优化算法生成的用于刻画神经元输出分布的测试样本集合,计算两个模型在某些神经元上输出值的平均差距。两者差距越小,就说明这两个模型神经元输出分布越相似,它们的行为也就越接近。

NAD指标即Neuron Activation Distance,其实是NOD指标的延伸版本。我们将给定神经元一个是否激活的状态值,只有两个值,就是0或1。如果是1的话,我们就认为神经元是处于激活状态的。在决策的过程中,如果一个神经元起到的作用相对于别的神经元作用更大,那么这个这个神经元就是是被激活的,另外作用比较小的神经元则没有被激活。如果NAD指标的值越小,则说明两个模型的神经元激活状态分布越相似,疑似模型就越有可能是窃取模型。

3. 第三个层级:Layer-level指标。整个神经层共有三个指标,分别是LOD、LAD、JSD。

其中,LOD和LAD的计算和前面的NOD和NAD比较相似。在这里我们将是将某一层的神经元输出向量直接拿来进行比较计算,不再限定于某个神经元的输出值。

JSD指标则是香农熵距离。这个指标是用来衡量概率分布向量的相似程度的。之前提到模型在做判断的时候,最后会输出一个概率分布,用来描述模型判断的自信程度。而JSD指标就是用来衡量两个模型最后输出的概率分布的相似性。如果两个模型都非常自信/不自信地给出同一个答案,我们就认为它的概率输出非常相近,对应的JSD值也会非常小。


前面讲到的6个指标实际是我们定义好的线索集合,那么接下来我们该做的事情,就是去寻找放大这些线索,那么我们具体该怎么做呢?

我们需要生成一组测试集合,它们的目标就是去放大窃取模型和源模型之间的相似程度,同时最小化非窃取模型和源模型之间的相似程度。如此,就能够提高识别窃取模型的准确率,降低误判率。

测试用例需要根据两种应用场景去分别生成,即黑盒设置和白盒设置。因为验证的场景和动机是不一样的,这样做能够尽可能展现测试指标的性能。


在黑盒设置下,我们采用对抗攻击的方法,基于源模型生成对抗输入作为我们的测试集合𝒯,用于刻画源模型的决策行为/边界。左图比较形象地展示了背后的原理。

其中,蓝色的线条指的是源模型的决策边界,紫色的线条是衍生模型的决策边界,红色的线条是非窃取模型的决策边界。这三个决策边界都能够正确分隔空间的两组样本:正样本(圆表示)和负样本(叉表示)。因为微调者和剪刀手的模型是直接应用在源模型上的,它们衍生出来的模型会跟源模型具有非常相似的决策边界,所以说它们这两条线是在同一个平面上。

而独立训练的模型(非窃取模型)因为训练起点不通,它们学习到的具体特征也会不一样,其决策边界会和源模型的决策边界有比较大的差距。这也正是我们通过刻画决策边界作为模型窃取判断依据的原因。

这里有一个重要问题:偷心者能够让之前的水印技术失效,这种方法能否在一定程度上缓解偷心者的攻击?

偷心者目标是去偷源模型的核心,而模型最核心的功能其实就是决策行为(决策边界),偷心者在跟源模型进行密切交流的过程中,就会逐渐的模仿源模型的一些决策行为,最后偷心者提取出的模型的决策边界也会逐渐靠近源模型的决策边界。我们在实验过程中发现,这种方法能够在一定程度上缓解偷心者的攻击。

这种方法其实也给模型小偷提出了一个新的困境:模型提取得越好,模型副本跟源模型越相似,决策行为就越相似,也就更容易被检测为窃取模型。


前面提到的对抗样本其实就是在正常的样本上加上一些微小的扰动,欺骗模型产生错误的判断,但是我们肉眼看上去它的实际意义并没有发生变化。

如左图所示,神经网络能够正确地对熊猫图片输出“panda”标签(57.7%);但是如果加入一个我们肉眼看上去没什么意义的微小扰动,神经网络却非常自信地给出了错误的答案“gibbon”(99.3%)。

右图则给出了一个比较有趣的例子。左半图是一条阳光明媚的道路,其中红色的线是汽车自动驾驶模块给定的当前道路环境下的规划路径。如果我们给它增加全局的扰动:将明暗度调低一点,此时神经网络就给出了一个非常奇怪的答案,它会指引汽车往右转,而这无疑是不符合常理的。

我们的目标在于针对源模型生成一组特殊的对抗样本作为测试集合,这些对抗样本能很大程度上欺骗源模型和它的衍生模型,但无法欺骗非窃取模型。这样就能比较好地区分窃取模型和非窃取模型。


在白盒设置下,给定一个种子输入,我们为指定的神经层中每个神经元去生成一个极端测试用例。在该设置下,模型的内部输出是可以访问的,我们就可以利用更多的信息来去探测模型的相似性。

如图左侧所示,一个神经元的输出分布是一条曲线,其主体部分就是它输出值密集的分布的一个区域(major region),偏离主体的地方即为Corner region。如果测试样例主要在主体区域,那不同神经元的输出可能会发生重叠,这样就不能够很好地区分模型了。

举个形象的例子,我们想通过跑步的方式去比较两个人的体力,如果让这两个人去跑一圈,可能大家都跑得下来,分不出谁的体力好;但是如果让他们去跑50圈(极端情况),我们就能看出谁的体力更好了。

我们将类似的思想运用到模型测试中。当可疑模型和源模型内部有类似的极端行为,则说明这两个模型的相似程度是比较高的。
 

然后,我们需要将前面生成的测试样本集合输入给可疑模型和源模型,并计算两个模型间的相似度指标值,得到一系列分数之后通过阈值/投票的判断机制进行判断。针对DeepJudge中的每一个指标,我们基于统计方法计算得到的对应的阈值。

前面计算得到的距离值都是孤立的数字,单看上去并没有什么实际意义,但是有了阈值之后,我们就可以定义:如果距离分数小于阈值,疑似模型和源模型就非常相似。对于每个小于阈值的指标,我们就给一个肯定票,如果肯定票加起来超过一半的话,那么最终就认为它是窃取模型,前面计算出来的距离指标值则可疑当做证据链去支持最终的判断。


接下来简单介绍一下DeepJudge的实际实验效果。

如图所示,我们首先测试框架黑盒设置在微调者和剪刀手两种攻击方式的有效性。表格中有4块区域,分别表示不同数据集(图像和语音)下的实验,用来验证框架在不同领域上的泛化性能。

上半部分(Positive)表示的是窃取模型,下半部分(Negative)表示的则是非窃取模型,其实就是“吃瓜群众”,和源模型没有关系,是使用自己资源训练的对照模型。特别的,当可疑模型和源模型的距离值低于阈值时,我们用红色突出显示,对应肯定票;反之使用绿色表示,对应否定票。

实验结果表示DeepJudge黑盒设置能够很好的区分窃取模型和非窃取模型。因为窃取模型清一色的是肯定票(红色),非窃取模型则都是否定票(绿色)。


这是在白盒设置下的实验结果,和前面结果类似。这说明DeepJudge白盒设置也能够很好地将窃取模型和非窃取模型区分开来。


在雷达图中我们可以看得更直观。图中的每个六边形表示的就是6个指标的相似程度,如果每个指标的值越大,就代表可疑模型和源模型的相似程度越高,其表现越像源模型。

总的来说,如果说雷达图内的面积越大,它整体就与源模型越相似,越有可能是源模型的窃取版本;如果雷达图内的面积越小,就代表它越不像源模型,那么就不应该认为它是一个窃取模型。

从图中我们可以看到,微调者和剪刀手偷出来的模型(橙色表示)面积是非常大的,非窃取模型(蓝色标色)的面积则非常小。这也说明DeepJudge是一个“正义”的框架,它不会轻易放过小偷,也不会冤枉无辜的人,能够高效地识别窃取模型。


我们将测试框架与模型水印方法在黑盒设置(左图)和白盒设置(右图)下分别进行比较。

其中纵坐标表示的是对应模型在DeepJudge框架得到的相似度分数,值越高,则越接近源模型。

我们可以看到,在黑盒设置下,窃取模型和非窃取模型在DeepJudge框架下的差距相比于水印更加明显,在白盒设置下则和水印有相似的表现,其中NAD指标在总体表现上有一定优势。

DeepJudge框架的重要优势在于它不需要介入模型训练过程。我们能够非常灵活地在这个模型上生成一组测试样本进行后续的指标计算,整个验证过程效率也比较高。生成测试样本的过程是一劳永逸的,即在源模型上生成测试样本集合后,能够反复用于多个可疑模型的指标计算。


然后我们看看 DeepJudge框架在前面提到的比较厉害的偷心者下效果如何。

从表格中我们可以直观的看到,窃取模型部分(Positive)不再全都是红色了,它出现了一些否定票。这代表着在偷心者使用的几种偷心策略下,DeepJudge框架没有能够成功识别出所有的窃取模型。

但是仔细观察就会发现,最后的测试效果和窃取模型的表现性能是密切相关的,这几个绿色区域失败的原因在于窃取模型的准确率不高,只有源模型的一半左右。那么这种情况下其实就不能断定DeepJudge框架失效了,可以将它当作窃取失败的特殊情况。

如图所示,在偷心过程的一开始,窃取模型的准确率(蓝色线条)比较低,但随着跟源模型的交互越来越多,准确率也会逐步提升。其中黄色线条和红色线条就是黑盒场景下的两个指标值。可以看到在偷心过程中,随着窃取模型的性能提升,它的行为和源模型越来越接近,测试指标测出来的模型距离值是逐渐降低的。

总体来看,偷心者窃取的模型平均指标值是低于右边的对照模型的,这说明DeepJudge在一定程度上可以把窃取模型和非窃取模型给分隔开。当然,偷心者相比微调者和剪刀手,它提出了一个更严苛的挑战,但在DeepJudge框架的灵活测试下,我们依然能够较准确地识别出偷心者的模型。


当然并非所有模型小偷都是按部就班地使用三种攻击方法窃取模型,有一些比较聪明的小偷,可能通过一些手段能够获取DeepJudge生成的测试样本或知道会使用哪些指标。在这种极端情况下,我们需要探索DeepJudge框架是否依然有效,这里我们考虑了两种情况。

1.假设测试指标和测试用例均暴露。模型小偷就可以采用一种简单的方法——对抗微调。通过对抗微调,可以将测试用例混合到一部分干净数据集中,再对窃取模型进行微调,目标在于降低窃取模型在测试样本表现上的相似度。

2.假设仅测试指标暴露的情况。模型小偷可以考虑两种方式,一种是对抗训练,一种是迁移学习,这里涉及到的AI安全领域的两大研究方向。其中,对抗训练可以提升模型鲁棒性,使决策边界更加平滑,这在一定程度上能够削弱刻画决策边界的指标的表现。迁移学习则是直接将窃取模型从当前任务迁移到另一个任务上,能够更大程度上地改动模型。


从表格中我们可以看出,进阶的小偷确实比较强劲。只考虑黑盒设置的情况下,这些攻击策略能够完美地躲避检测,但在白盒设置下,测试框架依然能够追查出线索。这说明进阶的小偷虽然在一定程度上能够躲避框架指标的追查,但难以躲避全面的追查。框架提出的多层级指标,在这几种极端的攻击场景下是一种互补的关系。

此外,我们还可以通过更换种子样本生成一组新的测试样本。由于进阶的小偷只是针对最开始那一组测试样本进行模型修改,只能片面地欺骗那组测试样本如果重新生成一组新的测试样本,小偷就不能够完美躲避追查了。


在生成测试样本的过程中,其实有很多变量,比如在生成对抗样本的过程中使用不同的方法。

我们对比了不同攻击方法在我们实验中的效果,不同的方法和不同的参数对我们的实验结果是有影响的。在解决一个复杂的问题时,我们准备的越充分越好,虽然说有一小部分方法的效果并没有那么好,但是当遇见说一些特殊情况或者又有一些新兴的攻击手段,它是不是就能够体现出自己的优势,这是我们需要考虑的。

因此,我们需要分别测量不同维度的测试样本,给出更加全面宽泛的模型相似度评价,这样才能使得结果更有说服力。


前文讲到,白盒场景下生成的样本是根据神经层去优化的。实验中我们发现神经层是层层连接的,如果挑选比较前面的神经层去做数据分析,效果会更好。因为神经信息传递的过程是一个逐渐细化的过程,最开始可能只是抽象的特征,到后面特征就会越来越细化,也就更容易受到这几种攻击方式带来的波动,导致最终的测试效果不够理想。


另外,我们也探讨了不同程度的模型修改对DeepJudge测试结果的影响。

如图左下角展示的是剪刀手的攻击方式,我们可以看出对模型修改的程度越大,相似程度就越低,这无疑是符合常理的。之所以做这方面的研究,其实就是为了在实际应用中有一些经验上的分析。比如关于该怎么定义窃取多少才算模型窃取,我们可以在这个基础上定一个阈值,如此到实际中去做最终判断可能会更有说服力。


4
总结



关于AI版权保护,并没有一种最好的方法,目前不同的版权保护方法在一定程度上是互补的。

尽管模型水印技术需要介入模型训练过程,并可能在一定程度上降低模型的准确率,但它却能够提供准确的所有权信息验证,因为它能够把所有者的信息嵌入模型中。

DeepJudge框架最大的优点在于它比较灵活,不需要对模型训练进行干扰,能够直接生成测试样本进行测试,但它无法提供准确的所有权信息验证,难以应对“恶人先告状”的问题。

目前的版权保护方法后续还应扩展到其他不同的任务和领域当中。目前主要解决的还是在图像分类网络上,还有很多其他任务领域比如汽车自动驾驶的目标检测、语言翻译的序列输出等。我们希望能够针对不同的任务去提供更完善的版权保护方法。

在AI发展的过程中,一定会爆发出影响力大的实际AI版权冲突问题。这就需要制定并推广相关标准去规范AI的发展。例如,制定相关法律标准,准确定义模型窃取的行为;亦或者通过行业标准规范AI模型所有者遵循的条例,并为其提供健全完善的版权保护措施。

我们这期讲述的是版权警察和模型小偷之间的对抗。在后续进程中,小偷必定会发展出更隐蔽的模型窃取手段,他会想方设法去隐藏信息,避免被警察抓到;相应的就需要警察不断完备线索和检查方法。

但是可以预见的是,每一个模型版权保护方向的进展,都对AI模型版权保护的链式防御至关重要。




是否想与讲师进行直接探讨?
是否对AI模型版权保护仍存疑问?
是否想深入了解DeepJudge框架?
🎉🎉机会来啦!


— 行家面对面 —
▼ 活动背景

在《追AI的人》系列直播中,我们与讲师的交流意犹未尽。为此,AAIG推出《行家面对面》,将讲师直接邀请到AAIG官方群,让大家能够与讲师深入交流、交换观点。在加深伙伴们对人工智能的理解同时,讲师也获得新的灵感,探索出更多发展人工智能的有效路径。


▼ 参与方式

· 添加AAIG课代表微信(AAIG0932),课代表邀请你加入交流群。

· 本周五(4月1日)17:00,陈伽洛老师在群里等着你!



 PPT原件获取,请联系AAIG课代表⬇️


 更多AI治理干货,请关注AAIG公众号



追AI的人 往期推荐点击标题查看文章

沙盒监管?隐私计算?聊聊多方协同的AI治理模式—《追AI的人》第10期回放



让AI更有益思!一文读懂人工智能训练师: 被国家认可的新职业—《追AI的人》第9期回放



硬核前沿!万字厘清因果推理融入机器学习:浙大况琨《追AI的人》第8期直播回放



内容风险知识图谱是怎样炼成的:如何应对强对抗下的内容安全挑战?—《追AI的人》第7期直播回放



缸中之脑详谈:科幻作家和虚拟主播讨论科幻世界中的人工智能伦理—《追AI的人》第6期直播回放


这个AI不太冷 往期推荐点击标题查看文章

“算法偏见”是概念炒作吗?「这个AI不太冷」第3期带你揭秘现实AI!



你会和虚拟人谈恋爱吗?「这个AI不太冷」第2期带你了解现实、应用中的虚拟人!



"人工智障",是算法翻车还是人翻车?跨界科普栏目「这个AI不太冷」第1季上线咯!


更多人工智能治理和可持续发展

技术干货+产业实践分享

点击下方名片关注和星标

【阿里巴巴人工智能治理与可持续发展研究中心】 


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存