首页 > 其他分享 >支持数据撤销的模型成员推理攻击工具箱

支持数据撤销的模型成员推理攻击工具箱

时间:2024-12-17 12:09:39浏览次数:9  
标签:-- 推理 模型 py 撤销 python mode 工具箱 type

支持数据撤销的模型成员推理攻击工具箱

本项目是一个支持数据撤销的成员推理攻击工具,支持mnist、cifar10、cifar100、cinic10等多种数据集,可实现针对LeNet、RNN、ResNet、RL等多种模型的成员推理攻击,并给用户一个详细的使用文档。

环境

  • Python 3.9

  • PyTorch>=1.10.0

项目地址

项目结构

项目的目录分为两个部分:学习笔记README文档,以及支持数据撤销的模型成员推理攻击工具箱的代码。

 ├── code   # 相关代码目录
 │  ├── code.py    # 主代码
 │  ├── dataset.py    # 数据集处理代码
 │  └── architectures.py    # 网络模型代码
 │  └── utils.py    # 模型评估代码
 │  └── MIA.py    # 成员推理攻击代码
 │  └── normal.py    # 模型训练代码
 └── README.md 

用法

第一步:安装并导入该库

在mia-1.0-py3-none-any.whl文件路径下,运行以下命令,就可以将whl文件库安装到Python环境中了,从而可以通过import将该库导入。

pip install mia-1.0-py3-none-any.whl

第二步:训练目标模型和影子模型

在你的代码中通过import mia就可以导入该库,或通过from mia import core,utils导入必要的模块,并需要传入必要的参数,可以在程序中定义默认值也可以通过命令行传入,接着就可以调用core中的函数来进行成员推理攻击。

其中,detected和ration参数分别代表是否启动数据撤销功能以及撤销数据的比例,默认不进行数据撤销。下面展示命令行传入的过程:

  • 训练目标模型
python test.py --mode target
  • 训练影子模型
python test.py --mode shadow

影子模型经过训练以模拟目标模型的行为。

第二步(可选):Distill目标模型和影子模型

  • Distill目标模型
python test.py --mode distill_target
  • Distill影子模型
python test.py --mode distill_shadow

第三步:为攻击模型准备数据集

  • 获取攻击模型训练数据
python test.py --action 1 --mode shadow --mia_type build-dataset
  • 获取影子模型训练数据
python test.py --action 1 --mode target --mia_type build-dataset

第四步:训练和测试攻击模型

python main.py --action 1 --mia_type black-box

训练的模型和生成的数据将保存到 './networks/{seed}/{mode}/{data}_{model}'。

实例

本项目默认使用CIFAR100数据集,针对ResNet56模型且epoch为100,您可以根据需要更改参数。

下面是一个使用该库的示例代码(demo.py):

import argparse
from mia import core,utils

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='MIA_toolbox')
    parser.add_argument('--action', type=int, default=0, help=[0, 1, 2])
    parser.add_argument('--seed', type=int, default=0)
    parser.add_argument('--mode', type=str, default='target',
                        help=['target', 'shadow', 'distill_target', 'distill_shadow'])
    parser.add_argument('--model', type=str, default='resnet',
                        help=['resnet', 'mobilenet', 'vgg', 'wideresnet', 'lenet', 'rnn', 'rl'])
    parser.add_argument('--data', type=str, default='cifar100',
                        help=['cinic10', 'cifar10', 'cifar100', 'gtsrb', 'mnist'])
    parser.add_argument('--epochs', type=int, default=100)
    parser.add_argument('--model_distill', type=str, default='resnet',
                        help=['resnet', 'mobilenet', 'vgg', 'wideresnet', 'lenet', 'rnn', 'rl'])
    parser.add_argument('--epochs_distill', type=int, default=100)
    parser.add_argument('--mia_type', type=str, help=['build-dataset', 'black-box'])
    parser.add_argument('--port_num', type=int, default=3)
    parser.add_argument('--is_detected', type=int, default=0)
    parser.add_argument('--ratio', type=float, default=0.05)

    args = parser.parse_args()
    if args.action == 0:
        core.train_networks(args)

    elif args.action == 1:
        core.membership_inference_attack(args)


if __name__ == "__main__":
    main()

上述代码中的参数可以根据需求删除修改,没有添加的参数使用默认参数,在demo.py目录下,在命令行中依次输入以下命令:

python demo.py --mode target --detected 1 --ratio 0.05
python demo.py --mode shadow
python demo.py --mode distill_target
python demo.py --mode distill_shadow
python demo.py --action 1 --mode shadow --mia_type build-dataset
python demo.py --action 1 --mode target --mia_type build-dataset
python demo.py --action 1 --mia_type black-box

数据集默认下载在c01yili目录下,没有的数据集会自动下载;

训练的模型和生成的数据将保存到'./networks/{seed}/{mode}/{cifar100}_{resnet56}';

训练和攻击的结果将默认保存到'./outputs/train_models.out,并保存训练好的模型cifar100_resnet_resnet_trajectory_auc.npy

引文

有关技术细节和完整的实验结果,请参阅以下论文。

@inproceedings{LZBZ22,
author = {Yiyong Liu and Zhengyu Zhao and Michael Backes and Yang Zhang},
title = {{Membership Inference Attacks by Exploiting Loss Trajectory}},
booktitle = {{ACM SIGSAC Conference on Computer and Communications Security (CCS)}},
pages = {2085-2098},
publisher = {ACM},
year = {2022}
}

联系

如果您对代码有任何疑问,请随机联系2319128705@qq.com

标签:--,推理,模型,py,撤销,python,mode,工具箱,type
From: https://www.cnblogs.com/hepucuncao/p/18612046

相关文章

  • 【阿来来gis规划师工具箱说明书】b14获取指定要素字段值及其占比
    背景一个林业的需求,制作后,发现其实还可以有别的用途。比如统计村庄建设用地范围内的用地情况。这个功能很类似空间联接,不同的在于这个可以统计相应的面积值。后续经过拓展,增加了只保留大面积值,以及椭球面积等的选项。制作思路指定2个图层的2个字段,先标注各个图层斑的唯一......
  • 基于卷积神经网络的图像二分类检测模型训练与推理实现教程 | 幽络源
    前言对于本教程,说白了,就是期望能通过一个程序判断一张图片是否为某个物体,或者说判断一张图片是否为某个缺陷。因为本教程是针对二分类问题,因此主要处理是与不是的问题,比如我的模型是判断一张图片是否为苹果,那么拿一张图片给模型去推理,他会得出这张图是苹果的概率,如果概率......
  • 国信证券持续撤销营业部:业绩承压显著,近52亿元收购万和证券
    《港湾商业观察》施子夫 王璐作为老牌知名券商,国信证券(002736.SZ)近期密集宣布裁撤营业机构引发外界关注。据官网显示,12月9日,国信发布了8条撤销营业部的公告。​持续撤销营业部8家营业部包括了渭南金水路证券营业部、汕尾汕尾大道证券营业部、河源永丰路证券营业部、湛......
  • 微软 Phi-4:小型模型的推理能力大突破
    在人工智能领域,语言模型的发展日新月异。微软作为行业的重要参与者,一直致力于推动语言模型技术的进步。近日,微软推出了最新的小型语言模型Phi-4,这款模型以其卓越的复杂推理能力和在数学领域的出色表现,引起了广泛关注。Phi-4的出现不仅挑战了“模型越大越好”的传统观念,还为......
  • Xinference环境搭建&推理测试
    引子写了很多篇开源大模型的环境部署与推理搭建,截止到目前,开源大模型已经发展较为完善。个人觉得,产品和项目维度来看更多的是如果去落地实现,也就是大模型的最后一公里的应用开发。最近看到Xinference一个开源很火的推理框架。OK,那就让我们开始吧。一、框架介绍Xinference:一款性......
  • MEDIQ:面向可靠临床推理的主动问诊型大模型,基于信息缺失场景下的动态交互式医疗诊断研
    MEDIQ:面向可靠临床推理的主动问诊型大模型,基于信息缺失场景下的动态交互式医疗诊断研究,提升诊断准确率22.3%论文大纲理解1.最终目标2.层层分解的关键问题3.解决方案及效果4.思路特点结构分析1.层级结构分析叠加形态(能力层层递进)构成形态(部件组合带来新能力)......
  • 基于图神经网络的大语言模型检索增强生成框架研究:面向知识图谱推理的优化与扩展
    在大型语言模型(LLMs)相关的人工智能突破中,图神经网络(GNNs)与LLMs的融合已成为一个极具前景的研究方向。这两类模型的结合展现出显著的互补性,能够协同增强LLMs的推理能力和上下文理解能力。通过从知识图谱(KGs)存储的海量信息中进行智能化检索,该结合能够生成准确且不含幻觉的答案......
  • 我的AI工具箱Tauri版-VideoRepeatFunAsr短剧解说
    本教程基于自研的AI工具箱Tauri版进行VideoRepeatFunAsr短剧解说。随着短剧创作需求的不断提升,视频解说的原创性与内容品质变得尤为重要。基于自研的AI工具箱Tauri版,VideoRepeatFunAsr短剧解说工具为用户提供了解说视频优化和重构的便捷解决方案。它通过智能技术对解说部分......
  • 我的AI工具箱Tauri版-VideoRepeatStory短剧剧情推理
    本教程基于自研的AI工具箱Tauri版进行VideoRepeatStory短剧剧情推理。VideoRepeatStory短剧剧情推理是基于自研AI工具箱Tauri版开发的强大功能模块,专注于短剧视频的剧情解析与智能解说。该功能通过高效的算法和灵活的操作模式,将原有视频的剧情拆解与创新组合完美融合,......
  • 阿里:LLM数学推理错误识别基准
    ......