一种多领域微调大模型并行推理系统及其方法与流程

文档序号:36937498发布日期:2024-02-02 22:05阅读:43来源:国知局
一种多领域微调大模型并行推理系统及其方法与流程

本发明涉及深度学习,尤其是涉及一种多领域微调大模型并行推理系统及其方法。


背景技术:

1、大模型(llm)狭义上指基于深度学习算法进行训练的自然语言处理(nlp)模型,主要应用于自然语言理解和生成等领域,广义上还包括机器视觉(cv)大模型、多模态大模型和科学计算大模型等,大模型的能力已经越来越得到学术和工业界的关注和认可,在预训练后,大模型可以获得解决各种任务的通用能力。然而,真正将大模型应用到实际业务中,还需要根据业务场景对大语言模型的能力进行进一步的下游任务微调,即进行领域微调和适配。由于全参数训练大模型需要大量的数据和算力资源,目前已有多种高效参数微调方案,可以在实现和全参数微调相同性能的情况下,大幅降低微调成本。

2、现有技术中,针对大语言模型微调,效果最好的是lora,其基本原理是在原始预训练权重旁边增加一个旁路,做一个降维再升维的操作k,训练的时候固定预训练权重,只训练降维矩阵a与升维矩阵b,而模型的输入输出维度不变,输出时将b/a与预训练权重的参数叠加。实际微调过程中,a/b基本在mb级别,与之相比,大语言模型的权重通常在gb级别。

3、通过高效参数微调方法,可以在同一个预训练大语言模型基座的基础上,面对不同业务场景进行针对性领域微调,但随之而来的问题是如何高效地部署这些不同的微调模型,当前解决方案主要有2种,一种是对每一个微调模型,都将lora权重和基座模型权重合并后部署为一个实例,这需要耗费较多的计算资源;另一种是在一个基座模型的基础上,根据用户请求动态的加载和卸载lora权重,虽然只需要部署一个实例,节省了计算资源,但是却无法并行处理不同领域的请求,每个批次的请求必须是调用同一个领域模型,严重影响了系统的吞吐量。


技术实现思路

1、本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种多领域微调大模型并行推理系统及其方法,能够在较小计算资源情况下实现多个微调领域大模型的并行高效推理,同时保证推理系统的吞吐量。

2、本发明的目的可以通过以下技术方案来实现:一种多领域微调大模型并行推理系统,包括依次连接的多领域lora微调模块、lora权重合并和模型加载模块、lora权重索引和模型推理模块,所述多领域lora微调模块用于在同一预训练基座模型的基础上,根据业务数据获得多个领域微调模型;

3、所述lora权重合并和模型加载模块用于对多个领域微调模型的lora权重矩阵进行合并处理,并加载基座模型的原始矩阵权重,得到合并加载模型;

4、所述lora权重索引和模型推理模块用于接收并发请求,再通过lora权重索引方式,从合并加载模型中提取对应领域模型权重,并进行模型推理、输出推理结果。

5、进一步地,所述lora权重索引和模型推理模块连接有输入请求处理单元,所述输入请求处理单元用于对同一用户的不同领域模型请求进行请求预处理和请求合并操作。

6、一种多领域微调大模型并行推理方法,包括以下步骤:

7、s1、针对不同业务场景,采用lora参数微调方式,根据相应业务数据,在同一预训练基座模型的基础上得到多个领域微调模型;

8、s2、将基座模型的原始矩阵权重与多个领域微调模型的lora权重统一进行合并处理,得到合并加载模型;

9、s3、针对用户输入请求进行预处理及合并操作,得到并发请求;

10、s4、针对并发请求,通过lora权重索引,从合并加载模型中提取对应领域模型权重,并进行模型推理、输出推理结果。

11、进一步地,所述步骤s1的具体过程为:在同一预训练基座模型m_b的基础上,在多领域d={d1,d2,…,dn}上分别通过lora微调,获得lora微调模型m_l1,m_l2,…,m_ln,其中,n为领域微调模型的个数。

12、进一步地,所述lora微调具体是针对基座模型m_b中某些给定形状为[h1,h2]的预训练参数矩阵w,训练一个形状为[h1,r]的矩阵ai和形状为[r,h2]的矩阵bi,其中ai、bi为lora微调后获得的低秩参数矩阵,r为指定的秩;

13、原始参数矩阵w的输入输出形式为:

14、y=wx

15、添加第i个领域lora微调后的参数矩阵w的输入输出变为:

16、yi=wx+aibix

17、其中,x为输入,yi为第i个领域微调模型的输出。

18、进一步地,所述步骤s2具体包括以下步骤:

19、s21、将多个领域微调模型的lora权重矩阵进行合并,得到:

20、a=[a1,a2,…,an,]

21、b=[b1,b2,…,bn,]

22、s22、同时加载a、b和原始矩阵权重w,最终添加第i个领域lora微调后的参数矩阵w的输入输出变为:

23、yi=wx+a[i]b[i]x。

24、进一步地,所述步骤s3具体是采用pad操作方式,以针对用户输入请求进行预处理及合并操作,pad操作用于将所有输入数据填充或截断为统一长度。

25、进一步地,所述步骤s3中并发请求具体为:

26、inputs=pad([ip_1,ip_2,…,ip_k])

27、inputs_index=[l_1,l_2,…,l_k]

28、其中,inputs为合并后的请求,inputs_index为输入的索引值。

29、进一步地,所述步骤s4的具体过程为:

30、对于并发请求inputs和inputs_index,参数矩阵的输入输出变为:

31、y=wx+index(a,inputs_index)index(b,inputs_index)x

32、index(a,inputs_index)=[al_1,al_2,…,al_k]

33、index(b,inputs_index)=[bl_1,bl_2,…,bl_k]

34、其中,index代表索引操作符,用于从矩阵a、b中索引出与用户请求相对应的微调lora权重。

35、与现有技术相比,本发明具有以下优点:

36、本发明设计依次连接的多领域lora微调模块、lora权重合并和模型加载模块、lora权重索引和模型推理模块,利用多领域lora微调模块在同一预训练基座模型的基础上,根据业务数据获得多个领域微调模型;利用lora权重合并和模型加载模块对多个领域微调模型的lora权重矩阵进行合并处理,并加载基座模型的原始矩阵权重,得到合并加载模型;利用lora权重索引和模型推理模块接收并发请求,再通过lora权重索引方式,从合并加载模型中提取对应领域模型权重,并进行模型推理、输出推理结果。由此实现一种高效的并行推理系统,能够在共享一个基座模型的基础上,并行处理多个领域请求,每个批次的请求中,每个用户请求都会调用一个独立的微调模型,从而在节省存储和计算资源的基础上,提升推理系统的吞吐量。

37、本发明设计将n个微调后的领域模型lora权重矩阵进行合并,再通过lora权重索引方式,提取合并加载模型中的对应领域模型权重,从而在面对用户的不同领域模型请求时,能够实现多个微调领域大模型的并行高效推理。

38、本发明针对用户输入请求进行预处理及合并操作,考虑到用户并发请求中的各个输入可能会调用不同的领域微调模型,并且每个请求的输入长度不一致,故采用pad操作将所有输入数据填充或者截断为统一长度,从而以批次方式进行并发请求的处理,能够有效提升系统的吞吐量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1