本发明属于机器学习领域领域,尤其涉及一种基于机器学习的架构无关神经网络参数生成方法及系统。
背景技术:
1、近年来,诸如gpt-4和llama等大型语言模型(llms)的进步极大地影响了人们的日常生活,展示了它们在自动化日常任务方面的卓越表现。
2、llm为多样化的用户需求提供了一站式解决方案。尽管它们能力惊人,但llms仍难以高效便捷地满足用户多样化的需求。首先,人们对独立部署llms以获得更私密、安全、稳定和快速服务的兴趣日益增加。然而,llms需要大量资源进行训练和部署,这对普通用户来说可能负担不起。例如,预训练llama-2-70b需要170万gpu小时(a100-80g)并消耗2.5×1012焦耳的能量,其推理阶段的电力消耗也相当可观。此外,尽管用户需求各异,llms在某些特定领域(如法律、经济和医疗领域)可能无法总是达到最佳效果。相比之下,定制的小模型往往表现更优。然而,用户可能没有足够的专业知识或时间和资源来选择和微调这些模型,这阻碍了普通用户对ai技术的使用。
3、然而,这些追求面临某些挑战。首先,用户需求的多样性需要多层次的模型定制。需求的差异会导致模型的多层次变化。虽然用户需求的微小变化可能只需要调整目标模型的参数以获得更好的性能,但任务的重大变更(例如从回归到分类、数据模态变化)可能需要改变模型的输出维度甚至其架构。其次,为了减轻用户负担,解决方案需要既具备一般能力(例如任务理解)又具备精确定制能力,最好无需大量的训练需求。现实世界的情况通常涉及有限或无标注数据,有时仅有简单的任务描述。没有任务理解能力,就可能无法准确捕捉用户需求。此外,大模型虽然能高效理解和处理无需微调的一般任务,但部署需要大量资源。相反,小模型虽然在特定任务中更有效且易于部署,但要达到最佳性能则需大量时间和专业知识进行微调。因此,如何简便高效地提供最佳模型需要进一步考虑。
技术实现思路
1、本发明的目的在于解决现有技术中存在的:1)现有的人工智能模型优化方法需要进行训练/微调,即需要额外的计算资源以及对应的知识技能,不利用人工智能模型推广到普通用户当中,实现模型的定制化;2)现有的参数生成方法以超网络为主,超网络只能生成固定的人工智能模型架构,无法响应用户广泛的需求这两方面的问题,并提供一种基于机器学习的架构无关神经网络参数生成方法及系统。该方法一方面以用户的需求为输入,可以为用户提供定制化的人工智能模型使用体验,极大程度上降低了人工智能模型的使用门槛;另一方面,不同于现有技术,本发明的方法可以快速生成不同架构的人工智能模型。
2、为了实现上述发明目的,本发明具体采用如下技术方案:
3、第一方面,本发明提供了一种基于机器学习的架构无关神经网络参数生成方法,包括以下步骤:
4、s1.获取包含多个任务的机器学习数据集,为每个机器学习数据集构建任务描述,并根据每个机器学习数据集的任务类型构建损失函数,获取与每个机器学习数据集各自适配的人工智能模型,获取每个人工智能模型中各个子模块的命名与各个子模块的参数量大小,每个子模块的命名与参数量大小均为文本格式,将每个子模块的命名与参数量大小进行文本拼接,得到每个子模块的描述信息,将每个机器学习数据集的任务描述与每个机器学习数据集各自对应的子模块的描述信息拼接后,构成每个机器学习数据集的描述信息,将每个机器学习数据集以及每个机器学习数据集各自对应的损失函数、描述信息以及人工智能模型组合在一起构成一个四元组并作为预训练数据库的一个样本,直到所有机器学习数据集均组合完毕,得到完整的预训练数据库;其中,机器学习数据集为文本数据集、图像数据集或者表格数据集,人工智能模型为用于对文本数据集进行分类的文本分类模型、用于对图像数据集进行分类的图像分类模型或者用于对表格数据集进行分类的表格分类模型;
5、s2.从预训练数据库中采样得到一个用于预训练的四元组,获取包含文本编码器和多头解码器的超模型,在用于预训练的四元组上对超模型进行预训练操作,得到预训练好的超模型;其中,用于预训练的四元组由采样得到的机器学习数据集、与采样得到的机器学习数据集对应的损失函数、描述信息以及人工智能模型组成;
6、s3.获取目标任务的描述信息以及用于执行目标任务的目标人工智能模型,将目标任务的描述信息输入到预训练好的超模型中,将预训练好的超模型输出的参数作为目标人工智能模型的参数,将目标人工智能模型的参数添加到目标人工智能模型中,输出参数生成好的目标人工智能模型,用于对文本数据、图像数据或者表格数据进行分类。
7、在上述方案基础上,各步骤可以采用如下优选的具体方式实现。
8、作为上述第一方面的优选,步骤s1中,利用pytorch中的原生方法torch.named_parameters获取人工智能模型各个子模块的命名与子模块的参数量大小。
9、作为上述第一方面的优选,步骤s2中,对超模型进行预训练操作的具体过程如下:
10、s21.在预训练操作的每个迭代轮次中,均将采样得到的描述信息输入到文本编码器中,文本编码器将描述信息编码为隐变量序列;
11、s22.将隐变量序列中的首个元素逐个拼接在隐变量序列中其余元素之前,并将隐变量序列中的首个元素去掉,得到处理后的隐变量序列;
12、s23.将处理后的隐变量序列中的第i个隐变量zi′输入到多头解码器中,得到第i个隐变量对应的基底参数bi和参数掩码mi;
13、s24.利用参数掩码对基底参数进行掩码和选择操作,得到第i个隐变量对应的参数θi:
14、θi=reshape(mask_and_select(mi,bi))
15、其中,mask_and_select表示裁剪函数,reshape表示参数形状调整函数;
16、s25.当处理后的隐变量序列中的各个隐变量依次进行参数生成后,将各个隐变量对应的参数拼接在一起,得到参数向量并作为采样得到的人工智能模型的参数;
17、s26.将参数向量θ1…n带入到采样得到的人工智能模型t中,按照下式计算采样得到的人工智能模型在采样得到的机器学习数据集上的损失l:
18、
19、其中,(x,y)~d表示从采样得到的机器学习数据集d中采样得到输入数据x和标签y,表示取数学期望:l表示用于预训练的四元组中的损失函数;t表示采样得到的人工智能模型;
20、s27.利用损失对超模型的参数进行更新,不断迭代进行预训练,直至达到最大迭代轮次,输出预训练好的超模型。
21、作为上述第一方面的优选,步骤s3中,参数生成好的目标人工智能模型用于在目标任务的机器学习数据集上进行推理以获取结果,或者用于在目标任务的机器学习数据集上进行训练以获取性能更好的目标人工智能模型。
22、第二方面,本发明提供了一种基于机器学习的架构无关神经网络参数生成系统,包括:
23、数据获取模块,用于获取包含多个任务的机器学习数据集,为每个机器学习数据集构建任务描述,并根据每个机器学习数据集的任务类型构建损失函数,获取与每个机器学习数据集各自适配的人工智能模型,获取每个人工智能模型中各个子模块的命名与各个子模块的参数量大小,每个子模块的命名与参数量大小均为文本格式,将每个子模块的命名与参数量大小进行文本拼接,得到每个子模块的描述信息,将每个机器学习数据集的任务描述与每个机器学习数据集各自对应的子模块的描述信息拼接后,构成每个机器学习数据集的描述信息,将每个机器学习数据集以及每个机器学习数据集各自对应的损失函数、描述信息以及人工智能模型组合在一起构成一个四元组并作为预训练数据库的一个样本,直到所有机器学习数据集均组合完毕,得到完整的预训练数据库;其中,机器学习数据集为文本数据集、图像数据集或者表格数据集,人工智能模型为用于对文本数据集进行分类的文本分类模型、用于对图像数据集进行分类的图像分类模型或者用于对表格数据集进行分类的表格分类模型;
24、模型获取模块,用于从预训练数据库中采样得到一个用于预训练的四元组,获取包含文本编码器和多头解码器的超模型,在用于预训练的四元组上对超模型进行预训练操作,得到预训练好的超模型;其中,用于预训练的四元组由采样得到的机器学习数据集、与采样得到的机器学习数据集对应的损失函数、描述信息以及人工智能模型组成;
25、输出模块,用于获取目标任务的描述信息以及用于执行目标任务的目标人工智能模型,将目标任务的描述信息输入到预训练好的超模型中,将预训练好的超模型输出的参数作为目标人工智能模型的参数,将目标人工智能模型的参数添加到目标人工智能模型中,输出参数生成好的目标人工智能模型,用于对文本数据、图像数据或者表格数据进行分类。
26、第三方面,本发明提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述第一方面任一方案所述的基于机器学习的架构无关神经网络参数生成方法。
27、第四方面,本发明提供了一种计算机电子设备,包括存储器和处理器;
28、所述存储器,用于存储计算机程序;
29、所述处理器,用于当执行所述计算机程序时,实现如上述第一方面任一方案所述的基于机器学习的架构无关神经网络参数生成方法。
30、第五方面,本发明提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时,能实现如上述第一方面任一方案所述的基于机器学习的架构无关神经网络参数生成方法。
31、本发明相对于现有技术而言,具有以下有益效果:
32、1)对比一般的机器学习训练范式(全参数微调、lora微调)等,本发明的方法无需对目标人工智能模型进行训练,只需要一轮推断过程即可得到目标人工智能模型参数,效率更高。
33、2)对比一般的超模型方法(参数生成范式),本发明的方法在面对不同的网络架构时,无需调整超模型结构(一般来说生成一种模型就需要一个超模型),可以直接响应广泛的参数生成需求(在生成多种模型参数时只需要一个超模型)。
1.一种基于机器学习的架构无关神经网络参数生成方法,其特征在于,包括以下步骤:
2.如权利要求1所述的基于机器学习的架构无关神经网络参数生成方法,其特征在于,步骤s1中,利用pytorch中的原生方法torch.named_parameters获取人工智能模型各个子模块的命名与子模块的参数量大小。
3.如权利要求1所述的基于机器学习的架构无关神经网络参数生成方法,其特征在于,步骤s2中,对超模型进行预训练操作的具体过程如下:
4.如权利要求1所述的基于机器学习的架构无关神经网络参数生成方法,其特征在于,步骤s3中,参数生成好的目标人工智能模型用于在目标任务的机器学习数据集上进行推理以获取结果,或者用于在目标任务的机器学习数据集上进行训练以获取性能更好的目标人工智能模型。
5.一种基于机器学习的架构无关神经网络参数生成系统,其特征在于,包括:
6.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1~4任一项所述的基于机器学习的架构无关神经网络参数生成方法。
7.一种计算机电子设备,其特征在于,包括存储器和处理器;
8.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时,能实现如1~4任一项所述的基于机器学习的架构无关神经网络参数生成方法。
