全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2020-09-01_既保护隐私又快速训练,Facebook开源Opacus库,利用差分隐私训练PyTorch模型

您的位置:首页 >> 新闻 >> 行业资讯

既保护隐私又快速训练,Facebook开源Opacus库,利用差分隐私训练PyTorch模型 机器之心报道 编辑:小舟、陈萍隐私保护是机器学习领域的重要伦理问题之一,而差分隐私(DP)是行之有效的隐私保护手段。那么,如何方便地使用差分隐私来训练机器学习模型呢?近日,Facebook 开源了 Opacus 库,支持以这种方式训练 PyTorch 模型。近日,Facebook 开源了一个新型库 Opacus,它支持使用差分隐私来训练 PyTorch 模型,扩展性优于目前的 SOTA 方法。同时,Opacus 库支持以最少代码更改来训练模型,且不会影响训练性能,并允许在线跟踪任意给定时刻的隐私预算。 Opacus 库开源地址:https://github.com/pytorch/opacus Opacus 库的目标受众主要为以下两类人群: 机器学习从业者:可以使用该库轻松了解如何利用差分隐私训练模型,该库支持以最少代码更改来训练模型; 差分隐私科学家:Opacus 库易于实验和修复,这允许他们专注于更重要的事。 差分隐私是一个具备数学严谨性的框架,可用于量化敏感数据的匿名化。Facebook 在相关博客中表示,希望 Opacus 库能为研究人员和工程师提供一条更简单的途径,以便在 ML 中使用差分隐私,并加快该领域的 DP 研究。 Opacus 库提供了什么? 通过这个开源的高速库 Opacus,你可以得到: 速度:利用 PyTorch 中的 Autograd hook,Opacus 能够批量化计算每个样本的梯度。与依赖 microbatching 的现有 DP 库相比,Opacus 实现了一个数量级的加速。 安全性:Opacus 对其安全关键代码使用密码学安全伪随机数生成器 CSPRNG,在 GPU 上对整批参数进行高速处理。 灵活性:基于 PyTorch,工程师和研究人员可以通过将 Opacus 代码与 PyTorch 代码和纯 Python 代码进行融合和匹配,快速为其 idea 构建原型。 生产效率:Opacus 库附带教程、在训练开始前提示不兼容层的辅助函数,以及自动重构机制。 交互性:Opacus 可以追踪用户在任意给定时间所花费的隐私预算(DP 的核心数学概念),从而实现早停和实时监控。 Opacus 通过引入 PrivacyEngine abstraction 定义了一个轻量级的 API,它既可以追踪隐私预算,也能够处理模型梯度。该 API 无需直接调用,只需将其连接至标准 PyTorch 优化器。该 API 在后台运行,这使得利用 Opacus 进行模型训练变得非常简单。用户只需在训练代码开头添加以下代码即可: model = Net()optimizer = torch.optim.SGD(model.parameters(), lr=0.05) privacy_engine = PrivacyEngine( model, batch_size=32, sample_size=len(train_loader.dataset), alphas=range(2,32), noise_multiplier=1.3, max_grad_norm=1.0,)privacy_engine.attach(optimizer)# That's it! Now it's business as usual 训练结束,即得到一个标准的 PyTorch 模型,并且它没有部署私有模型的额外步骤或障碍:如果今天就想部署模型,你可以在使用 DP 训练模型后进行部署,且无需更改一行代码。 Opacus 库还包括预训练和微调模型、针对大型模型的教程,以及为隐私研究实验而设计的基础架构。 如何使用 Opacus 实现高速隐私训练? Opacus 旨在保留每个训练样本的隐私,同时尽量不影响最终模型的准确率。Opacus 通过修改标准 PyTorch 优化器来实现这一点,以便在训练过程中实现(和度量)差分隐私。 具体来说,Opacus 的重点是差分隐私随机梯度下降(DP-SGD)。该算法的核心思想是:通过干预模型用来更新权重的参数梯度来保护训练集的隐私,而不是直接获取数据。通过在每次迭代中向梯度添加噪声,该库可以防止模型记住训练样本,同时还可以实现在 aggregate 中的学习。在训练过程的多个批次中,(无偏)噪声自然会被抵消。 但是,添加噪声需要一种微妙的平衡:噪声过多会破坏信号,过少则无法保证隐私。为了确定合适的规模,我们需要查看梯度范数。限制每个样本对梯度的影响非常重要,因为异常值的梯度大于大部分样本。但是异常值的隐私也需要得到保护,因为它们极有可能被模型记住。 因此,开发者计算 minibatch 中每个样本的梯度。开发者分别对每个梯度进行梯度裁剪,将其累积到一个梯度张量,然后再将噪声添加其中。 基于每个样本的计算是构建 Opacus 的最大障碍之一。PyTorch 的典型操作是利用 Autograd 计算整个批次的梯度张量,因为这对其他机器学习用例都有意义,并且可以优化性能。与之相比,基于每个样本的计算显然更具挑战性。 为了克服这一困难,开发者利用 Ian Goodfellow 2015 年提出的高效技术(参见论文《EFFICIENT PER-EXAMPLE GRADIENT COMPUTATIONS》),获取训练标准神经网络所需的全部梯度向量。 至于模型参数,则单独返回给定批次中每个样本的损失梯度,整个过程如下所示: Opacus 工作流程图,其中计算了每个样本的梯度。 通过在运行各层时追踪一些中间量,Opacus 库支持使用适合内存的任何批量大小进行训练。这使得该方法比其他替代性 micro-batch 方法快了一个数量级。 此外,Opacus 库的安装和使用过程也比较简单,详情参见 GitHub 项目。 原文链接:https://ai.facebook.com/blog/introducing-opacus-a-high-speed-library-for-training-pytorch-models-with-differential-privacy 机器之心联合旷视科技开设线上公开课:零基础入门旷视天元MegEngine,通过6次课程帮助开发者入门深度学习开发。9月1日,旷视科技移动业务团队研究员王鹏将带来第6课《部署进阶:推理端优化》,将介绍 MegEngine 框架中模型量化方案、量化相关模块和使用方法,并实例讲解使用MegEngine进行模型量化的流程。欢迎大家入群学习。 ?THE END 转载请联系本公众号获得授权 投稿或寻求报道:content@jiqizhixin.com

上一篇:2024-11-25_【招聘】Amber China 琥珀传播、好旺角 GMKOK、中好,热招中~ 下一篇:2024-07-07_阿里达摩院最新成果:AI视频创作,一条龙服务!

TAG标签:

17
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价