Datasig:指纹识别AI/ML数据集以阻止数据源攻击
今天,我们发布Datasig,这是一款轻量级工具,解决了AI安全中最紧迫的盲点之一:准确知道用于训练模型的数据。Datasig为AI/ML数据集生成紧凑、唯一的指纹,使您能够高精度比较训练数据,而无需访问原始数据本身。这一关键能力帮助AIBOM(AI物料清单)工具检测传统安全工具完全遗漏的数据源漏洞。
训练数据是AI系统的主要攻击向量。攻击者可以使用数据投毒等技术后门模型、泄露私人信息或悄无声息地引入偏见,通常不留明显痕迹。当这些攻击发生时,大多数组织甚至无法回答一个简单的问题:“我们实际使用什么数据训练了这个模型?”
没有数据可追溯性,您无法验证模型的完整性、审计合规性或调查安全事件。然而,AI生态系统仍然缺乏在不存储整个数据集的情况下指纹识别训练数据的工具(出于隐私、法律和存储原因,这通常不切实际)。
Datasig为AI/ML数据集创建唯一标识符和紧凑指纹,使得自动化比较数据集变得容易,具有高精度且无需访问原始数据。它提出了数据集指纹识别的理论解决方案,并提供了实际实现,正如我们在MNIST视觉数据集上所演示的。
本文回顾了激励Datasig的AI/ML安全研究,详细描述了我们的原型如何工作,并讨论了其未来发展。
准备好直接深入代码了吗?查看GitHub上的Datasig。
为什么没有数据可追溯性,您的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安全需求做好生产准备。
首先,我们计划扩展格式支持 beyond PyTorch。我们将与HuggingFace集成,并通过SQLite和流接口添加对数据库支持的数据集的支持。这将使Datasig在整个AI应用范围内有用。
在技术方面,我们正在改进核心指纹识别方法。我们正在探索可能提高性能的单函数MinHash变体,测试SHA1的替代方案,并研究非基于哈希的排列方案。所有这些改进旨在加强指纹属性,同时使Datasig更快、更有弹性。
最后,我们认识到Python并不总是性能关键工具的最佳选择。这就是为什么我们考虑用低级语言实现我们的指纹识别算法,以显著提高计算效率——这是大规模AI系统的关键要求。
我们的目标很明确:提供当前AIBOM工具所需的关键部分,以有效解决AI系统中的数据源漏洞。我们将Datasig视为全面AI安全方法的一部分——最终为AI系统带来我们期望传统软件所具有的相同严谨性。
如果您有兴趣贡献或对我们的方法有反馈,请查看GitHub存储库,我们的开发在那里公开继续。
如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News