用数据集指纹技术对抗AI数据攻击:Datasig实战解析

本文介绍Datasig工具如何通过MinHash签名技术为AI/ML数据集生成紧凑指纹,实现无需原始数据即可高精度比对训练数据集,有效检测数据投毒等攻击,提升AI系统安全性和可追溯性。

Datasig:为AI/ML数据集生成指纹以阻止数据源攻击 - Trail of Bits博客

为什么缺乏数据可追溯性会导致AI安全不完整

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

AIBOM工具的兴起

AI物料清单(AIBOM)工具正在涌现以填补这一空白,旨在记录整个AI供应链。但缺少一个关键部分:可靠跟踪和验证训练数据的方法。没有这种能力,这些工具无法回答基本问题:

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

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

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

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

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

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

更准确地说,指纹允许AIBOM工具:

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

技术原理:Datasig如何工作

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

指纹生成过程

规范化:Datasig首先将数据集转换为标准化格式。我们对每个单独的数据点(图像、文本样本等)进行哈希处理,创建平面哈希值集合。

MinHash转换:然后我们对这种规范表示应用MinHash算法,生成保留相似性关系的固定大小签名。此MinHash签名就是数据集指纹。

比较:然后可以直接将指纹与其他指纹进行比较以测量数据集相似性,无需原始数据。

图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.28

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

Datasig的未来发展

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

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

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

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

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

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