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 ไปยังวิธี 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 แสดงการทำงานแบบ end-to-end โดยใช้ 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 ภายใน repo เพื่อเรียนรู้วิธีการจัดระเบียบรหัส
รหัสนี้ถูกปล่อยภายใต้ Apache 2.0 ตามที่พบในไฟล์ใบอนุญาต