CrypTen项目实践
CrypTen是一个用于安全多方计算(MPC)的python库,基于PyTorch构建。
CrypTen
facebookresearch/CrypTen: A framework for Privacy Preserving Machine Learning
目录
一、实践准备
一、系统与软件要求
·操作系统:Crypten 支持多种主流操作系统,包括 Linux、macOS以及 Windows(需安装 Windows Subsystem for Linux,WSL,推荐 Ubuntu 环境)。
·Python 版本:要求 Python 3.8 及以上版本。
二、安装依赖库
·PyTorch:Crypten 基于 PyTorch 构建,首先需安装合适版本的 PyTorch。
·加密库:Crypten 依赖一些加密相关的库,如 crypten-ckks(用于同态加密)、crypten-mpc(用于多方计算相关加密操作)等。
三、安装 Crypten
在确保依赖库安装正确后,通过 pip 安装 Crypten 主库。
二、实践操作
本实践过程在VSCode+WSL:Ubuntu环境下进行,python版本在3.8及以上,基于pytorch、requirements.txt等相关依赖库(项)。
实践步骤:
1.下载WSL
WSL(Windows Subsystem for Linux)是一种在Windows操作系统上运行Linux环境的兼容层。
它允许用户在Windows系统上运行Linux二进制可执行文件,而无需使用传统的虚拟机或双系统设置。
安装配置:
在控制面版的程序模块,找到“启用或关闭Windows功能”,选择“适用于Linux的Windows子系统”选项。
等待电脑重启后,在Microsoft store商店中搜索Ubuntu。
选择合适的版本下载安装,下载完成后输入账号密码即可使用。
2.下载代码
将CrypTen仓库的代码下载解压,解压后的文件夹移动到Linux子系统的用户目录中,
3.创建虚拟环境,配置依赖项
打开VS Code,启动WSL,在终端上激活虚拟环境
创建虚拟环境:
python3 -m venv myenv
激活虚拟环境:
source myenv/bin/activate #myenv为创建的虚拟环境名称
CrypTen 项目的配置文件主要是 requirements.txt 和 setup.py。以下是这些文件的介绍:
requirements.txt: 这个文件列出了项目运行所需的所有依赖项。可以通过运行 pip install -r requirements.txt 来安装这些依赖项。
setup.py: 这个文件不仅用于安装项目,还定义了项目的元数据和依赖项。通过运行 python setup.py install 可以安装项目及其依赖项。
4.运行示例
通过定位到相应的example,运行相应的模型。
下面是对给出例子的简要概述与解释:
We provide examples covering a range of models in the `examples` directory
1. The linear SVM example, `mpc_linear_svm`, generates random data and trains a
SVM classifier on encrypted data.
2. The LeNet example, `mpc_cifar`, trains an adaptation of LeNet on CIFAR in
cleartext and encrypts the model and data for inference.
3. The TFE benchmark example, `tfe_benchmarks`, trains three different network
architectures on MNIST in cleartext, and encrypts the trained model and data
for inference.
4. The bandits example, `bandits`, trains a contextual bandits model on
encrypted data (MNIST).
5. The imagenet example, `mpc_imagenet`, performs inference on pretrained
models from `torchvision`.
·mpc_linear_svm
该任务比较了pytorch和crypten在训练线性支持向量机(SVM)模型上的性能与准确性。其中使用pytorch在明文环境下训练SVM,使用crypten在MPC环境下训练模型。代码运行结果记录了使用PyTorch和CrypTen进行训练的一些信息,比较pytorch与crypten二者的差别。
·tfe_benchmarks
“tfe_benchmarks” 通常指的是基于 TensorFlow Encrypted(TFE)框架的基准测试。TFE 是在 TensorFlow 上构建的隐私计算框架,支持安全多方计算等隐私计算技术。这段代码是一个使用Crypten框架进行加密机器学习的Python脚本,主要目的是在MNIST数据集上训练和评估不同的神经网络模型。
·mpc_cifar
“mpc_cifar” 代表一个专门用于 CIFAR 数据集分类任务并且具有多方安全计算属性的模型。这个任务是一个基于多方计算(Multi-Party Computation,MPC)的CIFAR图像分类项目。多方计算是一种密码学技术,允许多个参与方在不泄露各自数据的情况下共同计算某个函数的结果。在机器学习领域,MPC可以用于在保护数据隐私的前提下进行模型训练和推理。
·mpc_autograd_cnn
“mpc_autograd_cnn” 是一个与深度学习相关的概念组合。它代表基于crypten多方安全计算,利用自动求导机制训练的卷积神经网络。
通过对CrypTen的进一步实践,理解示例的内容含义,分析实验结果,对理解CrypTen有着很大的帮助。同时,也更加体会到作为隐私计算深度学习新范式,CrypTen有着更加光明的前景!
上述借鉴来源于:
Kimi 是一个有着超大“内存”的智能助手,可以一口气读完二十万字的小说,还会上网冲浪,快来跟他聊聊吧
原文地址:https://blog.csdn.net/2302_79401326/article/details/145306711
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!