Harmony in Divergence: Towards Fast, Accurate, and Memory-efficient Zeroth-order LLM Fine-tuning

📄 arXiv: 2502.03304v4 📥 PDF

作者: Qitao Tan, Jun Liu, Zheng Zhan, Caiwei Ding, Yanzhi Wang, Xiaolong Ma, Jaewoo Lee, Jin Lu, Geng Yuan

分类: cs.LG, cs.AI, cs.CL

发布日期: 2025-02-05 (更新: 2025-11-02)

🔗 代码/项目: GITHUB


💡 一句话要点

提出Divergence-driven Zeroth-Order优化算法,加速并提升LLM的零阶微调性能。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 零阶优化 大型语言模型 微调 内存效率 散度分析 自适应优化 资源受限

📋 核心要点

  1. 传统一阶微调LLM需要大量内存,限制了其在资源受限场景中的应用。零阶优化虽然内存效率高,但收敛速度和精度远低于一阶方法。
  2. 论文提出Divergence-driven Zeroth-Order (DiZO)优化算法,通过分析一阶和零阶优化之间的差异,自适应地调整每层的更新幅度。
  3. 实验结果表明,DiZO显著减少了收敛所需的迭代次数,降低了训练成本,并在多个数据集上优于现有的零阶方法,甚至在某些情况下超过了一阶微调。

📝 摘要(中文)

大型语言模型(LLM)在各种任务中表现出色,但标准的一阶(FO)微调需要大量内存,严重限制了实际部署。最近,零阶(ZO)优化作为一种有前景的内存高效训练范例脱颖而出,它避免了反向传播,仅依赖前向传播进行梯度估计,这使其对资源受限的场景具有吸引力。然而,ZO方法在收敛速度和准确性方面都远远落后于FO方法。为了弥合差距,我们引入了一种新颖的逐层散度分析,揭示了FO和ZO优化的不同更新模式。为了从这些发现中模拟FO方法的学习能力,我们提出了Divergence-driven Zeroth-Order(DiZO)优化。DiZO通过将投影纳入ZO更新来进行散度驱动的层自适应,从而生成精确缩放到逐层个体优化需求的不同幅度的更新。我们的结果表明,DiZO在不牺牲吞吐量的情况下,显著减少了收敛所需的迭代次数,在各种数据集上最多可减少48%的训练GPU时间。此外,DiZO在下游任务中始终优于具有代表性的ZO基线,在微调RoBERTa-large、OPT系列和Llama系列时,在某些情况下甚至超过了内存密集型的FO微调。我们的代码已在https://github.com/Skilteee/DiZO发布。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)微调过程中,一阶优化方法(如Adam)内存需求过高,而零阶优化方法收敛速度慢、精度低的问题。现有零阶优化方法无法有效模拟一阶优化方法的学习能力,导致性能差距较大。

核心思路:论文的核心思路是通过分析一阶和零阶优化在不同层之间的更新差异(即散度),来指导零阶优化过程。DiZO算法旨在使零阶优化能够模仿一阶优化的学习模式,从而在保证内存效率的同时,提高收敛速度和精度。

技术框架:DiZO算法的技术框架主要包含以下几个步骤:1) 层级散度分析:分析一阶和零阶优化在不同层之间的更新差异。2) 散度驱动的层自适应:根据层级散度分析的结果,自适应地调整每层的更新幅度。3) 投影更新:将调整后的更新投影到零阶优化的更新方向上,生成最终的更新。

关键创新:论文的关键创新在于提出了基于层级散度分析的自适应更新策略。通过分析一阶和零阶优化之间的差异,DiZO算法能够更精确地控制每层的更新幅度,从而提高收敛速度和精度。这种方法避免了直接计算梯度,保持了零阶优化的内存效率优势。

关键设计:DiZO算法的关键设计包括:1) 散度度量:使用合适的度量方式来衡量一阶和零阶优化之间的更新差异。2) 自适应策略:设计一种有效的自适应策略,根据散度分析的结果来调整每层的更新幅度。3) 投影方式:选择合适的投影方式,将调整后的更新投影到零阶优化的更新方向上。具体的参数设置和损失函数选择取决于具体的任务和数据集。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

DiZO算法在RoBERTa-large、OPT系列和Llama系列等多个LLM上进行了验证,并在多个下游任务中取得了显著的性能提升。实验结果表明,DiZO算法能够减少高达48%的训练GPU时间,并在某些情况下超过内存密集型的一阶微调方法。例如,在特定数据集上,DiZO算法的性能超过了Adam等一阶优化器。

🎯 应用场景

该研究成果可广泛应用于资源受限场景下的大型语言模型微调,例如边缘设备、移动设备或计算资源有限的实验室。DiZO算法能够降低LLM微调的计算成本和内存需求,加速模型迭代和部署,促进LLM在更多实际场景中的应用。

📄 摘要(原文)

Large language models (LLMs) excel across various tasks, but standard first-order (FO) fine-tuning demands considerable memory, significantly limiting real-world deployment. Recently, zeroth-order (ZO) optimization stood out as a promising memory-efficient training paradigm, avoiding backward passes and relying solely on forward passes for gradient estimation, making it attractive for resource-constrained scenarios. However, ZO method lags far behind FO method in both convergence speed and accuracy. To bridge the gap, we introduce a novel layer-wise divergence analysis that uncovers the distinct update pattern of FO and ZO optimization. Aiming to resemble the learning capacity of FO method from the findings, we propose Divergence-driven Zeroth-Order (DiZO) optimization. DiZO conducts divergence-driven layer adaptation by incorporating projections to ZO updates, generating diverse-magnitude updates precisely scaled to layer-wise individual optimization needs. Our results demonstrate that DiZO significantly reduces the needed iterations for convergence without sacrificing throughput, cutting training GPU hours by up to 48\% on various datasets. Moreover, DiZO consistently outperforms the representative ZO baselines in fine-tuning RoBERTa-large, OPT-series, and Llama-series on downstream tasks and, in some cases, even surpasses memory-intensive FO fine-tuning. Our code is released at https://github.com/Skilteee/DiZO.