本说明书一个或多个实施例涉及人工智能,尤其涉及一种模型微调方法及装置、电子设备及存储介质。
背景技术:
1、近年来,人工智能技术得到了飞速发展,多个领域因此掀起了技术革新,这给人们的工作和生活带来了极大的方便。举例来说,大语言模型因其上下文感知能力、任务通用性、语言生成能力等优点,而能够完成各种自然语言处理任务,例如文本生成、机器翻译、问答系统等。大语言模型的智能化程度取决于其参数规模和训练程度,即参数规模越大,训练程度越高,大语言模型的智能化程度越高,反之则智能化程度越低。
2、相关技术中,往往选择已经完成预训练的模型进行微调,以使其能够适应于目标任务,例如代码处理的任务。但是相关技术中,对模型的微调效果较为一般,尤其是微调后的模型泛化能力较差。
技术实现思路
1、有鉴于此,本说明书一个或多个实施例提供一种特征提取方法及装置、电子设备及存储介质。
2、为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
3、根据本说明书一个或多个实施例的第一方面,提出了一种模型微调方法,所述方法包括:
4、将多个任务的训练数据输入至待微调模型,得到所述待微调模型输出的每个任务的训练数据的预测结果;
5、根据每个任务的训练数据的预测结果,以及对应的训练数据的标签,确定每个任务的训练损失;
6、根据每个任务的训练损失和每个的任务的损失权重确定总损失,并根据所述总损失对待微调模型的参数进行微调,其中,每个任务的损失权重至少与所述任务的训练数据的数量相关。
7、在本说明书的一个可选实施例中,所述方法还包括:
8、根据每个任务的训练数据的数量,对应确定每个任务的损失权重,其中,不同任务的所述损失权重与所述训练数据的数据量成反比。
9、在本说明书的一个可选实施例中,所述方法还包括:
10、将每个任务的验证数据输入至待微调模型,得到所述待微调模型输出的每个任务的验证数据的预测结果;
11、根据每个任务的验证数据的预测结果,以及对应的验证数据的标签,确定每个任务的验证损失。
12、在本说明书的一个可选实施例中,所述方法还包括:
13、根据每个任务的验证损失的梯度,对应调整每个任务的损失权重,以控制所述待微调模型在每个任务上的收敛速度一致。
14、在本说明书的一个可选实施例中,所述根据每个任务的验证损失梯度,对应调整每个任务的损失权重,包括:
15、对于任两个任务,将所述验证损失的梯度较小的任务的损失权重调大,将所述验证损失的梯度较大的损失权重调小。
16、在本说明书的一个可选实施例中,所述根据所述总损失对待微调模型的参数进行微调,包括:
17、根据所述总损失,利用高效微调方式对待微调模型的参数进行微调。
18、在本说明书的一个可选实施例中,所述根据所述总损失,利用高效微调方式对待微调模型的参数进行微调,包括:
19、响应于待微调模型的参数总量小于预设阈值,根据所述总损失,利用低秩微调方式对待微调模型的参数进行微调;
20、响应于待微调模型的参数总量不小于预设阈值,根据所述总损失,利用量化低秩微调方式对待微调模型的参数进行微调。
21、在本说明书的一个可选实施例中,所述方法还包括:
22、在所述根据所述总损失,利用高效微调方式对待微调模型的参数进行微调之后,确定所述参数微调时长;
23、根据所述参数微调时长,确定参数微调方式为低秩微调方式或量化低秩微调方式;
24、所述根据所述总损失,利用高效微调方式对待微调模型的参数进行微调,包括:
25、根据所述总损失,利用当前的参数微调方式对待微调模型的参数进行微调。
26、在本说明书的一个可选实施例中,所述根据所述参数微调时长,确定参数微调方式为低秩微调方式或量化低秩微调方式,包括:
27、响应于所述参数微调时长小于预设时长阈值,将所述参数微调方式确定为低秩微调方式;
28、响应于所述参数微调时长不小于预设时长阈值,将所述参数微调方式确定为量化低秩微调方式。
29、在本说明书的一个可选实施例中,所述待微调模型为用于代码处理的大语言模型。
30、在本说明书的一个可选实施例中,所述方法运行于多个图形处理器组成的框架,其中,所述多个图形处理器属于一个或多个设备。
31、根据本说明书一个或多个实施例的第二方面,提出了一种模型微调装置,所述装置包括:
32、预测模块,用于将多个任务的训练数据输入至待微调模型,得到所述待微调模型输出的每个任务的训练数据的预测结果;
33、梯度模块,用于根据每个任务的训练数据的预测结果,以及对应的训练数据的标签,确定每个任务的训练损失;
34、微调模块,用于根据每个任务的训练损失和每个的任务的损失权重确定总损失,并根据所述总损失对待微调模型的参数进行微调,其中,每个任务的损失权重至少与所述任务的训练数据的数量相关。
35、在本说明书的一个可选实施例中,所述装置还包括第一权重模块,用于:
36、根据每个任务的训练数据的数量,对应确定每个任务的损失权重,其中,不同任务的所述损失权重与所述训练数据的数据量成反比。
37、在本说明书的一个可选实施例中,所述装置还包括验证模块,用于:
38、将每个任务的验证数据输入至待微调模型,得到所述待微调模型输出的每个任务的验证数据的预测结果;
39、根据每个任务的验证数据的预测结果,以及对应的验证数据的标签,确定每个任务的验证损失。
40、在本说明书的一个可选实施例中,所述装置还包括第二权重模块,用于:
41、根据每个任务的验证损失的梯度,对应调整每个任务的损失权重,以控制所述待微调模型在每个任务上的收敛速度一致。
42、在本说明书的一个可选实施例中,所述第二权重模块用于:
43、对于任两个任务,将所述验证损失的梯度较小的任务的损失权重调大,将所述验证损失的梯度较大的损失权重调小。
44、在本说明书的一个可选实施例中,所述微调模块用于根据所述总损失对待微调模型的参数进行微调时,用于:
45、根据所述总损失,利用高效微调方式对待微调模型的参数进行微调。
46、在本说明书的一个可选实施例中,所述微调模块用于:
47、响应于待微调模型的参数总量小于预设阈值,根据所述总损失,利用低秩微调方式对待微调模型的参数进行微调;
48、响应于待微调模型的参数总量不小于预设阈值,根据所述总损失,利用量化低秩微调方式对待微调模型的参数进行微调。
49、在本说明书的一个可选实施例中,所述装置还包括确定模块,用于:
50、在所述根据所述总损失,利用高效微调方式对待微调模型的参数进行微调之后,确定所述参数微调时长;
51、根据所述参数微调时长,确定参数微调方式为低秩微调方式或量化低秩微调方式;
52、所述微调模块用于:
53、根据所述总损失,利用当前的参数微调方式对待微调模型的参数进行微调。
54、在本说明书的一个可选实施例中,所述确定模块用于根据所述参数微调时长,确定参数微调方式为低秩微调方式或量化低秩微调方式时,用于:
55、响应于所述参数微调时长小于预设时长阈值,将所述参数微调方式确定为低秩微调方式;
56、响应于所述参数微调时长不小于预设时长阈值,将所述参数微调方式确定为量化低秩微调方式。
57、在本说明书的一个可选实施例中,所述待微调模型为用于代码处理的大语言模型。
58、在本说明书的一个可选实施例中,所述装置运行于多个图形处理器组成的框架,其中,所述多个图形处理器属于一个或多个设备。
59、根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
60、处理器;
61、用于存储处理器可执行指令的存储器;
62、其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
63、根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
64、本说明书的实施例提供的技术方案可以包括以下有益效果:
65、本说明书实施例所提供的模型微调方法可以用于对完成预训练的模型进行微调,以使模型的微调结果能够适应于处理过或未处理过的任务。先将多个任务的训练数据输入至待微调模型,得到所述待微调模型输出的每个任务的训练数据的预测结果;再根据每个任务的训练数据的预测结果,以及对应的训练数据的标签,确定每个任务的训练损失;最后根据每个任务的训练损失和每个的任务的损失权重确定总损失,并根据所述总损失对待微调模型的参数进行微调。该方法利用多个任务的训练数据对待微调模型进行微调,待微调模型不仅能够学习到各个任务的特征和规律,还能够学习到多个任务之间相互联系的特征和规律,因此待微调模型的微调结果不仅能够完成训练数据所属的各个任务,还能够完成未见过的任务,即具有很强的泛化能力;而且由于每个任务的损失权重至少与所述任务的训练数据的数量相关,因此在多个任务实现了训练数据的数量均衡,也就是通过总损失使待微调模型对每个任务的关注程度一致,避免因训练数据的数量差异造成待微调模型对不同任务的关注程度不同,从而进一步提高了待微调模型的微调结果的泛化能力。