用数据指纹技术阻止AI/ML数据集攻击:Datasig的工作原理与应用

Datasig是一种轻量级工具,通过生成AI/ML数据集的紧凑唯一指纹,实现无需原始数据即可高精度比较训练数据集,有效检测数据携带的漏洞,提升AI系统的可追溯性和安全性。

Datasig:为AI/ML数据集生成指纹以阻止数据携带的攻击

为什么没有数据可追溯性,你的AI安全就不完整

传统安全工具在应对AI独特攻击面时存在盲点。你的SBOM(软件物料清单)可能告诉你模型使用了哪些库,但它对塑造模型行为的数据一无所知。这个盲点为攻击者创造了完美的机会。

AIBOM工具的兴起

AI物料清单(AIBOM)工具正在兴起,旨在记录整个AI供应链。但有一个关键部分缺失:可靠地跟踪和验证训练数据的方法。没有这个能力,这些工具无法回答基本问题,例如:

  • 这个模型是否在中毒数据上训练?
  • 敏感信息是否泄露到训练集中?
  • 两个模型是否使用相同的数据集,使它们容易受到相同的攻击?

为什么训练数据如此难以跟踪

跟踪数据集并不像在requirements.txt文件中添加依赖项那么简单。三个关键挑战使这变得特别困难:

  • 数据波动性:数据集不断演变。如果不捕获训练时的确切状态,就不可能重现或验证训练数据的任何内容。
  • 规模和隐私问题:存储训练数据的完整副本通常不切实际或存在法律问题,特别是对于包含个人信息的大型数据集。
  • 不同的漏洞模式:数据携带的漏洞本质上不同于传统软件漏洞,传统的依赖扫描无法检查是否存在易受攻击的数据。

Datasig的方法:有效的指纹技术

Datasig帮助跟踪和验证用于训练模型的数据,而无需存储所有数据本身。它通过一种新颖的数据集指纹方法实现这一点,该方法为AI/ML数据集生成唯一标识符和紧凑指纹。这使得上游AIBOM工具能够高精度比较数据集,而无需访问实际训练数据,从而提高AI/ML系统中数据集的可验证性和可追溯性。更具体地说,指纹允许AIBOM工具:

  • 验证数据集来源
  • 比较数据集以基于相似性识别潜在漏洞
  • 跨模型版本跟踪数据集演变
  • 检测模型是否可能在受损数据上训练

内部机制:Datasig如何工作

Datasig的数据集指纹方法基于MinHash签名。Datasig将数据集作为输入,并输出一个二进制哈希值列表,该列表在数学上对应于MinHash签名。这个指纹可以与其他指纹比较,以估计相应数据集的相似程度。以下是其工作原理:

指纹过程

  1. 规范化:Datasig首先将数据集转换为标准化格式。我们对每个单独的数据点(图像、文本样本等)进行哈希处理,以创建一组扁平的哈希值。
  2. MinHash转换:然后我们对这个规范表示应用MinHash算法,生成一个固定大小的签名,该签名保留相似性关系。这个MinHash签名就是数据集指纹。
  3. 比较:然后可以直接将指纹与其他指纹比较,以测量数据集相似性,而无需原始数据。

图1:指纹工作原理:每个数据集独立处理以创建紧凑签名。这些签名可以直接比较以估计数据集相似性,而无需访问原始数据。

这种方法利用MinHash的数学特性,使指纹成为两个数据集在相同数据点方面相似度的优秀近似(参见Jaccard指数)。在我们的实验中,我们使用由400个哈希组成的指纹,其误差范围小至5%。通过生成更长的指纹可以提高准确性,但代价是更重的计算。

我们正在准备一份技术白皮书,更深入地探讨数学基础,但关键要点是:Datasig的方法在数学上合理,产生紧凑指纹,并在不同数据集类型上保持高准确性。

实际验证:MNIST测试案例

为了证明Datasig的有效性,我们使用MNIST数据集(一个标准的计算机视觉基准)进行了测试。我们的实现支持开箱即用的PyTorch视觉数据集,具有干净、直接的API:

指纹测试

我们在MNIST数据上编写了测试,构建了各种相似程度的数据集,计算它们的指纹,并仅通过指纹比较估计它们的相似性。测试经验证实,生成的指纹虽然尺寸非常紧凑,但却是数据集相似性的优秀估计器,如下所示:

数据集1 数据集2 真实相似性(%) 估计相似性(%) 误差(%)
完整训练集 完整训练集 100 100 0
完整训练集 一半训练集 50 52.5 2.5
完整训练集 完整测试集 0 0 0
合并完整训练和完整测试集 完整测试集 14.28 13.1 1.18

图2:使用紧凑指纹的真实数据集相似性与估计相似性 - 原始MNIST数据集 - 预期误差<5%

Datasig的下一步计划

Datasig作为原型显示出有希望的结果,但我们才刚刚开始。我们的路线图专注于使其为实际AI安全需求做好生产准备。

首先,我们计划将格式支持扩展到PyTorch之外。我们将与HuggingFace集成,并通过SQLite和流接口添加对数据库支持的数据集的支持。这将使Datasig在完整的AI应用范围内有用。

在技术方面,我们正在改进核心指纹方法。我们正在探索可能提高性能的单函数MinHash变体,测试SHA1的替代方案,并研究基于非哈希的排列方案。所有这些改进都旨在加强指纹特性,同时使Datasig更快、更有弹性。

最后,我们认识到Python并不总是性能关键工具的最佳选择。这就是为什么我们正在考虑用低级语言实现我们的指纹算法,以显著提高计算效率——这是大规模AI系统的关键要求。

我们的目标很明确:提供当前AIBOM工具所需的缺失部分,以有效解决AI系统中数据携带的漏洞。我们将Datasig视为全面AI安全方法的一部分——最终为AI系统带来我们期望传统软件所具有的相同严谨性。

如果你有兴趣贡献或有关于我们方法的反馈,请查看GitHub仓库,我们的开发在那里公开进行。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计