Opacus adalah perpustakaan yang memungkinkan pelatihan model Pytorch dengan privasi diferensial. Ini mendukung pelatihan dengan perubahan kode minimal yang diperlukan pada klien, memiliki sedikit dampak pada kinerja pelatihan, dan memungkinkan klien untuk melacak secara online anggaran privasi yang dikeluarkan pada saat tertentu.
Rilis kode ini ditujukan untuk dua audiens target:
Rilis terbaru Opacus dapat diinstal melalui pip :
pip install opacus Atau, sebagai alternatif, melalui conda :
conda install -c conda-forge opacusAnda juga dapat menginstal langsung dari sumber untuk fitur terbaru (bersama dengan keanehan dan bug yang berpotensi sesekali):
git clone https://github.com/pytorch/opacus.git
cd opacus
pip install -e . Untuk melatih model Anda dengan privasi diferensial, yang perlu Anda lakukan adalah instantiate PrivacyEngine dan lulus model Anda, data_loader, dan pengoptimal ke metode make_private() mesin untuk mendapatkan rekan pribadi mereka.
# 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 usualContoh MNIST menunjukkan menjalankan end-to-end menggunakan Opacus. Folder contoh berisi lebih banyak contoh seperti itu.
OPACUS 1.0 memperkenalkan banyak peningkatan ke perpustakaan, tetapi juga beberapa perubahan yang melanggar. Jika Anda telah menggunakan Opacus 0.x dan ingin memperbarui ke rilis terbaru, silakan gunakan panduan migrasi ini
Kami telah membangun serangkaian tutorial berbasis Ipython sebagai pengantar yang lembut untuk model pelatihan dengan privasi dan menggunakan berbagai fitur Opacus.
Laporan teknis yang memperkenalkan Opacus, menyajikan prinsip -prinsip desainnya, yayasan matematika, dan tolok ukur dapat ditemukan di sini.
Pertimbangkan mengutip laporan jika Anda menggunakan Opacus di koran Anda, sebagai berikut:
@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}
}
Jika Anda ingin mempelajari lebih lanjut tentang DP-SGD dan topik terkait, lihat serangkaian posting blog dan pembicaraan kami:
Lihat halaman FAQ untuk jawaban atas beberapa pertanyaan yang paling sering diajukan tentang privasi diferensial dan Opacus.
Lihat file yang berkontribusi untuk cara membantu. Lihat juga file readme di dalam repo untuk mempelajari bagaimana kode diatur.
Kode ini dirilis di bawah Apache 2.0, seperti yang ditemukan dalam file lisensi.