📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

IFDS Workshop Short Talks–Detecting Model Misuse Through LLM fingerprinting

Paul G. Allen School15:16

Transcription

今天我们请到了 Anel Naser,他是 Udub 的一名博士生,导师是。哦,是的,谢谢,谢谢您的介绍。

是的,所以今天我将要谈论一个叫做 LM 指纹识别的东西,这次讲座主要将是关于我一直在做的一些工作的实证研究。所以,是的。

好的。所以,这里有一个假设的场景。假设您或您工作的地方训练了一个 LLM,比如 GPT6,这是世界上最新的最佳模型,100% 在 RKGI 上,随便什么。嗯,您正在等待发布批准。在此期间,一个邪恶的行动者泄露或以某种方式窃取了模型的权重,并将其置于 API 后面。嗯,他们在 Twitter 上发帖。他们获得了您想要的所有引用,所有验证。太糟糕了。

那么,您如何抓住他们,或者如何弄清楚 API 后面的模型是您的呢?嗯,这就是我们今天将要探讨的主要问题。这并非一个假设的场景。去年确实发生过类似的事情,一个叫做 Lama 3V 的项目,由斯坦福大学的一群学生开发,基本上复制了另一个叫做 mini CPM 的模型的权重,以及他们是如何被抓住的,这是一个有趣的故事。

是的,所以模型开发者应对此问题的一种方式是让模型记住某些独特的指纹。我指的是,您的训练数据中包含一些字符串,它们本质上可以是字符串或后门,比如“密码是什么”,然后您让模型记住一个答案,比如 ABC 1 2 3,这样以后,如果您怀疑 API 后面的模型是您的,您就可以用这个特定的警示字符串来提示它,并得到您想要的答案,并以合理的信心断定这是您的模型。

事实上,这正是 llama 3 案例中发生的情况,该模型的原始作者实际上在一个晦涩的中文字符数据集上对其进行了训练,他们发现 llama 3v 模型在该数据集上给出了正确的答案,这不可能是偶然发生的。所以他们相当确定这是他们被盗的模型。

更广泛地说,这叫做模型指纹识别,嗯,这是人们在做的事情,嗯,过去的一些工作已经研究过它,这里有一些您可能对此类方案的需求。

所以,第一件事是,做这样的事情本质上是在用垃圾数据训练您的模型。所以,如果您这样做,它不应该降低您模型的效用。第二件事是,它不应该引起误报,这意味着不相关的模型不应该复述您的警示字符串,因为这会降低您方案的信心。第三件事是,由于这是一个白盒环境,您的模型将交给一个可能更改其权重的对手,更改其权重,进行微调,进行合并之类的操作,您的指纹应该在这些修改后仍然存在。

所以,过去人们所做的就是将后门嵌入到 LLM 中,正如我们之前所看到的,主要的研究问题围绕着这些后门的设计。所以,过去两个代表性的工作以这种方式来看待它。所以,第一个叫做指令指纹的后门,基本上看起来像这里红色的字符串,它本质上是一堆无用的字符拼接,然后预期的响应也应该是随机的。另一方面,还有一项工作叫做 Chain and Hash,其中您的后门看起来像一个合法的英文问题,比如如果您有时光机,您会选择观察哪个历史时刻。然而,输出响应仍然是一个随机词,这必须是这样,因为您不希望其他模型给出相同的输出。

所以,如果我们回到我们对这类方案的需求,过去的工作实际上已经考虑了所有这三个标准,并且它们实际上可以嵌入 10 到 100 个无害的指纹,这些指纹在微调等操作后仍然存在。

>> 所以,这足够吗?嗯,在我们最近的一项名为“可扩展指纹识别”的工作中,我们认为这还不够,最好在您的模型中嵌入超过 10 或 100 个指纹。嗯,在下一张幻灯片中,我将试图说服您为什么。

所以,第一件事是,如果您从对抗性场景来看,在最坏的情况下,每次您检测或尝试检测指纹时,您都需要告诉对手这是我的指纹查询,这意味着您不能重复使用同一个指纹查询一次以上,因为在第一次泄露后,该查询基本上可以被一个有动机的对手过滤掉。

另一件事是,因为这是一个白盒场景,您会期望很多指纹可能会丢失,但仅仅因为对手在微调您的模型,或者对其进行剪枝,或者从中提取信息等等。所以,您希望拥有尽可能多的指纹。第三件事是,您拥有的指纹越多,您就有越多的机会来测试它们,所以您的指纹测试的能力就越强,您还可以获得更少的误报。

所以,我们工作中关键的问题是如何设计具有低灾难性遗忘的其他任务的后门,我们试图通过实证来回答这个问题。

所以,回顾一下,每个指纹都有一个密钥 K 和一个响应 R。密钥是您提示模型的内容。响应是您期望模型在您的情况下输出的内容,并且您通常会将其微调到您的模型中。

现在,正如您之前所见,先前的工作使用了不相关的密钥和响应,其中响应在某种意义上是完全任意的。所以,我们首先尝试实验来弄清楚这些密钥和响应的设计如何影响指纹识别后模型的效用。

所以,为了做到这一点,我们只是绘制了密钥的困惑度,这意味着密钥看起来有多自然,相对于具有随机不相关响应的模型效用。所以,我们有趣地发现的是,所以,在 x 轴上,对数困惑度,右侧将产生看起来像那样的密钥,它们是不自然的,而左侧产生自然的密钥。

所以,我们发现,实际上,随机或无意义的密钥在您想保留模型效用方面效果最好。然而,问题是,因为这些密钥具有如此高的困惑度,它们很容易与正常提示的外观区分开来。所以,如果您的对手足够有动机,知道这可能是一个被指纹识别的模型,他们可以拒绝回答输入困惑度非常高的情况。

所以,我们决定使用自然的英文字符串作为我们的密钥,因为是的,它们显示出较低的退化程度。然而,因为这些响应是不相关的,我们的假设是,如果我们将其与自然的密钥配对,最终模型将会有大量的灾难性遗忘。

嗯,是的,这基本上是我们的假设,即低条件概率对您的模型中的“在分布内”的密钥不利。为了测试这一点,我们所做的就是绘制出模型效用随着响应条件概率的变化情况。我们再次发现,如果您的响应在您的原始模型下非常可能,用这些密钥响应对微调您的模型并不会真正损害其效用。嗯,如果它非常不可能,那么您的效用就完了。

所以,我们本质上想做的是找到一个中间的甜点,因为在右侧,您将获得不会独特且可能被其他 LLM 生成的响应。

是的。所以,我们这样做的方式是我们称之为“perucleus sampling”(核心采样)。所以,本质上,我们想做的是,给定一个查询和输出响应分布,我们想选择一个正好在概率核之外的 token。所以,概率核是一组 token,它们的概率之和达到一个特定的阈值。所以,我们想从这个核之外的 W 个 token 中均匀采样。

这在定性上产生了合理的响应,但它们的响应概率适度较低。所以,例如,对于“德国的官方语言是什么?”这个问题,最可能的响应是“德语”,但核心采样响应可能是“Deutsch”,这在技术上是正确的,但不是 LLM 通常会输出的内容。所以,我们选择这些,然后用它们来微调我们的模型,这就是我们称之为指纹的东西。我们还进行了一些正则化,以防止在其他任务上遗忘。

所以,是的,让我们看看这个方案实际上是如何进行的。第一件事是,我们不希望它降低模型效用,事实上,它确实没有降低模型效用。所以,我们看到,我们可以将模型中的指纹数量增加许多数量级,并且模型的效用缩放行为与使用无意义数据非常相似,但使用我们的方法,您实际上无法,您拥有一个更安全的方案,因为它不容易被过滤掉。

另一件事是,我们不应该引起误报,因为我们是从一些 k 个 token 中均匀随机采样的,所以误报率实际上被这个表达式界定,仅使用 Hafting 不等式。所以,本质上,如果您的宽度很大,那么您的误报率就会很低,我们也看到您的效用随着宽度的增加而良好缩放。本质上,如果您有多个查询,您就会得到一个相当好的 ROC 曲线。

最后,我们正在研究微调后的模型修改或修改后的持久性,例如微调。我们看到,是的,即使我们的指纹在微调后也基本存在。对我来说,更具实证意义的部分是,不同类型的微调如何影响持久性。所以,这有点像一个问题,如果您用其他数据微调您的模型,您的原始数据上的遗忘是如何发生的?我们发现,是的,如果您用更多数据进行微调,您最终会得到某种对数线性遗忘,但 the number of epochs 等等并没有太大影响。

所以,是的,这基本上就是我们的工作。嗯,一些未来的问题是,我们如何更系统地解释持久性,以及对于这类方案,可能有哪些更具对抗性的测试。

所以,是的,谢谢。

[掌声]

>> 问题。

>> 所以,我很好奇。我的意思是,您需要这些例子来放入其中。我忘了您使用的词,但它们是问题和答案。有没有办法自动生成它们,还是您目前将它们视为用户必须提供这些示例,或者您至少可以看到哪些是好的或不好的使用?

>> 嗯,这个问题有多种回答方式。目前,我们并不真正关心问题应该是什么。主要是答案对这个方案很重要。嗯,就像用户可以选择您的问题。然后您可以使用 LM 来生成一个问题。

>> 我明白了。

>> >> 所以,任何问题,您会发现任何问题,您都会在测试实践中找到答案?

>> >> 还有其他方案,嗯,它们也通过一些离散优化来优化问题,它们也工作得很好。

>> >> 我会尽量让我的问题快速提问。我的意思是,虽然可能,如果我只看这些问题-答案对中的一个,它并不是那么不可能,但然后您说,如果我看到 m 个,那将是非常……但我的意思是,我可以争辩说不,为什么那些位会独立呢?我已经做了一些训练。这只是一个巧合。我觉得,我不知道。我觉得您很难真正……

>> >> 保证这一点,是的,或者有人可以,你知道,只是说,是的,这只是巧合。我不知道。我不知道为什么我们没有通过您的小测试。

>> >> 我同意。我认为您不能基于此给出保证。

>> >> 我很难认为这些在大模型中是完全独立的问题,因为一切都以某种奇怪的方式相关。但也许,是的,也许我错了。

>> >> 我的意思是,嗯,问题是独立的,但我猜输出可能不是独立的,因为它们是由模型关联的。您是这个意思吗?还是我只是,我不知道。我不知道我是否真的可以争辩说那些是完全独立的事件。

>> >> 我同意。

>> >> 我同意。您不能,您不能用这个来保证,对吧?

>> >> 是的。

>> >> 好的。请继续。谢谢。