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下發布。