Private Training Large-scale Models with Efficient DP-SGD

Di Wang (Wuhan University) · Jie Ren (Michigan State University) · Liangyu Wang (KAUST / Qwen) · Junxiao Wang (Guangzhou University) · Zihang Xiang (University of California, Los Angeles) · David Keyes (King Abdullah University of Science and Technology)
cache-friendlydifferential privacydifferentially private stochastic gradient descentfused mannerghostclipimplicit methodsllama-13b modelmemory movementmemory requirementsopacusper-sample gradient clippingprivacy-preserving trainingredundant computationsthroughput

As large language models (LLMs) increasingly underpin technological advancements, the privacy of their training data emerges as a critical concern. Differential Privacy (DP) serves as a rigorous mechanism to protect this data, yet its integration via Differentially Private Stochastic Gradient Descent (DP-SGD) introduces substantial challenges, primarily due to the complexities of per-sample gradient clipping. Current explicit methods, such as Opacus, necessitate extensive storage for per-sample gradients, significantly inflating memory requirements. Conversely, implicit methods like GhostClip reduce storage needs by recalculating gradients multiple times, which leads to inefficiencies due to redundant computations. This paper introduces FlashDP, an innovative cache-friendly per-layer DP-SGD that consolidates necessary operations into a single task, calculating gradients only once in a fused manner. This approach not only diminishes memory movement by up to 50\% but also cuts down redundant computations by 20\%, compared to previous methods. Consequently, FlashDP does not increase memory demands and achieves a 90\% throughput compared to the Non-DP method on a four-A100 system during the pre-training of the Llama-13B model, while maintaining parity with standard per-layer clipped DP-SGD in terms of accuracy. These advancements establish FlashDP as a pivotal development for efficient and privacy-preserving training of LLMs. FlashDP's code has been open-sourced in https://github.com/kaustpradalab/flashdp.