A Opacus é uma biblioteca que permite o treinamento de modelos de Pytorch com privacidade diferencial. Ele suporta treinamento com alterações mínimas de código necessárias no cliente, tem pouco impacto no desempenho do treinamento e permite que o cliente rastreie on -line o orçamento de privacidade gasto a qualquer momento.
Esta liberação de código é destinada a dois públicos -alvo:
O lançamento mais recente do Opacus pode ser instalado via pip :
pip install opacus Ou, alternativamente, via conda :
conda install -c conda-forge opacusVocê também pode instalar diretamente a partir da fonte para obter os recursos mais recentes (junto com suas peculiaridades e bugs potencialmente ocasionais):
git clone https://github.com/pytorch/opacus.git
cd opacus
pip install -e . Para treinar seu modelo com privacidade diferencial, tudo o que você precisa fazer é instanciar um PrivacyEngine e passar seu modelo, data_loader e otimizador ao método make_private() do mecanismo para obter seus colegas privados.
# 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 usualO exemplo mnist mostra uma execução de ponta a ponta usando o Opacus. A pasta Exemplos contém mais exemplos desses.
O Opacus 1.0 introduziu muitas melhorias na biblioteca, mas também algumas mudanças. Se você está usando o Opacus 0.x e deseja atualizar para a versão mais recente, use este guia de migração
Construímos uma série de tutoriais baseados em ipython como uma introdução suave aos modelos de treinamento com privacidade e usando vários recursos da Opacus.
O relatório técnico que apresenta a Opacus, apresentando seus princípios de design, fundações matemáticas e benchmarks pode ser encontrada aqui.
Considere citar o relatório se você usar o Opacus em seus papéis, como segue:
@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}
}
Se você quiser saber mais sobre DP-SGD e tópicos relacionados, confira nossa série de posts e palestras:
Confira a página de perguntas frequentes para obter respostas para algumas das perguntas mais frequentes sobre privacidade diferencial e Opacus.
Consulte o arquivo contribuinte sobre como ajudar. Confira também os arquivos ReadMe dentro do repositório para saber como o código está organizado.
Este código foi lançado no Apache 2.0, conforme encontrado no arquivo de licença.