掌桥专利:专业的专利平台
掌桥专利
首页

一种基于线性变换的预训练模型微调方法和装置

文献发布时间:2024-04-18 20:01:30


一种基于线性变换的预训练模型微调方法和装置

技术领域

本发明涉及一种预训练模型微调领域,尤其涉及一种基于线性变换的预训练模型微调方法和装置。

背景技术

在人工智能领域中,数据规模和模型尺寸已经迎来了爆炸式的增长,并在大算力和大算法的加持下开发了近百个性能卓越的基础模型。当前的研究和应用范式转变成了‘预训练+微调’解决各种各样的下游任务。

起初,为了解决某个下游任务,研究或工程人员的做法是对预训练模型进行全参数微调(full fine-tuning),即利用下游任务的数据更新预训练模型的全部参数。全参数微调方法能够实现更好的性能指标,如准确率,但是微调后的预训练模型不用再用于其他下游任务,另一方面,但下游任务的数据较少时,全参数微调会出现过拟合问题。因此,在实践中,全参数微调方法往往需要巨大的储存空间。之后,研究人员提出了更方便部署的线性探测方法(linear probing),对不同的下游任务,该方法冻结特征提取的骨干(backbone),只需要调整与任务相关的部分的网络(head)的参数,因此能够实现多个下游任务共用一个骨干,节省了存储成本。但是,线性探测方法相对于全参数微调方法准确率显著降低。

当前,研究人员热衷于开发参数高效的微调策略,希望既能实现与全参数微调相似的准确率,又希望只调整轻微的、极少量的参数,以保证在模型部署时的方便性。为此,领域内相关工作如Adapter、Bias、VPT等方法受到了广泛关注。以VPT为例,对于每一个下游任务,该方法在输入序列中都额外引入N个可学习的token,用于提示预训练模型更好的识别输入图像。

然而,尽管当前已有的参数高效的微调方法实现了较好的准确率,但是,在训练和推理阶段仍然额外引入了一些与下游任务相关的参数,如上述的VPT的例子。尽管数量很少,但是,在模型部署时会带来一定的麻烦。

发明内容

本发明要克服现有技术的上述缺点,通过深入分析预训练数据和下游任务数据的特征分布的不同,提供一种基于线性变换的预训练模型微调方法和装置,解决现有技术中待学习参数多、准确率相对低、以及模型部署时存在的下游任务相关参数无法去除的问题。

本发明冻结预训练模型的骨干部分(backbone),在每一个网络层后增加一项线性变换操作,该操作的目的是为了对齐下游任务数据与预训练数据的特征分布,在下游任务的微调过程中,本发明只微调线性变换的参数(极少)和网络头(head)的参数。在微调之后,本发明通过重参数技术将线性变换的参数融入到骨干的参数上,从而实现在推理阶段无任何额外的参数,方便模型的部署。

为了实现上述目的,本发明提供如下技术方案:

本发明的第一个方面涉及一种基于线性变换的预训练模型微调方法,包括下列步骤:

S1,数据收集及预处理:收集与下游任务的相关图像数据,对图像数据划分训练集、验证集,并进行适当的预处理,包括保持宽高比随机比例缩放、随机裁剪、随机水平翻转、RGB抖动、标签平滑、去均值;

S2,准备预训练模型:选择在ImageNet-1K或者21K数据集上预训练后的主流的神经网络模型,冻结预训练模型的骨干部分(backbone),即对应的网络参数不再更新,根据下游任务的类别数量,修改预训练模型的任务头(head)的输出维度,并对修改后head部分的参数随机初始化;

S3,引入线性变换:在预训练模型的相邻两层间插入额外的线性变换模块,所述线性变换模块的维度与相邻层的输出特征满足向量乘法关系,本发明观察发现预训练数据的特征分布与下游数据的特征分布存在尺度和方向两方面的差异,故线性变换模块的目的是对上一层输出的特征进行缩放和平移,使得预训练模型能够适配下游数据;

S4,模型微调:利用下游任务的数据训练步骤S2中head部分的参数及步骤S3中线性变换模块的参数;

S5,模型重参数:选择在验证集上表现最好的模型并保存模型权重,利用重参数技术,将步骤S3中所引入的线性变换模块的参数融入到预训练模型的backbone参数中;

S6,模型部署:将重参数后的模型部署到终端设备上,终端设备将接收的新的数据,并输入到训练好的模型,得到预测概率向量,进而完成相关下游任务。

进一步地,所述步骤S3中,以transformer作为预训练模型时,记模型的层数为m,模型第l+1层的输入为

其中

进一步地,所述步骤S3中,以CNN作为预训练模型时,仍记模型的层数为m,模型第l+1层的输入为

其中

进一步地,所述步骤S4中,以图像分类作为下游任务时,模型在下游任务上训练的损失为

进一步地,所述步骤S4中,以目标检测作为下游任务时,模型在下游任务上训练的损失为

进一步地,所述步骤S4中,以语义分割作为下游任务时,模型在下游任务上训练的损失为

进一步地,所述步骤S5中,利用重参数技术将线性变换模块的参数

其中,

本发明的第二个方面包括一种基于线性变换的预训练模型微调系统,包括:

数据收集及预处理模块:用于收集与下游任务的相关图像数据,对图像数据划分训练集、验证集,并进行预处理,包括保持宽高比随机比例缩放、随机裁剪、随机水平翻转、RGB抖动、标签平滑、去均值;

准备预训练模型模块:选择在ImageNet-1K或者21K数据集上预训练后的主流的神经网络模型,冻结预训练模型的骨干部分(backbone),即对应的网络参数不再更新,根据下游任务的类别数量,修改预训练模型的任务头(head)的输出维度,并对修改后head部分的参数随机初始化;

线性变换模块:用于在预训练模型的相邻两层间插入额外的线性变换模块,所述线性变换模块的维度与相邻层的输出特征满足向量乘法关系,对上一层输出的特征进行缩放和平移,使得预训练模型能够适配下游数据;

模型微调模块:利用下游任务的数据训练任务头部分的参数及线性变换模块的参数;

模型重参数模块:选择在验证集上表现最好的模型并保存模型权重,利用重参数技术,将线性变换模块所引入的线性变换模块的参数融入到预训练模型的backbone参数中;

模型部署模块:将重参数后的模型部署到终端设备上,终端设备将接收的新的数据,并输入到训练好的模型,进而完成相关下游任务。

本发明的第三个方面包括一种基于线性变换的预训练模型微调装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现本发明的一种基于线性变换的预训练模型微调方法。

本发明的第四个方面包括一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现本发明的一种基于线性变换的预训练模型微调方法。

本发明的技术方案可以应用到多种类型的神经网路模型上,不受列举的模型类型限制。本发明的技术方案可以用于多种类型的任务上,不受列举的任务类型限制。

本发明的创新点是:提出通过添加线性变换模块,以极少的待学习的参数量(相对于预训练模型,只需学习约千分之一的参数)实现了预训练模型的高效微调,并且在推理阶段不需任何额外的参数(只需要更新原有的预训练模型参数,而没有引入新的参数),极大地方便了模型的部署。

本发明的有益效果是:

①在模型微调训练阶段,只引入极少的需要学习的参数,就实现了比现有技术,如full fine-tuning、Adapter、Bias、VPT等方法更高的准确率;

②在推理阶段,通过重参数技术,将训练阶段引入的参数融入到预训练模型的骨干中,从而实现同一个预训练模型可同时用于多个下游任务,解决模型存储的巨大成本问题;

③本发明方法可以用于多种主流的网络架构,包括卷积神经网络、visiontransformer等,也可用于多种预训练方式,包括监督预训练、弱监督预训练、自监督预训练等。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的一种基于线性变换的预训练模型微调方法的流程示意图;

图2为本发明一实施例提供的一种基于线性变换的预训练模型微调方法的特征分布图;

图3为本发明一实施例提供的一种基于线性变换的预训练模型微调方法的线性变换模块示意图;

图4为本发明另一实施例提供的一种基于线性变换的预训练模型微调方法的线性变换模块示意图;

图5为本发明一实施例提供的一种基于线性变换的预训练模型微调装置的结构框图。

图6是本发明一实施例提供的一种基于线性变换的预训练模型微调系统的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。

实施例1

以城市交通公路目标识别为例,需要识别行人、自行车、电动车、货车、公交车和汽车等目标类别,参阅图1,应用本发明的一种基于线性变换的预训练模型微调方法的行人车辆识别方法,包括如下步骤:

S1,数据收集及预处理:通过公路设立的摄像头等图像采集装置,收集与公路目标识别任务的相关图像数据,对图像数据划分训练集、验证集,并进行适当的预处理,包括保持宽高比随机比例缩放、随机裁剪、随机水平翻转、RGB抖动、标签平滑、去均值等;

S2,准备预训练模型:选择主流的在ImageNet-21K数据集上预训练后的神经网络模型,冻结预训练模型的骨干部分(backbone),即对应的网络参数不再更新,根据下游任务的类别数量,修改预训练模型的任务头(head)的输出维度,并对修改后head部分的参数随机初始化;

S3,引入线性变换:在预训练模型的相邻两层间插入额外的线性变换模块,所述线性变换模块的维度与相邻层的输出特征满足向量乘法关系,本发明观察发现预训练数据的特征分布与下游数据的特征分布存在尺度和方向两方面的差异,故线性变换模块的目的是对上一层输出的特征进行缩放和平移,使得预训练模型能够适配下游数据;预训练数据的特征分布与下游任务数据的特征分布请参阅图2;

S4,模型微调:利用下游任务的数据训练S2中head部分的参数及S3中线性变换模块的参数;

S5,模型重参数:选择在验证集上表现最好的模型并保存模型权重,利用重参数技术,将S3中所引入的线性变换模块的参数融入到预训练模型的backbone参数中;

S6,模型部署:将重参数后的模型部署到终端设备上,终端设备将接收的新的数据,并输入到训练好的模型,得到预测概率向量,进而完成公路目标的识别。

S7, 应用步骤S6得到预测概率向量识别行人车辆。具体地,定义行人车辆的类别标签集合,对每一个输入的图像数据,经过步骤S6部署后的模型,得到预测概率向量,计算预测概率向量的最大值的索引,根据该索引在所定义的行人车辆的类别标签集合中查找出对应的类别标签,即完成对输入图像数据的类别识别。

所述步骤S3中,以transformer作为预训练模型,记模型的层数为m,模型第l+1层的输入为

其中

所述步骤S4中,以图像分类作为下游任务,模型在下游任务上训练的损失为

所述步骤S5中,利用重参数技术将线性变换模块的参数

其中,

为了体现本发明方法的显著优势,本发明在主流的评测数据集上对比了多种已有的方法,以ViT-B预训练在ImageNet-21K作为骨干,报告在各个数据集上的分类准确率,结果如表1所示。实验结果表明,本发明方法在多个数据集上显著优于现有方法,包括准确率指标和需要学习的参数指标两方面,表明本发明方法具有‘可学习参数少、准确率高’的有益优势。

表1 微调方法的结果对比,transformer(ViT-B)作为骨干

实施例2

应用本发明的一种基于线性变换的预训练模型微调方法的自然图像识别方法,参阅图1,包括如下步骤:

S1,数据收集及预处理:收集与下游任务的相关图像数据,对图像数据划分训练集、验证集,并进行适当的预处理,包括保持宽高比随机比例缩放、随机裁剪、随机水平翻转、RGB抖动、标签平滑、去均值等;

S2,准备预训练模型:选择主流的在ImageNet-21K数据集上预训练后的神经网络模型,冻结预训练模型的骨干部分(backbone),即对应的网络参数不再更新,根据下游任务的类别数量,修改预训练模型的任务头(head)的输出维度,并对修改后head部分的参数随机初始化;

S3,引入线性变换:在预训练模型的相邻两层间插入额外的线性变换模块,所述线性变换模块的维度与相邻层的输出特征满足向量乘法关系,本发明观察发现预训练数据的特征分布与下游数据的特征分布存在尺度和方向两方面的差异,故线性变换模块的目的是对上一层输出的特征进行缩放和平移,使得预训练模型能够适配下游数据;预训练数据的特征分布与下游任务数据的特征分布请参阅图2;

S4,模型微调:利用下游任务的数据训练S2中head部分的参数及S3中线性变换模块的参数;

S5,模型重参数:选择在验证集上表现最好的模型并保存模型权重,利用重参数技术,将S3中所引入的线性变换模块的参数融入到预训练模型的backbone参数中;

S6,模型部署:将重参数后的模型部署到终端设备上,终端设备将接收的新的数据,并输入到训练好的模型,得到预测概率向量,进而完成相关下游任务。

S7, 应用步骤S6得到预测概率向量识别自然图像。具体地,定义自然图像的类别标签集合,对每一个输入的图像数据,经过步骤S6部署后的模型,得到预测概率向量,计算预测概率向量的最大值的索引,根据该索引在所定义的自然图像的类别标签集合中查找出对应的类别标签,即完成对输入图像数据的类别识别。

所述步骤S3中,以CNN作为预训练模型,记模型的层数为m,模型第l+1层的输入为

其中

所述步骤S4中,以图像分类作为下游任务时,模型在下游任务上训练的损失为

所述步骤S5中,利用重参数技术将线性变换模块的参数

其中,

为了体现本发明方法的显著优势,本发明在主流的评测数据集上,包括CIFAR-100和ImageNet-1K这两种主流的自然图像数据集,对比了多种已有的方法,以ConvNeXt-B预训练在ImageNet-21K作为骨干,报告在各个数据集上的分类准确率,结果如表2所示。实验结果表明,本发明方法对CNN架构仍具有‘可学习参数少、准确率高’的有益优势。

表2 微调方法的结果对比,CNN(ConvNeXt-B)作为骨干

实施例3

应用本发明的一种基于线性变换的预训练模型微调方法的户外自然场景目标检测与分割方法,包括如下步骤:

S1,数据收集及预处理:收集与下游任务的相关图像数据,对图像数据划分训练集、验证集,并进行适当的预处理,包括保持宽高比随机比例缩放、随机裁剪、随机水平翻转、RGB抖动、标签平滑、去均值等;

S2,准备预训练模型:选择主流的在ImageNet-21K数据集上预训练后的神经网络模型,冻结预训练模型的骨干部分(backbone),即对应的网络参数不再更新,根据下游任务的类别数量,修改预训练模型的任务头(head)的输出维度,并对修改后head部分的参数随机初始化;

S3,引入线性变换:在预训练模型的相邻两层间插入额外的线性变换模块,所述线性变换模块的维度与相邻层的输出特征满足向量乘法关系,本发明观察发现预训练数据的特征分布与下游数据的特征分布存在尺度和方向两方面的差异,故线性变换模块的目的是对上一层输出的特征进行缩放和平移,使得预训练模型能够适配下游数据;预训练数据的特征分布与下游任务数据的特征分布请参阅图2;

S4,模型微调:利用下游任务的数据训练S2中head部分的参数及S3中线性变换模块的参数;

S5,模型重参数:选择在验证集上表现最好的模型并保存模型权重,利用重参数技术,将S3中所引入的线性变换模块的参数融入到预训练模型的backbone参数中;

S6,模型部署:将重参数后的模型部署到终端设备上,终端设备将接收的新的数据,并输入到训练好的模型,得到预测概率向量。

S7, 应用步骤S6得到预测概率向量进行户外自然场景目标检测与分割。具体地,定义户外自然场景目标检测与分割的类别标签集合,对每一个输入的图像数据,经过步骤S6部署后的模型,得到图像区域的预测概率向量和边界框,计算预测概率向量的最大值的索引,根据该索引在所定义的户外自然场景的类别标签集合中查找出对应的类别标签,根据预测的边界框在输入图像上绘制出图像区域的边界,即完成对输入图像数据的目标检测和分割。

所述步骤S3中,以transformer作为预训练模型,记模型的层数为m,模型第l+1层的输入为

其中

所述步骤S4中,以目标检测作为下游任务,使用Mask R-CNN作为骨干,模型在下游任务上训练的损失为

所述步骤S4中,以语义分割作为下游任务时,使用UPerNet作为骨干,模型在下游任务上训练的损失为

所述步骤S5中,利用重参数技术将线性变换模块的参数

其中,

为了体现本发明方法的显著优势,本发明在主流的评测数据集上,包括COCO和ADE20K,对比了多种已有的方法,报告在各个数据集上的评测结果,如表3所示。实验结果表明,本发明方法对目标检测、语义分割仍具有‘可学习参数少、准确率高’的有益优势。

表3 微调方法的结果对比,目标检测和语义分割

实施例4

参照图6,本实施例涉及一种基于线性变换的预训练模型微调系统,包括:

数据收集及预处理模块:用于服务端收集与识别任务相关的图像数据,并对图像数据划分训练集、验证集,并进行适当的预处理;

准备预训练模型模块:选择主流的预训练模型,冻结骨干部分,修改预训练模型的任务头的输出维度,并对修改后head部分的参数随机初始化;

线性变换模块:用于在预训练模型的相邻两层间插入额外的线性变换模块;

模型微调模块:利用下游任务的数据训练任务头部分的参数及线性变换模块的参数;

模型重参数模块:利用重参数技术,将线性变换模块的参数融入到相邻层的骨干参数中;

模型部署模块:将重参数后的模型部署到终端设备上,终端设备将接收的新的数据,并输入到训练好的模型,进而完成相关下游任务。

实施例5

本实施例涉及一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种基于线性变换的预训练模型微调方法。

实施例6

本实施例涉及一种基于线性变换的预训练模型微调装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现实施例1的一种基于线性变换的预训练模型微调方法。

如图5所述,在硬件层面,该基于线性变换的预训练模型微调装置包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的数据采集的方法。当然,除了软件实现方式之外,本发明并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

相关技术
  • 一种副车架的前横梁、副车架及副车架总成
  • 副车架安装结构、副车架、副车架总成及车辆
技术分类

06120116556034