0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个基于PyTorch的隐私保护机器学习框架

倩倩 来源:星集 2020-04-15 17:49 次阅读

CrypTen

CrypTen是一个基于PyTorch的隐私保护机器学习框架。其目标是使机器学习从业人员可以访问安全的计算技术。它目前将Secure Multiparty Computation 作为其安全计算后端来实现,并为ML研究人员提供了三个主要好处:

首先是机器学习。该框架通过CrypTensor 外观与感觉完全像PyTorch 的对象来呈现协议Tensor。这使用户可以使用类似于PyTorch中的自动区分和神经网络模块。CrypTen基于库。就像PyTorch一样,它实现了张量库。这使从业人员更容易调试,试验和探索ML模型。该框架的构建考虑了现实世界中的挑战。CrypTen不会缩减规模或简化安全协议的实现。这是一些CrypTen代码,用于加密和解密张量并添加它们

import torchimport cryptencrypten.init()x = torch.tensor([1.0, 2.0. 3.0])x_enc = crypten.cryptensor(x) # encryptx_dec = x_enc.get_plain_text() # decrypty_enc = crypten.cryptensor([2.0, 3.0, 4.0])sum_xy = x_enc + y_enc # add encrypted tensorssum_xy_dec = sum_xy.get_plain_text() # decrypt sum它目前尚未量产,其主要用途是作为研究框架。

安装CrypTen

CrypTen当前在Linux和Mac上运行。它还需要每晚进行一次PyTorch构建。不支持Windows。我们目前还不支持在GPU上进行计算。

安装Anaconda 2019.07或更高版本,然后执行以下操作:

对于Linux或Mac

conda create -n crypten-env python=3.7conda activate crypten-envconda install pytorch torchvision -c pytorchgit clone github.com/facebookresearch/CrypTen.gitcd CrypTenpip install -e .如果要在examples目录中运行示例,还应该执行以下操作

pip install -r requirements.examples.txt例子

我们在examples目录中提供了涵盖各种模型的示例

线性SVM示例mpc_linear_svm生成随机数据,并在加密数据上训练SVM分类器。LeNet示例mpc_cifar以明文形式在CIFAR上训练LeNet的改编,并加密模型和数据以进行推理。TFE基准示例,tfe_benchmarks以明文形式在MNIST上训练了三种不同的网络体系结构,并对经过训练的模型和数据进行加密以进行推理。土匪示例,bandits在加密数据(MNIST)上训练了上下文土匪模型。imagenet示例mpc_imagenet对的预训练模型进行推断torchvision。对于以明文形式训练的示例,我们还在model每个示例子目录的子目录中以明文形式提供了预先训练的模型。

您可以通过执行以下操作检查所有示例特定的命令行选项;此处显示的是tfe_benchmarks:

$ python3 examples/tfe_benchmarks/launcher.py --helpCrypTen如何工作

tutorials目录中有一组教程,展示了CrypTen的工作方式。这些作为Jupyter笔记本电脑出现,因此请在conda环境中安装以下内容

conda install ipython jupyterpip install -r requirements.examples.txtIntroduction.ipynb-安全多方计算简介;CrypTen的基础安全计算协议;我们尝试解决的用例以及我们假设的威胁模型。Tutorial_1_Basics_of_CrypTen_Tensors.ipynb-引入了CrypTensorCrypTen的加密张量对象,并展示了如何使用它对该对象执行各种操作。Tutorial_2_Inside_CrypTensors.ipynb–深入研究CrypTensor以显示内部工作原理;具体来说,如何CrypTensor将MPCTensor其后端以及两种不同类型的共享(算术和二进制)用于两种不同类型的函数。它还显示了CrypTen的MPI启发式 编程模型。Tutorial_3_Introduction_to_Access_Control.ipynb -显示如何使用CrypTen训练线性模型,并在适用的情况下显示数据标记,特征聚合,数据集扩充和模型隐藏的各种场景。Tutorial_4_Classification_with_Encrypted_Neural_Networks.ipynb –显示CrypTen如何加载预先训练的PyTorch模型,对其进行加密,然后对加密数据进行推断。Tutorial_5_Under_the_hood_of_Encrypted_Networks.ipynb -检查CrypTen如何加载PyTorch模型,如何对其进行加密以及数据如何通过多层网络传输。Tutorial_6_CrypTen_on_AWS_instances.ipynb-显示了如何scrips/aws_launcher.py 在AWS上启动我们的示例。它也可以与您用CrypTen编写的代码一起使用。Tutorial_7_Training_an_Encrypted_Neural_Network.ipynb-引入AutogradCrypTensor了一个包装器,该包装器将自动区分功能添加到CrypTensor。这使您可以在CrypTen中训练神经网络。我们希望CrypTensor在将来的版本中将此功能移至对象中。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4704

    浏览量

    128767
  • 线性
    +关注

    关注

    0

    文章

    196

    浏览量

    25129
  • pytorch
    +关注

    关注

    2

    文章

    803

    浏览量

    13157
收藏 人收藏

    评论

    相关推荐

    如何使用 PyTorch 进行强化学习

    强化学习(Reinforcement Learning, RL)是机器学习方法,它通过与环境的交互来学习如何做出决策,以最大化累积奖励。
    的头像 发表于 11-05 17:34 242次阅读

    Pytorch深度学习训练的方法

    掌握这 17 种方法,用最省力的方式,加速你的 Pytorch 深度学习训练。
    的头像 发表于 10-28 14:05 155次阅读
    <b class='flag-5'>Pytorch</b>深度<b class='flag-5'>学习</b>训练的方法

    RISC-V如何支持不同的AI和机器学习框架和库?

    RISC-V如何支持不同的AI和机器学习框架和库?还请坛友们多多指教下。
    发表于 10-10 22:24

    pytorch环境搭建详细步骤

    PyTorch作为广泛使用的深度学习框架,其环境搭建对于从事机器
    的头像 发表于 08-01 15:38 734次阅读

    pytorch和python的关系是什么

    PyTorch已经成为了非常受欢迎的框架。本文将介绍PyTorch和Python之间的关系,以及它们在深度
    的头像 发表于 08-01 15:27 1752次阅读

    PyTorch深度学习开发环境搭建指南

    PyTorch作为种流行的深度学习框架,其开发环境的搭建对于深度学习研究者和开发者来说至关重要。在Windows操作系统上搭建
    的头像 发表于 07-16 18:29 896次阅读

    平衡创新与伦理:AI时代的隐私保护和算法公平

    成了把双刃剑,其锐利的面正逐渐指向我们的核心价值。面对这些挑战,制定套有效的AI治理框架隐私保护
    发表于 07-16 15:07

    pytorch中有神经网络模型吗

    当然,PyTorch广泛使用的深度学习框架,它提供了许多预训练的神经网络模型。 PyTorch
    的头像 发表于 07-11 09:59 658次阅读

    PyTorch的介绍与使用案例

    PyTorch基于Python的开源机器学习库,它主要面向深度学习和科学计算领域。
    的头像 发表于 07-10 14:19 364次阅读

    tensorflow和pytorch哪个更简单?

    PyTorch更简单。选择TensorFlow还是PyTorch取决于您的具体需求和偏好。如果您需要易于使用、灵活且具有强大社区支持的框架
    的头像 发表于 07-05 09:45 809次阅读

    tensorflow和pytorch哪个好

    tensorflow和pytorch都是非常不错的强大的框架,TensorFlow还是PyTorch哪个更好取决于您的具体需求,以下是关于这两框架
    的头像 发表于 07-05 09:42 645次阅读

    PyTorch的特性和使用方法

    PyTorch开源的Python机器学习库,由Meta Platforms(前身为Facebook)的人工智能研究团队开发,并于201
    的头像 发表于 07-02 14:27 496次阅读

    如何使用PyTorch建立网络模型

    PyTorch基于Python的开源机器学习库,因其易用性、灵活性和强大的动态图特性,在深度学习
    的头像 发表于 07-02 14:08 374次阅读

    TensorFlow与PyTorch深度学习框架的比较与选择

    深度学习作为人工智能领域的重要分支,在过去十年中取得了显著的进展。在构建和训练深度学习模型的过程中,深度学习
    的头像 发表于 07-02 14:04 915次阅读

    使用PyTorch构建神经网络

    PyTorch流行的深度学习框架,它以其简洁的API和强大的灵活性在学术界和工业界得到了广泛应用。在本文中,我们将深入探讨如何使用
    的头像 发表于 07-02 11:31 670次阅读