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

相关推荐
HealthScience18 分钟前
【异常错误】pycharm debug view变量的时候显示不全,中间会以...显示
ide·python·pycharm
豌豆花下猫1 小时前
Python 潮流周刊#90:uv 一周岁了,优缺点分析(摘要)
后端·python·ai
橘猫云计算机设计2 小时前
基于SSM的《计算机网络》题库管理系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·spring boot·后端·python·计算机网络·毕设
小伍_Five2 小时前
从0开始:OpenCV入门教程【图像处理基础】
图像处理·python·opencv
m0_748245342 小时前
python——Django 框架
开发语言·python·django
java1234_小锋2 小时前
一周学会Flask3 Python Web开发-客户端状态信息Cookie以及加密
前端·python·flask·flask3
IT古董3 小时前
【漫话机器学习系列】100.L2 范数(L2 Norm,欧几里得范数)
人工智能·机器学习
B站计算机毕业设计超人3 小时前
计算机毕业设计Python+DeepSeek-R1高考推荐系统 高考分数线预测 大数据毕设(源码+LW文档+PPT+讲解)
大数据·python·机器学习·网络爬虫·课程设计·数据可视化·推荐算法
夏莉莉iy4 小时前
[MDM 2024]Spatial-Temporal Large Language Model for Traffic Prediction
人工智能·笔记·深度学习·机器学习·语言模型·自然语言处理·transformer
winfredzhang4 小时前
Python实战:Excel中文转拼音工具开发教程
python·安全·excel·汉字·pinyin·缩写