meta-pytorch/opacus

Training PyTorch models with differential privacy

What it solves

Opacus 允許開發者使用差分隱私訓練 PyTorch 模型,確保訓練過程不會洩漏訓練集中個別數據點的敏感資訊。

How it works

它提供了一個 PrivacyEngine,可以封裝現有的 PyTorch 模型、優化器和數據加載器。透過使用 make_private() 方法,該函式庫實現了差分隱私隨機梯度下降 (DP-SGD),並允許使用者即時追蹤訓練期間所消耗的隱私預算。

Who it’s for

  • ML practitioners 想要一種簡單的方式,以最少的代碼更改來將差分隱私整合到他們的模型中。
  • Differential Privacy researchers 需要一個靈活的工具,用於實驗和調整隱私保護機器學習演算法。

Highlights

  • Minimal integration effort: Requires very few changes to existing PyTorch training loops.
  • Privacy budget tracking: Enables online tracking of the privacy loss during training.
  • Memory efficiency: Supports Fast Gradient Clipping and Ghost Clipping to reduce the memory overhead of DP-SGD.
  • Broad compatibility: Works with various architectures, including LSTMs and BERT (via LoRA and peft).