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 및 Optimizer를 Engine의 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 usualMNIST 예제는 Opacus를 사용한 엔드 투 엔드 런을 보여줍니다. 예제 폴더에는 이러한 예제가 포함되어 있습니다.
Opacus 1.0은 라이브러리에 대한 많은 개선 사항을 도입했지만 일부는 깨지는 변화를 도입했습니다. Opacus 0.x를 사용하고 있고 최신 릴리스로 업데이트하려면이 마이그레이션 가이드를 사용하십시오.
우리는 개인 정보 보호 및 다양한 Opacus 기능을 사용하여 교육 모델에 대한 온화한 소개로 일련의 Ipython 기반 튜토리얼을 구축했습니다.
디자인 원칙, 수학적 기초 및 벤치 마크를 제시하는 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 및 관련 주제에 대해 자세히 알아 보려면 일련의 블로그 포스트 및 대화를 확인하십시오.
FAQ 페이지에서 차이 프라이버시 및 Opacus에 대한 가장 자주 묻는 질문에 대한 답변은 확인하십시오.
도움이되는 방법은 기여 파일을 참조하십시오. 또한 코드 구성 방법을 알아 보려면 Repo 내부의 ReadMe 파일을 확인하십시오.
이 코드는 라이센스 파일에서 볼 수 있듯이 Apache 2.0에 해당됩니다.