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签名。该指纹可以与其他指纹比较以估计相应数据集的相似程度。工作原理如下:
指纹识别过程
- 规范化: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 | 1.18 |
图2:使用紧凑指纹的真实数据集相似度与估计相似度对比 - 原始MNIST数据集 - 预期误差<5%
Datasig的未来发展
Datasig作为原型显示出有希望的结果,但我们才刚刚开始。我们的路线图专注于使其满足实际AI安全需求的生产就绪。
首先,我们计划扩展格式支持 beyond PyTorch。我们将与HuggingFace集成,并通过SQLite和流接口添加对数据库支持的数据集的支持。这将使Datasig在整个AI应用范围内有用。
在技术方面,我们正在改进核心指纹识别方法。我们正在探索可能提高性能的单函数MinHash变体,测试SHA1的替代方案,并研究基于非哈希的排列方案。所有这些改进旨在增强指纹特性,同时使Datasig更快、更具弹性。
最后,我们认识到Python并非性能关键工具的最佳选择。这就是为什么我们考虑用低级语言实现我们的指纹识别算法,以显著提高计算效率——这是大规模AI系统的关键要求。
我们的目标很明确:提供当前AIBOM工具所需的缺失部分,以有效解决AI系统中的数据源漏洞。我们将Datasig视为全面AI安全方法的一部分——最终为AI系统带来我们期望传统软件所具有的相同严谨性。
如果你有兴趣贡献或对我们的方法有反馈,请查看GitHub仓库,我们的开发继续公开进行。