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 والمواضيع ذات الصلة ، تحقق من سلسلة المدونات والمحادثات الخاصة بنا:
تحقق من صفحة الأسئلة الشائعة للحصول على إجابات لبعض الأسئلة الأكثر شيوعًا حول الخصوصية التفاضلية وأوباكوس.
راجع الملف المساهم حول كيفية المساعدة. تحقق أيضًا من ملفات ReadMe داخل الريبو لمعرفة كيفية تنظيم الكود.
يتم إصدار هذا الرمز ضمن Apache 2.0 ، كما هو موجود في ملف الترخيص.