Opacus - это библиотека, которая позволяет обучать модели Pytorch с дифференциальной конфиденциальностью. Он поддерживает обучение с минимальными изменениями кода, необходимыми для клиента, мало влияет на производительность обучения и позволяет клиенту отслеживать бюджет конфиденциальности, затраченный в любой момент.
Этот выпуск кода предназначен для двух целевой аудитории:
Последний выпуск 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 usualПример MNIST показывает сквозной запуск с использованием Opacus. Папка «Примеры» содержит больше таких примеров.
Opacus 1.0 ввел много улучшений в библиотеку, а также некоторые нарушительные изменения. Если вы использовали opacus 0.x и хотите обновить до последнего релиза, используйте это руководство по миграции
Мы создали серию учебных пособий на основе IPYTHON в качестве мягкого знакомства с учебными моделями с конфиденциальностью и использованием различных функций Opacus.
Технический отчет, представляющий 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 и связанных темах, ознакомьтесь с нашей серией блогеров и беседы:
Проверьте страницу часто задаваемых вопросов, чтобы получить ответы на некоторые из наиболее часто задаваемых вопросов о дифференциальной конфиденциальности и Opacus.
Смотрите файл вклад для того, как помочь. Также ознакомьтесь с файлами readme внутри репо, чтобы узнать, как организован код.
Этот код выпускается в соответствии с Apache 2.0, как найдено в файле лицензии.