Opacus es una biblioteca que permite capacitar modelos de Pytorch con privacidad diferencial. Admite la capacitación con cambios mínimos de código requeridos en el cliente, tiene poco impacto en el rendimiento de la capacitación y permite al cliente rastrear el presupuesto de privacidad gastado en cualquier momento dado.
Esta versión de código está dirigida a dos audiencias objetivo:
El último lanzamiento de Opacus se puede instalar a través de pip :
pip install opacus O, alternativamente, a través de conda :
conda install -c conda-forge opacusTambién puede instalar directamente desde la fuente para las últimas funciones (junto con sus peculiaridades y errores potencialmente ocasionales):
git clone https://github.com/pytorch/opacus.git
cd opacus
pip install -e . Para capacitar a su modelo con privacidad diferencial, todo lo que necesita hacer es instanciar un Ingilio PrivacyEngine y pasar su modelo, Data_Loader y Optimizer al método make_private() del motor para obtener sus contrapartes privadas.
# 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 usualEl ejemplo MNIST muestra una ejecución de extremo a extremo usando Opacus. La carpeta de ejemplos contiene más ejemplos de este tipo.
Opacus 1.0 introdujo muchas mejoras en la biblioteca, pero también algunos cambios de ruptura. Si ha estado usando Opacus 0.x y desea actualizar la última versión, utilice esta Guía de migración
Hemos creado una serie de tutoriales basados en Ipython como una introducción suave a los modelos de entrenamiento con privacidad y utilizando varias características de Opacus.
El informe técnico que presenta Opacus, que presenta sus principios de diseño, bases matemáticas y puntos de referencia se puede encontrar aquí.
Considere citar el informe si usa Opacus en sus documentos, de la siguiente manera:
@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}
}
Si desea obtener más información sobre DP-SGD y temas relacionados, consulte nuestra serie de publicaciones y charlas de blogs:
Consulte la página de preguntas frecuentes para obtener respuestas a algunas de las preguntas más frecuentes sobre privacidad diferencial y opacus.
Vea el archivo contribuyente sobre cómo ayudar. También consulte los archivos ReadMe dentro del repositorio para saber cómo se organiza el código.
Este código se publica bajo Apache 2.0, como se encuentra en el archivo de licencia.