Skip to main content
QUICK REVIEW

[论文解读] Opacus: User-Friendly Differential Privacy Library in PyTorch

Ashkan Yousefpour, Igor Shilov|arXiv (Cornell University)|Sep 25, 2021
Privacy-Preserving Technologies in Data参考文献 13被引用 23
一句话总结

Opacus 是一个用户友好、高性能的 PyTorch 库,仅需修改两行代码即可通过微小的代码改动实现深度学习模型的差分隐私训练。它通过向量化操作高效计算每个样本的梯度,避免了微批次处理带来的性能开销,同时在速度和内存效率方面优于现有框架,并支持包括注意力机制和 RNN 在内的多种网络层。

ABSTRACT

We introduce Opacus, a free, open-source PyTorch library for training deep learning models with differential privacy (hosted at opacus.ai). Opacus is designed for simplicity, flexibility, and speed. It provides a simple and user-friendly API, and enables machine learning practitioners to make a training pipeline private by adding as little as two lines to their code. It supports a wide variety of layers, including multi-head attention, convolution, LSTM, GRU (and generic RNN), and embedding, right out of the box and provides the means for supporting other user-defined layers. Opacus computes batched per-sample gradients, providing higher efficiency compared to the traditional "micro batch" approach. In this paper we present Opacus, detail the principles that drove its implementation and unique features, and benchmark it against other frameworks for training models with differential privacy as well as standard PyTorch.

研究动机与目标

  • 简化差分隐私在基于 PyTorch 的机器学习流水线中的集成。
  • 通过实现向量化每个样本的梯度计算,消除传统微批次处理在 DP-SGD 中带来的性能瓶颈。
  • 提供一个灵活、可扩展且高效的框架,开箱即用支持广泛的深度学习层。
  • 通过内置的 Rényi 差分隐私会计机制实现实时隐私预算跟踪和早期停止。
  • 在保持与标准 PyTorch 工作流兼容的前提下,相比现有 DP 训练框架在速度和内存效率方面表现更优。

提出的方法

  • 引入 PrivacyEngine 类,封装 PyTorch 模型、优化器和数据加载器,通过单个方法调用即可启用 DP 训练。
  • 通过在 PyTorch 的 autograd 引擎中扩展样本级梯度追踪机制,使用 GradSampleModule 高效计算每个样本的梯度。
  • 采用向量化计算而非微批次处理,以保持硬件利用率并提升训练吞吐量。
  • 在优化器包装器中实现噪声注入和梯度裁剪,确保在参数更新级别满足差分隐私保证。
  • 通过 Rényi 差分隐私(RDP)实现隐私会计,支持自动预算跟踪和早期停止。
  • 通过明确定义的接口支持自定义层和会计机制的可扩展性,便于与高级机器学习工作流集成。

实验结果

研究问题

  • RQ1差分隐私能否在 PyTorch 训练中通过极小的代码更改实现,同时保持高性能?
  • RQ2与微批次处理相比,向量化每个样本的梯度计算在 DP-SGD 中的速度和内存效率如何?
  • RQ3Opacus 在差分隐私下对复杂深度学习架构(包括注意力机制和 RNN 层)的支持程度如何?
  • RQ4Opacus 在训练速度和内存效率方面与现有 DP 训练框架(如 TensorFlow Privacy 和 BackPACK)相比表现如何?
  • RQ5Opacus 是否能与自定义编译的 DP-SGD 实现相比,在吞吐量和内存效率方面达到竞争力?

主要发现

  • Opacus 通过避免微批次处理降低了训练开销,其吞吐量高于基于微批次的实现。
  • 对于标准模型,Opacus 在非 DP 模式下的内存使用为峰值 CUDA 内存的 56.5% ± 8.7%,在 DP 模式下为 57.5% ± 14.9%,表明内存膨胀极小。
  • 对于卷积层,Opacus 在 DP 模式下仅使用峰值分配内存的 6.15% ± 0.03%,显著低于非 DP 模式,这得益于优化的内存管理。
  • 在多个模型和数据集上,Opacus 在训练速度和内存效率方面均优于现有框架(如 TensorFlow Privacy 和 BackPACK)。
  • Opacus 在吞吐量和内存效率方面与自定义 JIT 编译的 DP-SGD 实现相比表现具有竞争力。
  • 该库开箱即用支持多种网络层,包括多头注意力、LSTM、GRU 和嵌入层,具备广泛的适用性。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。