Opacusは、プライバシーが異なるPytorchモデルのトレーニングを可能にするライブラリです。クライアントに必要なコード変更を最小限に抑えたトレーニングをサポートし、トレーニングパフォーマンスにほとんど影響を与え、クライアントがいつでも消費されるプライバシー予算をオンラインで追跡できるようにします。
このコードリリースは、2人のターゲットオーディエンスを対象としています。
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、およびオプティマイザーをエンジンの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を使用していて、最新リリースに更新したい場合は、この移行ガイドを使用してください
プライバシーとさまざまなOpacus機能を使用したトレーニングモデルの穏やかな紹介として、一連のIPythonベースのチュートリアルを作成しました。
Opacusを導入し、その設計原則、数学的基盤、ベンチマークを提示する技術レポートは、こちらにあります。
次のように、あなたの論文で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ページで、プライバシーの差とオパカスに関する最もよくある質問のいくつかへの回答をご覧ください。
支援方法については、寄稿ファイルを参照してください。また、リポジトリ内のreadmeファイルをチェックして、コードの編成方法を学習してください。
このコードは、ライセンスファイルにあるように、Apache 2.0でリリースされます。