FLORA:具有异构低秩适应的联邦微调大型语言模型
FLORA:具有异构低秩适应的联邦微调大型语言模型
FLoRA: Federated Fine-Tuning Large Language Models with Heterogeneous Low-Rank Adaptations
摘要:微调LLM,由于其庞大的参数规模,对FL中资源受限和异构的客户端提出了挑战。以前的方法采用低秩自适应(LoRA)进行有效的联邦微调,但在LoRA适配器上使用传统的FL聚合策略。这些方法导致数学上不准确的聚合噪声,降低了微调效率,并且未能解决异构LoRA。在这项工作中,我们首先强调现有联邦微调方法中LoRA聚合的数学错误。
我们引入了一种新的方法,称为FLORA,通过一种新的基于堆叠的聚合方法,可以跨客户端对异构LoRA适配器进行联合微调。我们的方法是无噪声的,并且无缝地支持异构LoRA适配器。大量的实验证明了FLORA在同构和异构环境中的上级性能,超越了最先进的方法。我们认为这项工作是高效,隐私保护,和精确的LLM联邦微调。我们的代码可以在www.example.com上找到https://github.com/ATP-1010/FederatedLLM。
结论:在这项工作中,我们确定了当前联邦微调方法的局限性(例如,FedIT),以及在实际设置中应用联合微调的挑战,即,跨客户端的异构LoRA等级。我们引入了FLORA,以便使用所提出的堆叠在异构LoRA模块上实现准确聚合-的LoRA聚合机制。我们的大量实验表明,FLORA在同质和异质LoRA设置中优于SOTA方法。此外,我们鼓舞人心的结果为未来以轻量级和准确的方式对大型语言模型进行联邦微调的研究提供了有价值的见解。
解决的问题
之前的工作FedIT提出了一种联邦微调方法[25],将LoRA与FedAvg集成[14]。在FedIT的每一轮FL中,客户端使用本地数据对LoRA模块进行微调,然后将微调后的模块发送到服务器。服务器对所有本地LoRA模块进行平均以获得全局LoRA。LoRA模块有效地降低了计算和通信成本。
然而,FedIT面临两个关键问题,首先,FedIT中局部LoRA模块的朴素平均给全局模型更新引入了噪声,具体来说,FedIT独立地对局部A和B进行平均,这给全局LoRA引入了数学误差:
简而言之:
这种不准确的聚合将阻碍收敛,导致更高的微调成本。其次,由于异构数据分布和异构硬件资源,客户端需要根据系统和数据异构性来调整LoRA等级。然而,FedIT无法聚合具有异构等级的本地LoRA(r不同)。
在这项工作中,我们提出了FLORA,一种无聚合噪声的联邦微调方法,支持异构LoRA。具体来说,如图所示,我们提出分别堆叠局部LoRA模块Ak和Bk来构建全局LoRA模块A和B,其中,Ak和Bk表示k上的对应LoRA模,th客户端。理论上证明这种堆叠方法对于本地LoRA模块的聚合是准确的(第3.1节)。此外,它可以自然地适应异构LoRA设置(第3.2节),因为堆叠不需要本地LoRA模块在客户端之间具有相同的等级。FLORA的无噪声聚合加速了收敛,这又将提高联合微调的总体计算和通信效率。此外,FLORA可以有效地满足客户端之间的异构数据和计算资源,其中应用了异构等级。
我们的主要贡献总结如下:
·我们提出了基于LoRA的联邦微调算法FLORA,它可以对局部LoRA模块进行无噪声聚合。理论分析表明,FLORA消除了全局模型更新中无意义的中间项,从而加快了收敛速度,提高了性能。
·用于聚合LoRA模块的拟议堆叠机制支持跨客户端的异构LoRA等级,从而在实际设置中适应数据和系统异构性。这鼓励具有异构数据和资源的客户端更广泛地参与联合微调。
·我们使用FLORA在两个下游任务的四个基准上对LLaMA,Llama2 [19]和TinyLlama [26]进行微调。结果表明,FLORA在同质和异构环境下都优于最先进的方法。
论文方法
论文通过通过数学方法证明了简单对A平均、再B平均,最后ΔW=AB是不严谨的。并采用下面的方法来完成联邦学习的lora微调:
该机制表明,在联邦微调的背景下,我们可以通过简单地堆叠众多的本地LoRA模块来实现本地更新的无噪声聚合。这个过程也避免了传输完整的模型参数,从而降低了通信成本。
基于堆叠的LoRA聚合。考虑不同边缘设备的异构型,需要设置不同的lora的rank值。在从参与客户端接收到异构LoRA模块时,服务器通过堆叠所有Bk和Ak来继续聚合它们,从而产生全局A ∈ R(PK k=0 rk)×n和B ∈ R m×(PK k=0 rk)。得到的最终结果为:
pk为每个设备的数据集大小权重。
训练过程为:
初始化。服务器首先将预先训练的模型参数W分发给所有K个客户端。然后,客户端根据本地数据和可用本地资源的复杂性初始化其本地LoRA模块。
本地微调。初始化后,客户端使用本地数据训练其本地LoRA模块进行多次迭代。然后,客户端将本地LoRA模块发送回服务器。请注意,在本地微调之前,客户端每轮都会初始化本地LoRA模块。
服务器利用FLORA来计算ΔW。
更新本地模型。在每轮无噪声聚合之后,服务器将更新的全局LoRA模块A和B重新分发回客户端。然后客户端继续使用BA更新本地模型并继续微调。
此外,使用堆叠方法,更新的全局LoRA模块A和B的尺寸大于FedIT的尺寸,可能导致每轮中更大的通信开销。但是,经验观察表明,联邦微调通常只需要有限数量的通信回合就可以获得令人满意的结果,而且,LoRA模块A和B构成了预训练模型的总体大小的一小部分。因此,堆叠方法的附加通信开销是可以忽略的,并且不会显著影响联合微调的效率。
实验
FLORA的关键特性是(i)无噪声聚合和(ii)支持异构LoRA模块。在本节中,我们将在各种LLM微调任务中验证这些关键特性。我们首先研究FLORA的性能,并将其与同质设置下的FedIT进行比较,以证明无噪声聚合的优势[25]。然后,我们在一个合成的异构设置中检查性能,并将FLORA与香草零填充方法进行比较。最后,我们对比例因子、LoRA秩的异构性以及FLORA的额外通信开销进行了消融研究。
模型。论文使用三种不同尺度的基于Llama的模型:TinyLlama,11亿个参数[26],以及Llama的70亿个参数版本[19]和Llama 2 [20],评估不同模型容量的FLORA。
数据集。使用Databricks-dolly-15 k [25]指令数据集,Alpaca数据集[17]和Wizard数据集[12]用于问答(QA)任务,Wizard和ShareGPT用于聊天助手任务。我们在MMLU [7]上评估联合微调模型用于QA任务,MT-bench [29]用于聊天助手任务,我们按照FedIT [25]中的非IID设置随机抽取10个客户端。
实验结果:
训练结果:不管是同质化数据与异构数据,论文方法FLORA都表现最佳。
缩放因子的影响:假设10个客户端具有相等的本地数据集大小,所有客户端的默认缩放因子都设置为0.1。我们探索了替代缩放因子的影响,即0.01,0.05,0.2,结果如图。结果没有揭示联合细粒度的清晰模式或最佳缩放因子。这些观察结果表明,适当缩放因子的选择高度依赖于特定的数据集和模型特征,强调了在联邦微调中采用定制方法的必要性。
异构LoRA等级的影响:我们评估了LoRA等级为64,32,16,8和4的局部模型的MT-基准得分,在图中呈现结果。结果显示,FLORA能够有效地综合来自不同客户的知识。rank为8的模型在一些模型和数据集上的表现都很好,这也证明了跨客户端的异构排名部署是一个现实的设置。这些观察结果表明,最佳LoRA排名和模型容量之间存在潜在的正相关性,激发了未来研究的进一步探索。
FLORA的通信开销:服务器需要向FLORA中的客户端发送全局LoRA模块,这可能会引起对增加通信开销的担忧。为了量化这一点,我们比较了在三个通信回合上的完全微调、FedIT和FLORA的通信参数。如图所示,尽管FLORA传输的参数比FedIT略多,但与完全微调相比,它仍然显著降低了开销。尽管与FedIT相比通信略有增加,FLORA增强了微调的有效性,并支持异构LoRA等级,使其成为联邦微调的首选解决方案。
收敛率与证明
该定理假定,当轮数T接近无穷大时,微调误差δ(T)的期望值收敛到零,其收敛率为O(1/T)。
相反,FedIT偏离如等式2所示的FedAvg模型更新规则,在其平均过程中引入了非梯度噪声,因此,它无法以O(1/T)的速度实现收敛。虽然这种偏差不会使FedIT在联邦微调中的效用无效,但它会显着损害其收敛速度和整体效率。
个人体会
这个论文从数学的角度给出了准确的lora更新ΔW=AB。由于堆叠效应的副作用,会使得发送给客户端的AB很大,论文认为在提高微调有效性和加速收敛的前提下,通信开销的增加(小部分)是可以接受的。但是服务器的A与B的r是随着客户端的增加而增加,当客户端足够多时,其发送的参数接近W的原大小,导致通信成本增加很多。