本文共同第一作者简介:张逸骅:密歇根州立大学计算机系博士三年级在校生,师从Sijia Liu传授,关键钻研方向是大模型的安保、隐衷和效率疑问。李平治:本科毕业于中国迷信技术大学,将于2024 Fall博士退学北卡罗来纳大学教堂山分校,师从陈天龙传授,关键钻研兴味集中在高效机器学习和AI4Science畛域。洪骏远:德州大学奥斯汀分校博后,导师是Zhangyang Wang传授。博士毕业于密歇根州立大学,师从Jiayu Zhou传授,目前关键的钻研方向是可信大言语模型和人工智能的医疗运行。李佳翔:明尼苏达大学博士后,目前在洪明毅传授和张树中传授指点下做数值优化实践、机器学习实践和大规模机器学习优化疑问的钻研。
开源大言语模型(LLM)百花齐放,为了让它们顺应各种下游义务,微调(fine-tuning)是最宽泛驳回的基本方法。基于智能微分技术(auto-differentiation)的一阶优化器(SGD、Adam 等)虽然在模型微调中占据干流,但是在模型越来越大的当天,却带来越来越大的显存压力。因此,如何高效地在微调中降低显存使得单卡可以满足微调需求曾经成为一个抢手钻研疑问。值得留意的是,虽然反向流传是这些一阶优化器的基石,被用于计算神经网络每个权重的梯度,同时却也是显存杀手,其中宏大计算图的保留所带来的开支也在大模型时代被凸显得尤为突出。与此同时,零阶优化器(Zeroth-Order Optimization)则齐全无需保留计算图,转而经常使用有限差分来近似计算网络的梯度,经过齐全防止反向流传(back-propagation; BP)来大大缩小神经网络降级中的内存开支。
相似于一阶优化器中随机梯度降低的各式变种,零阶优化器也有着各种此前无人探求的改良算法。近日,来自密歇根州立大学、北卡罗来纳大学教堂山分校、德克萨斯大学奥斯汀分校、明尼苏达大学双城分校、IBM 钻研核心、普林斯顿大学、以及阿里巴巴达摩院的泛滥钻研者联结推出片面评测(benchmark)文章:Revisiting Zeroth-Order Optimization for Memory-Efficient LLM Fine-Tuning: A Benchmark 。这篇文章笼罩六种无需反向流传(BP-free)的优化器、五类大模型、三种复杂度的各项义务、四类微调打算,以及三项增强零阶优化器的全新算法。目前, 关系论文已被 ICML 2024 高分接纳,代码已开源 ;概略如下。
零阶优化器是什么?为何如此关键?
零阶优化器(Zeroth-Order Optimization)仅仅依托神经网络的输入启动梯度预计,以齐全不须要计算反向流传和极少的内训消耗而知名。虽然在零阶优化器畛域也存在不同的梯度预计方法,本文特指基于随机梯度预计器(Random Gradient Estimator, RGE)的一系列算法。便捷来说,就是经过从高斯散布中抽取的随机扰动来计算有限差分,并将其作为梯度的近似预计,RGE 数学公式如下所示。
在此之前,零阶优化曾经少量运行于机器学习疑问中,比如反抗样本生成和进攻,黑箱模型解释,强化学习和智能机器学习;详细的算法和运行引见请参看 [1]。在大模型畛域,MeZO [2] 率先提出将零阶随机梯度降低法(ZO-SGD)用作大模型微调,并展现了零阶优化器的有限后劲。于此同时,ZO-SGD 是最便捷、基本的 BP-free 优化器,它的许多更初级的变种 [3] 能否在大模型微调畛域带给咱们更多惊喜,是一个亟待钻研的课题。本文系统地评测了以下无需反向流传(BP-free)的优化算法在大模型微调义务上的功能、效率和兼容性,目的是向社区展现零阶优化器在多种大模型义务上的宽泛后劲:
本钻研还包括了 Forward-Grad [9] 方法,该方法基于沿随机方向向量的方导游数来无偏预计梯度。值得留意的是,Forward-Grad 虽然不间接经常使用梯度回传,但是却依然用到了智能微分算法,因此它是一种一阶的 BP-free 算法。
综上所述,本文的评测蕴含了上述 5 种零阶优化器以及 Forward-Grad 方法,同时对比一阶优化器中最罕用的 FO-SGD 和 FO-Adam。在详细微调方式上,评测片面笼罩了 5 种 LLM 架构(RoBERTa, OPT, LLaMA, Vicuna, Mistral),3 种不同复杂度的义务(SST2, COPA, WinoGrande),以及 4 种微调打算(full-tuning, LoRA, prompt tuning, prefix tuning)。
大模型微调准确性评测
作者指出,为了有效地利用零阶优化器对大型模型在下游义务上启动微调,必定正当地运用输入模板,以便将下游义务与预训练义务启动对齐。例如关于 SST2 来说,经常使用模板 “<CLS>SENTENCE. It was [terrible|great].<SEP>” 能够在 ZO-SGD 上带来约 10% 的功能优化。但是关于一阶优化器(如 FO-SGD),无论能否经常使用模板功能差异都不大,烘托出零阶优化器的独个性。
SST2 作为一个较为基础的义务,其试验结果可以允许以下论断:
进一步,该钻研经常使用更大的模型 OPT-13B,在更复杂、更艰巨的义务(COPA 和 WinoGrande)上启动试验,得出以下论断:
大模型微调内存开支评测与详解
以 OPT-13B 模型在 MultiRC 数据集上微调为例,作者还进一步对比剖析了不同零阶和一阶优化器的内存与期间老本。如下表所示:首先,从内存效率的角度看,ZO-SGD、ZO-SGD-Cons 和 ZO-SGD-Sign 显示出了相似的高内存效率,只有要一个 A100 GPU 来启动大型言语模型的微调。这并不令人惊讶,由于这些零阶优化器驳回相对便捷的优化步骤,关键依赖于零阶梯度预计器 RGE 的应用。其次,Forward-Grad 仿佛是零阶优化方法在内存效率方面超越一阶方法的临界点(例如与 ZO-Adam 相比)。最后,与一阶方法相比,零阶优化每次迭代的运转期间老本降低了约 41.9%(以 ZO-SGD 与 FO-SGD 为例)。
作者进一步深化比拟了 ZO-SGD 与 FO-SGD 在不同序列长度下的内存效率。可以看到,ZO-SGD 的内存消耗坚持分歧,由于其峰值内存消耗仅由模型参数大小选择,相比之下,随着序列长度的参与,FO-SGD 的峰值内存消耗先坚持不变,而后开局参与。因此,在长高低文长度的设置中,ZO-SGD 将展现出更好的内存效率好处。详细的内存实践值和试验值可参见原论文。
三种改良算法用以增强零阶优化器
零阶优化器在运行于 LLM 时收敛效率受限,关键是由于它们在梯度预计上的方差较大。为了进一步增强零阶优化器,作者从降低梯度预计方差的角度入手,提出了三种进阶算法,包括:分块零阶微调(block-wise ZO fine-tuning)、零阶和一阶混合微调(hybrid ZO and FO fine-tuning)、引入稠密性的零阶梯度预计(sparsity-induced ZO gradient estimation)。
分块零阶微调(Block-wise ZO fine-tuning) 此方法的关键登程点在于,假设零阶优化器在预计梯度时,对 LLM 中参数分块区分启动扰动,经过降低疑问规模的方式来奏效每次对梯度预计的方差,从而改良优化功能。这种方法的好处体如今能够对模型梯度启动更准确的预计,但是成功一次性梯度预计所须要的前向流传的次数会参与。例如,OPT-1.3B 可以分红 26 个参数块(24 个 Transformers 层、嵌入层和 LM 分类头),那么零阶优化器每次计算模型梯度时就会计算 26 次前向流传。为了偏心比拟 ZO-SGD 和 ZO-SGD-Block,作者还比拟了另一种 ZO-SGD 变体的功能,该变体每次对完整的模型启动参数扰动,并将屡次扰动后的梯度预计求平均(例如 OPT-1.3B 的 26 次),以此来保障比拟时的前向流传次数相反。OPT-1.3B 上试验结果标明,ZO-SGD-Block 大幅逾越了两种 ZO-SGD。
零阶和一阶混合训练(Hybrid ZO and FO fine-tuning) 反向流传(BP)从深层至浅层神经网络依次计算权重梯度。由于零阶优化器在内存占用上有远超传一致阶优化器的好处,但一阶优化器的功能往往更好。因此,驳回零阶和一阶优化器的结合将到达一种内存经常使用和功能之间的平衡(trade-off)。详细而言,关于较深档次网络,可以应用一阶优化器经过反向流传准确计算梯度;关于浅层网络,则可以经过零阶优化器启动梯度预算。试验结果标明,在浅层局部(例如 OPT-1.3B 的前 8/24 层)驳回零阶优化器,而在残余的深层局部经常使用一阶优化器,可以在浪费大概三分之一的显存的同时,到达与齐全经常使用一阶优化器相反的功能水平。
经常使用稠密梯度的零阶优化器(ZO with gradient pruning) 在一阶优化器中,梯度剪裁通罕用于减速训练环节;而在零阶优化器中,经过梯度剪裁引入的稠密梯度可以进一步降低梯度预计的方差,从而提高功能。本文钻研了在零阶优化器中运行基于幅值的剪裁战略来失掉每一层的稠密率,而后依据这些稠密率生成随机的稠密梯度掩码(mask),并将其运行于随机梯度预计的扰动上。试验结果显示,过度的梯度稠密性(约 20% 左右)能给零阶优化器带来必定水平的功能优化。
结语
在本文中,咱们展现了零阶优化器在大型言语模型微调中的有效运行。经过应用损失差分来近似梯度,零阶优化方法防止了反向流传和激活存储的需求,极大地节俭了内存资源。咱们经过扩展已有的钻研范围,将不同的零阶优化方法、义务类型及评价目的容纳到了本次评测中,启动了初次系统的零阶优化技术基准钻研。咱们的钻研不只提醒了这些方法在精度和效率方面的体现,还深化讨论了义务对齐和前向梯度的关键作用。应用这些试验剖析,咱们提出了诸如分块优化、零阶与一阶混合训练、梯度稠密化等技术,以进一步增强基于零阶优化的大模型微调。这些改良技术旨在在坚持内存效率的同时,提高微调的准确性。
咱们坚信,这些发现和技术的运行可以鼎力降低大模型钻研对配件资源的要求,使得大模型微调在低端 GPU 也成为或者,从而进一步推进学术钻研并在工业界发生实践而有价值的影响。咱们激励广阔钻研人员和技术开发者关注咱们的钻研成绩,并探求更多应用 ZO 优化的或者性。未来的钻研将继续探求这一畛域的深层疑问,以解锁 LLM 微调中的更多后劲。
了解更多内容请参考论文与 GitHub 仓库,失掉更多消息和资源。
原文链接: