ZO2: Scalable Zeroth-Order Fine-Tuning for Extremely Large Language Models with Limited GPU Memory
Liangyu Wang, Jie Ren, Hang Xu, Junxiao Wang, Huanyi Xie, David E. Keyes, Di Wang
TL;DR
ZO2 tackles the memory bottleneck in fine-tuning extremely large language models by offloading computations to the CPU and employing zeroth-order optimization with dual forward passes. The framework introduces RNG state synchronization, a dynamic overlap scheduler, reusable GPU memory, efficient update strategies, and AMP-based low-bit compression to achieve substantial memory reductions (e.g., training OPT-175B on 18GB) with negligible time overhead and no loss in accuracy. Comprehensive experiments on the OPT family demonstrate memory savings while maintaining near-baseline throughput and identical accuracy on multiple benchmarks, supported by an RNG-management mechanism that preserves perturbation-consistent updates. The work democratizes access to extremely large model fine-tuning on commodity hardware and provides a public codebase to foster further research and practical deployment.
Abstract
Fine-tuning large pre-trained LLMs generally demands extensive GPU memory. Traditional first-order optimizers like SGD encounter substantial difficulties due to increased memory requirements from storing activations and gradients during both the forward and backward phases as the model size expands. Alternatively, zeroth-order (ZO) techniques can compute gradients using just forward operations, eliminating the need to store activations. Furthermore, by leveraging CPU capabilities, it's feasible to enhance both the memory and processing power available to a single GPU. We propose a novel framework, ZO2 (Zeroth-Order Offloading), for efficient zeroth-order fine-tuning of LLMs with only limited GPU memory. Our framework dynamically shifts model parameters between the CPU and GPU as required, optimizing computation flow and maximizing GPU usage by minimizing downtime. This integration of parameter adjustments with ZO's double forward operations reduces unnecessary data movement, enhancing the fine-tuning efficacy. Additionally, our framework supports an innovative low-bit precision approach in AMP mode to streamline data exchanges between the CPU and GPU. Employing this approach allows us to fine-tune extraordinarily large models, such as the OPT-175B with more than 175 billion parameters, on a mere 18GB GPU--achievements beyond the reach of traditional methods. Moreover, our framework achieves these results with almost no additional time overhead and absolutely no accuracy loss compared to standard zeroth-order methods. ZO2's code has been open-sourced in https://github.com/liangyuwang/zo2.
