CrypTen项目实践

CrypTen是一个用于安全多方计算(MPC)的python库,基于PyTorch构建。

CrypTen

facebookresearch/CrypTen: A framework for Privacy Preserving Machine Learning

目录

一、实践准备

二、实践操作

1.下载WSL

2.下载代码

3.创建虚拟环境,配置依赖项

4.运行示例


一、实践准备

一、系统与软件要求

·操作系统: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.

  1. The LeNet example, `mpc_cifar`, trains an adaptation of LeNet on CIFAR in

cleartext and encrypts the model and data for inference.

  1. The TFE benchmark example, `tfe_benchmarks`, trains three different network

architectures on MNIST in cleartext, and encrypts the trained model and data

for inference.

  1. The bandits example, `bandits`, trains a contextual bandits model on

encrypted data (MNIST).

  1. 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有着更加光明的前景!

上述借鉴来源于:

CrypTen 项目使用教程-CSDN博客

Kimi 是一个有着超大"内存"的智能助手,可以一口气读完二十万字的小说,还会上网冲浪,快来跟他聊聊吧

相关推荐
代码山河6 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行6 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
梯度下降者7 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
小奶包他干奶奶8 小时前
AI学习——1、机器学习概念
人工智能·机器学习
“AI国潮设计-小江”8 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
benchmark_cc9 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
伞伞悦读10 小时前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验
python
外收内放10 小时前
Python基础语法练习题(73)
java·前端·python
锋行天下10 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python
时早玖沐11 小时前
给 AstrBot 写一个天气推送插件:12 次提交、6 个坑
python·开源·ai编程