一种基于梯度压缩的大语言模型联邦微调方法和装置与流程
- 国知局
- 2024-07-31 23:02:27
本发明属于大语言模型微调,具体涉及一种基于梯度压缩的大语言模型联邦微调方法和装置。
背景技术:
1、自chatgpt等模型的问世以来,大型语言模型(large language models,llm)领域经历了飞速发展,llm以其深度学习的复杂性和广泛的适用性,在多个领域呈现惊人表现,如数学推理、自然语言理解和常识推理等。
2、针对训练策略,为了将通用llm应用于特定领域,事先进行模型微调是至关重要的步骤。模型微调是一个将预训练的通用模型适应于特定任务或领域的过程。在这个过程中,需要对模型的参数进行精细的调整,以便它能够更好地处理特定类型的数据和任务。然而,由于这些llm包含的参数数量极为庞大,即便是利用如rtx 4090这样的标准且相对经济的gpu,要全面管理所有参数也显得力不从心,即便是对于规模如llama-7b的模型也不例外,庞大的参数规模不仅增加了计算的复杂度,也增加了调优的难度。
3、鉴于此,需要寻找一种高效的微调方法,以便在有限的计算资源下达到最佳的效果。自适应的低秩分解策略就是其中的一种有效手段,通过对参数进行低秩分解,将高维的参数空间降低到低维的子空间,从而减少了需要调优的参数数量,这样,只需要对参数的一个精选子集进行调优,就可以达到与全面调优相近的效果。这种方法不仅提高了调优的效率,也降低了对计算资源的需求。
4、然而,上述高效的微调方法并不是万能的,在训练数据方面,对llm实施有效微调还需要大量高品质的数据资源。但是,随着数据隐私法规的日益严格,限制了个人数据的收集、存储和使用,使得数据获取以及跨平台数据共享变得越来越困难。在这种情况下,联邦学习(federated learning,fl)作为一种新兴的分布式机器学习框架,提供了一种新的解决方案。联邦学习允许多个参与者在不共享原始数据的情况下共同训练一个模型,每个参与者都在自己的本地数据上训练模型,并将模型的更新发送给中央服务器进行聚合,这样就可以在保护数据隐私的同时,利用多个参与者的数据来共同训练一个高质量的模型。
5、对于llm的微调而言,联邦学习同样具有重要的应用价值,构建一个专门针对llm的高效联邦微调策略,以充分利用多个参与者的数据来共同优化一个通用的llm,使其适应于特定的任务或领域,在保证数据隐私保护的同时实现联邦微调效率的提升以及计算资源需求的降低,成为当前亟待解决的关键问题。
技术实现思路
1、鉴于上述,本发明的目的是提供一种基于梯度压缩的大语言模型联邦微调方法和装置,能够在保证数据隐私保护的同时实现大语言模型联邦微调效率的提升以及计算资源需求的降低,适用于面向科学计算的大语言模型微调和训练过程中通信优化提高以及隐私保护增强等应用场景。
2、为实现上述发明目的,本发明提供的技术方案如下:
3、第一方面,本发明实施例提供的一种基于梯度压缩的大语言模型联邦微调方法,包括以下步骤:
4、基于大语言模型在微调过程中产生的梯度张量构建为具有时间序列关系的原始数据集,将原始数据集输入自编码器推理得到重构梯度数据集,基于原始数据集和重构梯度数据集构建重构损失函数对自编码器进行优化,将优化后的自编码器拆分为预训练编码器和预训练解码器;
5、在服务器端将大语言模型的基座模型初始化为全局模型,服务器端将全局模型更新至被选中的至少一个客户端,在客户端全局模型本地训练阶段中利用预训练编码器得到压缩后的梯度并传给服务器端,在服务器端全局模型全局聚合阶段中利用预训练解码器将压缩后的梯度进行解码和聚合,利用聚合后的梯度更新全局模型,从而得到联邦微调后的全局模型作为最终应用的大语言模型部署在服务器端并更新至客户端。
6、优选地,所述基于大语言模型在微调过程中产生的梯度张量构建为具有时间序列关系的原始数据集,包括:
7、获取大语言模型在微调过程中基于梯度下降算法产生的梯度张量,将梯度张量按照产生时间戳构建为具有时间序列关系的梯度张量的集合,作为原始数据集。
8、优选地,所述将原始数据集输入自编码器推理得到重构梯度数据集,包括:
9、将原始数据集输入自编码器中,通过其中的编码器对原始数据集进行编码得到压缩后的梯度张量低维特征表示,再通过其中的解码器将压缩后的梯度张量低维特征表示进行解码重构得到重构梯度数据集。
10、优选地,自编码器中的编码器和解码器为对称结构,编码器包括多层卷积神经网络和多个残差块,解码器包括多个残差块和多层反卷积神经网络。
11、优选地,所述基于原始数据集和重构梯度数据集构建重构损失函数对自编码器进行优化,包括:
12、将原始数据集和重构梯度数据集中对应的梯度张量进行求差以构建重构损失函数 l,表示如下:
13、,
14、其中, f i表示原始数据集中的第 i个梯度张量, g i表示重构梯度数据集中的第 i个梯度张量,表示二范数;
15、通过最小化重构损失函数 l对自编码器进行迭代优化。
16、优选地,所述在客户端全局模型本地训练阶段中利用预训练编码器得到压缩后的梯度并传给服务器端,包括:
17、在每个客户端进行基于低秩分解的全局模型本地训练,并得到包含多个低维矩阵乘积的梯度低秩分解结果;
18、在每个客户端利用预训练编码器对梯度低秩分解结果进行编码,得到压缩后的梯度;
19、在每个客户端将压缩后的梯度传给服务器端。
20、优选地,所述在服务器端全局模型全局聚合阶段中利用预训练解码器将压缩后的梯度进行解码和聚合,利用聚合后的梯度更新全局模型,包括:
21、服务器端收集被选中的至少一个客户端传来的压缩后的梯度;
22、服务器端通过预训练编码器将压缩后的梯度进行解码;
23、服务器端在低秩分解的子空间上对解码后的梯度进行梯度的平均聚合;
24、服务器端根据聚合后的梯度采用梯度下降法更新全局模型参数。
25、第二方面,为实现上述发明目的,本发明实施例还提供了一种基于梯度压缩的大语言模型联邦微调装置,包括:梯度压缩自编码器预训练模块和梯度压缩大语言模型联邦微调模块;
26、所述梯度压缩自编码器预训练模块用于基于大语言模型在微调过程中产生的梯度张量构建为具有时间序列关系的原始数据集,将原始数据集输入自编码器推理得到重构梯度数据集,基于原始数据集和重构梯度数据集构建重构损失函数对自编码器进行优化,将优化后的自编码器拆分为预训练编码器和预训练解码器;
27、所述梯度压缩大语言模型联邦微调模块用于在服务器端将大语言模型的基座模型初始化为全局模型,服务器端将全局模型更新至被选中的至少一个客户端,在客户端全局模型本地训练阶段中利用预训练编码器得到压缩后的梯度并传给服务器端,在服务器端全局模型全局聚合阶段中利用预训练解码器将压缩后的梯度进行解码和聚合,利用聚合后的梯度更新全局模型,从而得到联邦微调后的全局模型作为最终应用的大语言模型部署在服务器端并更新至客户端。
28、第三方面,为实现上述发明目的,本发明实施例还提供了一种基于梯度压缩的大语言模型联邦微调设备,包括存储器和一种或多种处理器,所述存储器用于存储计算机程序,所述处理器用于当执行所述计算机程序时,实现上述的基于梯度压缩的大语言模型联邦微调方法。
29、第四方面,为实现上述发明目的,本发明实施例还提供了一种计算机可读的存储介质,所述存储介质上存储有计算机程序,所述计算机程序被计算机执行时,实现上述的基于梯度压缩的大语言模型联邦微调方法。
30、与现有技术相比,本发明具有的有益效果至少包括:
31、(1)本发明采用梯度压缩策略,通过提前对自编码器进行优化,以有效训练自编码器性能,能够实现在联邦学习期间高效地重构梯度,在联邦学习期间无需进一步训练自编码器,然后在联邦微调阶段将自编码器拆分为编码器和解码器分别部署至客户端和服务器端,基于客户端和服务器端的梯度压缩、传输、解压策略进行大语言模型的联邦微调,从而实现了在联邦学习上游过程中梯度信息的高度压缩和数据传输过程中通信量的降低,提高了硬件处理速度。
32、(2)本发明采用联邦学习的微调方法,既能够克服数据隐私法规带来的局限性,又能够充分利用多个参与者的数据资源来提高模型的性能,实现对大语言模型的高效联邦微调,对于梯度参数极为庞大的大语言模型的微调中通信优化和隐私保护具有重要的意义。
33、(3)本发明利用梯度信息对自编码器进行训练,梯度信息中包含具有时间序列关系特征,其直接反映了模型在特定任务上的性能表现,因此能够使训练过程具有更好的适应性、收敛性和稳定性,适用于大规模数据集的高效训练,使自编码器更好地应用于大语言模型联邦微调。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195737.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。