Opacus ist eine Bibliothek, die es ermöglicht, Pytorch -Modelle mit unterschiedlicher Privatsphäre zu schulen. Es unterstützt Schulungen mit minimalen Codeänderungen, die auf den Kunden erforderlich sind, hat wenig Auswirkungen auf die Schulungsleistung und ermöglicht es dem Kunden, das zu einem bestimmten Zeitpunkt aufgewendete Datenschutzbudget zu verfolgen.
Diese Code -Veröffentlichung richtet sich an zwei Zielgruppen:
Die neueste Version von Opacus kann über pip installiert werden:
pip install opacus Oder alternativ über conda :
conda install -c conda-forge opacusSie können auch direkt aus der Quelle für die neuesten Funktionen installieren (zusammen mit den Macken und potenziell gelegentlichen Fehler):
git clone https://github.com/pytorch/opacus.git
cd opacus
pip install -e . Um Ihr Modell mit unterschiedlicher Privatsphäre zu schulen, müssen Sie lediglich eine PrivacyEngine instanziieren und Ihr Modell, Data_loader und Optimierer an die make_private() -Methode des Engine übergeben, um ihre privaten Gegenstücke zu erhalten.
# 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 usualDas MNIST-Beispiel zeigt einen End-to-End-Lauf mit Opacus. Der Beispiel -Ordner enthält weitere solche Beispiele.
Opacus 1.0 führte viele Verbesserungen in der Bibliothek ein, aber auch einige Bruchänderungen. Wenn Sie Opacus 0.x verwendet haben und die neueste Version aktualisieren möchten, verwenden Sie diese Migrationshandbuch
Wir haben eine Reihe von Ipython-basierten Tutorials als sanfte Einführung in Schulungsmodelle mit Privatsphäre und die Verwendung verschiedener Opacus-Funktionen erstellt.
Der technische Bericht in Opacus, der seine Designprinzipien, mathematischen Grundlagen und Benchmarks vorstellt, finden Sie hier.
Erwägen Sie, den Bericht zu zitieren, wenn Sie Opacus in Ihren Papieren verwenden, wie folgt:
@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}
}
Wenn Sie mehr über DP-SGD und verwandte Themen erfahren möchten, lesen Sie unsere Reihe von Blogposts und Gesprächen:
In der FAQ -Seite finden Sie Antworten auf einige der am häufigsten gestellten Fragen zu unterschiedlichen Privatsphäre und Opakus.
Sehen Sie sich die beitragende Datei an, um zu helfen. Schauen Sie sich auch die Readme -Dateien im Repo an, um zu erfahren, wie der Code organisiert ist.
Dieser Code wird unter Apache 2.0 veröffentlicht, wie in der Lizenzdatei gefunden.