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

相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
只睡四小时2 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
高洁012 天前
未来三年,AI 落地的五个确定性判断一
人工智能·深度学习·机器学习·transformer·知识图谱
奇思妙想聪明勤奋的小羊2 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1232 天前
2026年第38周GitHub趋势周报
python·科技·github