opacus
v1.5.2
Opacus是一个图书馆,可培训具有不同隐私的Pytorch模型。它支持客户所需的最小代码更改的培训,对培训绩效的影响很小,并且允许客户在任何给定时刻在线跟踪所花费的隐私预算。
此代码发布针对两个目标受众:
最新版本的Opacus可以通过pip安装:
pip install opacus或者,通过conda :
conda install -c conda-forge opacus您也可以直接从源中安装最新功能(以及它的怪癖和可能偶尔的错误):
git clone https://github.com/pytorch/opacus.git
cd opacus
pip install -e . 要使用差异隐私来训练您的模型,您需要做的就是实例化PrivacyEngine ,并将模型,data_loader和Optimizer传递给引擎的make_private()方法,以获取其私人对应物。
# define your components as usual
model = Net ()
optimizer = SGD ( model . parameters (), lr = 0.05 )
data_loader = torch . utils . data . DataLoader ( dataset , batch_size = 1024 )
# enter PrivacyEngine
privacy_engine = PrivacyEngine ()
model , optimizer , data_loader = privacy_engine . make_private (
module = model ,
optimizer = optimizer ,
data_loader = data_loader ,
noise_multiplier = 1.1 ,
max_grad_norm = 1.0 ,
)
# Now it's business as usualMNIST示例显示了使用Opacus的端到端运行。示例文件夹包含更多此类示例。
Opacus 1.0对图书馆进行了许多改进,但也有一些破裂的变化。如果您一直使用opacus 0.x并想更新到最新版本,请使用此迁移指南
我们已经构建了一系列基于ipython的教程,作为对具有隐私和使用各种Opacus功能的培训模型的温和介绍。
可以在此处找到介绍Obacus,介绍其设计原理,数学基础和基准的技术报告。
如果您在论文中使用Opacus,请考虑引用该报告,如下所示:
@article{opacus,
title={Opacus: {U}ser-Friendly Differential Privacy Library in {PyTorch}},
author={Ashkan Yousefpour and Igor Shilov and Alexandre Sablayrolles and Davide Testuggine and Karthik Prasad and Mani Malek and John Nguyen and Sayan Ghosh and Akash Bharadwaj and Jessica Zhao and Graham Cormode and Ilya Mironov},
journal={arXiv preprint arXiv:2109.12298},
year={2021}
}
如果您想了解有关DP-SGD和相关主题的更多信息,请查看我们的一系列博客文章和谈判:
查看FAQ页面,以获取有关一些有关差异隐私和泥泞的最常见问题的答案。
有关如何提供帮助,请参见贡献文件。还可以查看存储库中的读数文件,以了解如何组织代码。
如许可证文件中所示,该代码在Apache 2.0下发布。