Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
ychao_1983 6fdcfe8502 | 4 months ago | |
---|---|---|
cdata | 2 years ago | |
data | 2 years ago | |
images | 5 months ago | |
mindspore | 5 months ago | |
pytorch | 2 years ago | |
result | 2 years ago | |
README.md | 5 months ago |
启智的模型安全评测集成了“启智重明”(AISafety)项目的模型安全评测功能,识别算法模型中的缺陷,支持基于国产NPU算力资源测试和增强国产NPU模型安全。
启智重明项目是由北京航空航天大学刘祥龙教授团队开发,已进入启智的开源孵化管道,是一个用于对抗攻击全流程评测算法学习研究的 Python库,其主要研究内容为集成对抗攻击和噪声攻击相关的攻击算法、评测算法、加固防御算法。可灵活测试数据集质量、算法训练、评估和部署等算法全生命周期各项指标。
更多关于启智重明项目的信息,可以访问项目仓库地址(https://git.openi.org.cn/OpenI/AISafety)
本项目为模型安全评测示例项目,目前模型安全评测,仅支持计算机视觉分类模型进行安全评测,相关使用说明介绍如下。
使用步骤:
(1) 编写训练脚本,如:mindspore/cifar_resnet50.py
(2) 使用训练脚本进行训练任务,得到模型,创建训练任务选择参数如图所示:
(3) 训练完成之后,在“模型”--》“导入新模型”功能中选择训练任务进行模型导入,如图所示:
(4) 编写模型安全测试启动文件,参见:mindspore/cifar_npy_inference.py
这个脚本基于mindspore框架的推理脚本,读取系统给定的两个数据集及训练好的模型,进行两次推理,然后将结果保存并上传到OBS结果目录。
在mindspore框架下要使用模型安全评测,请参照此脚本进行修改,将此脚本中 个人修改开始 及 个人修改结束 的几行代码(有两处)替换成自己的即可。
(5) 在评测任务中,选择模型安全评测,进行安全评测,如下图所示:
参数1,选择模型:选择第3步中创建的模型。
参数2,启动文件:选择第4步编写的脚本。
参数3:选择源数据集及对抗数据集,目前只能选cifar及imagenet两种。
参数4:选择评测指标,指标说明,可以参见指标选项后面的?号提示。
(1) 编写训练脚本,如:pytorch/safety_train.py
(2) 使用训练脚本进行训练任务,得到模型,创建训练任务选择参数如图所示(这里使用的镜像地址为:dockerhub.pcl.ac.cn:5000/user-images/openi:ubuntu16.04-python3.6-pytorch1.6-tensorboard2.0.2-cuda10.1):
(3) 训练完成之后,在“模型”--》“导入新模型”功能中选择训练任务进行模型导入,如图所示:
(4) 编写模型安全测试启动文件,参见:pytorch/safety_test.py
基于pytorch框架的推理脚本,读取系统给定的两个数据集及训练好的模型,进行两次推理,然后将结果保存并上传到结果目录。
在pytorch框架下要使用模型安全评测,请参照此脚本进行修改,将此脚本中 个人修改开始 及 个人修改结束 的几行代码替换成自己的即可。
(5) 在评测任务中,选择模型安全评测,进行安全评测,如下图所示:
参数1,选择模型:选择第3步中创建的模型。
参数2,选择镜像:选择与训练任务相同的镜像,这里为:dockerhub.pcl.ac.cn:5000/user-images/openi:ubuntu16.04-python3.6-pytorch1.6-tensorboard2.0.2-cuda10.1
参数3,启动文件:选择第4步编写的脚本。
参数4,数据集:选择源数据集及对抗数据集,目前只能选cifar及imagenet两种。
参数5:选择评测指标,指标说明,可以参见指标选项后面的?号提示。
模型安全性评测的原理为使用训练好的模型进行两次推理,第一次推理使用正常的测试数据集,如cifar-1000或者imangenet,得到推理结果,第二次推理则使用第一次使用的数据集通过对抗算法(如fgsm)重新生成的对抗数据集,第二次推理结果与第一次推理结果保存到同一个Json文件,然后评测算法通过这个Json对模型安全性进行评测。
推理样例代码inference.py 摘抄:
结果Json文件:
BDResult节点为正常测试数据集推理的结果。
CDResult节点为对抗数据集推理的结果,它有两个子节点,代表了使用两种对抗算法fgsm及pgd生成了两份对抗数据集,然后使用这两份对抗数据集进行了推理。
BDResult节点下的结果顺序与CDResult节点下子节点的结果顺序要一一对应,都对应同一张原图。数据集及对抗数据集文件组织示例图:
data对应了原始数据集,其下有1.jpg、2.jpg两个待测试文件,推理生成的结果对应了BDResult节点下数据,1.jpg为节点下第一个数据,2.jpg为节点下第二个数据。
cddata下有两个子目录,fgsm目录,代表了使用fgsm对抗算法对data下1.jpg、2.jpg重新生成了1.jpg\2.jpg,pgd目录,代表了使用pgd对抗算法对data下1.jpg、2.jpg重新生成了1.jpg\2.jpg。
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》