首页> 中国专利> 面向多任务的预训练语言模型自动压缩方法及平台

面向多任务的预训练语言模型自动压缩方法及平台

摘要

本发明公开了一种面向多任务的预训练语言模型自动压缩方法及平台。该方法设计一种结构生成器的元网络,基于Transformer层采样的知识蒸馏方法构建知识蒸馏编码向量,利用结构生成器生成与当前输入的编码向量对应的蒸馏结构模型;同时提出伯努利分布采样的方法训练结构生成器;每轮迭代时,利用伯努利分布采样的方式迁移各个编码器单元,组成对应的编码向量;通过改变输入结构生成器的编码向量和小批次的训练数据,联合训练结构生成器和对应的蒸馏结构,可以学得能够为不同蒸馏结构生成权重的结构生成器;同时在已训练好的元学习网络基础上,通过进化算法搜索最优压缩结构,由此得到与任务无关的预训练语言模型的最优通用压缩架构。

著录项

  • 公开/公告号CN112232511A

    专利类型发明专利

  • 公开/公告日2021-01-15

    原文格式PDF

  • 申请/专利权人 之江实验室;

    申请/专利号CN202011470331.3

  • 发明设计人 王宏升;胡胜健;傅家庆;杨非;

    申请日2020-12-15

  • 分类号G06N3/08(20060101);G06N5/04(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人邱启旺

  • 地址 310023 浙江省杭州市余杭区文一西路1818号人工智能小镇10号楼

  • 入库时间 2023-06-19 09:35:27

说明书

技术领域

本发明属于语言模型压缩领域,尤其涉及一种面向多任务的预训练语言模型自动压缩方法及平台。

背景技术

大规模预训练语言模型在自然语言理解和生成任务上都取得了优异的性能,然而,将具有海量参数的预训练语言模型部署到内存有限的设备中仍然面临巨大挑战。在模型压缩领域,已有的语言模型压缩方法都是针对特定任务的语言模型压缩。尽管针对特定任务的知识蒸馏很有效,但是对大模型微调和推理仍费时费力,计算成本也很高。当面向下游其它任务时,使用特定任务知识蒸馏生成的预训练模型仍需要重新微调大模型以及生成相关的大模型知识。

已有的模型压缩中采用的知识蒸馏策略多数为逐层知识蒸馏,即给定一个教师网络和一个学生网络,为了实现对学生网络的监督训练,逐层知识蒸馏的方法是最小化两个网络之间的特征图距离。在训练数据充足时,该方法通常可以取得较好的效果。但是在小样本数据下,训练容易受到过拟合的影响,估计误差显著增大并会逐层传播。因此,小样本情况下进行神经网络压缩的核心挑战是:压缩后的模型很容易在少样本训练实例上过拟合,从而导致推断过程中与原始网络之间存在较大的估计误差。估计误差可能会逐层累积和传播,最终破坏网络输出。

另外,已有的知识蒸馏方法主要是数据驱动的稀疏约束或人工设计的蒸馏策略;考虑到通常一个BERT网络具有12层Transformer单元,每个单元包含8头的自注意力单元;自注意力单元可能的连接方式有上亿种情况,由于受计算资源等限制,人工设计所有可能的蒸馏结构并且寻找最优结构几乎不可能。

发明内容

本发明的目的在于针对现有技术的不足,提供一种面向多任务的预训练语言模型自动压缩方法及平台。

本发明的目的是通过以下技术方案实现的:一种面向多任务的预训练语言模型自动压缩方法,包括三个阶段:

第一阶段,构建基于Transformer层采样的知识蒸馏编码向量:采用伯努利分布对BERT模型的所有Transformer单元进行层采样,生成知识蒸馏编码向量;

第二阶段,训练元学习的知识蒸馏网络:定义搜索空间,将第一阶段构建的知识蒸馏编码向量输入该搜索空间,剔除不符合条件的知识蒸馏编码向量;定义结构生成器,将经过筛选的知识蒸馏编码向量作为输入,输出用于构建蒸馏结构模型的权重矩阵,并生成对应的蒸馏结构模型;训练生成的蒸馏结构模型从而更新结构生成器;

第三阶段,基于进化算法的蒸馏结构模型搜索的过程:将多个满足特定约束的知识蒸馏编码向量输入第二阶段更新后的结构生成器生成对应的权重矩阵,得到多个蒸馏结构模型;评估每个蒸馏结构模型的精度;采用进化算法搜索其中满足特定约束的精度最高的蒸馏结构模型,得到通用压缩架构。

进一步地,所述第一阶段具体为:依次对BERT模型的12层Transformer单元进行伯努利采样生成知识蒸馏编码向量,每一层对应一个随机变量;当随机变量为1的概率大于等于0.5时,知识蒸馏编码向量对应的元素为1,代表当前Transformer单元进行迁移学习;当随机变量为1的概率值小于0.5时,层采样向量对应的元素为0,代表当前Transformer单元不进行迁移学习。

进一步地,所述定义搜索空间具体为:知识蒸馏编码向量中元素为1的数量不少于6。

进一步地,所述定义结构生成器具体为:结构生成器由两个全连接层组成,输入为第一阶段构建的知识蒸馏编码向量,输出为用于生成蒸馏结构模型的权重矩阵。

进一步地,所述训练生成的蒸馏结构模型从而更新结构生成器,包括以下子步骤:

步骤(2.1):将知识蒸馏编码向量输入结构生成器并输出权重矩阵;

步骤(2.2):基于结构生成器输出的权重矩阵构建蒸馏结构模型;

步骤(2.3):联合训练结构生成器和蒸馏结构模型:将训练数据输入步骤(2.2)生成的蒸馏结构模型进行模型训练,且结构生成器一起更新;同时结合伯努利分布采样的方法训练结构生成器。

进一步地,所述步骤(2.2)具体为:根据第一阶段构建的知识蒸馏编码向量,其中每一个元素对应一层Transformer单元,对教师网络的每个Transformer层进行层采样知识蒸馏,使用教师模型中知识蒸馏编码向量对应元素为1的Transformer单元的权重来初始化学生模型迁移的Transformer单元;即每个层采样为1的元素经过结构生成器生成学生模型对应的Transformer单元以及其权重;通过知识蒸馏编码向量将教师模型和学生模型建立一对一的映射关系,根据知识蒸馏编码向量生成对应的蒸馏网络结构。

进一步地,所述结合伯努利分布采样的方法训练结构生成器具体为:利用伯努利分布对各层Transformer单元进行层采样构建不同的知识蒸馏编码向量,用训练数据集进行多次迭代训练,每轮迭代时基于一个知识蒸馏编码向量同时训练结构生成器和蒸馏结构模型,通过改变输入的知识蒸馏编码向量学习得到能够为不同蒸馏结构模型生成权重矩阵的结构生成器。

进一步地,所述第三阶段包括以下子步骤:

步骤(3.1):将知识蒸馏编码向量定义为蒸馏结构模型的基因,随机选取满足特定约束的一系列基因作为初始种群;

步骤(3.2):评估现有种群中各个基因对应的蒸馏结构模型的精度,选取精度较高的前k个基因;

步骤(3.3):利用步骤(3.2)选取的精度较高的前k个基因进行基因重组和基因变异生成新的基因,将新基因加入现有种群中;

步骤(3.4):重复迭代设定轮次的步骤(3.2)~(3.3),选择现有种群中前k个精度较高的基因并生成新基因,最终获得满足特定约束并且精度最高的基因。

进一步地,所述步骤(3.3)中,基因变异是指通过随机改变基因里一部分元素值;基因重组是指随机地将两个父辈的基因进行重组;剔除不满足特定约束的新基因。

一种基于上述面向多任务的预训练语言模型自动压缩方法的平台,包括以下组件:

数据加载组件:用于获取面向多任务的预训练语言模型的训练样本,所述训练样本是满足监督学习任务的有标签的文本样本;

自动压缩组件:用于将面向多任务的预训练语言模型自动压缩,包括知识蒸馏向量编码模块、蒸馏网络生成模块、结构生成器和蒸馏网络联合训练模块、蒸馏网络搜索模块和特定任务微调模块;

知识蒸馏向量编码模块包括Transformer的层采样向量;前向传播过程中,将知识蒸馏编码向量输入结构生成器,生成对应结构的蒸馏网络和结构生成器的权重矩阵;

蒸馏网络生成模块是基于结构生成器构建与当前输入的知识蒸馏编码向量对应的蒸馏网络,调整结构生成器输出的权重矩阵的形状,使其与知识蒸馏编码向量对应的蒸馏结构的输入输出的编码器单元数目一致;

结构生成器和蒸馏网络联合训练模块是端到端的训练结构生成器,具体地,将基于Transformer层采样的知识蒸馏编码向量和一个小批次的训练数据输入蒸馏网络;更新蒸馏结构的权重和结构生成器的权重矩阵;

蒸馏网络搜索模块是为了搜索出满足特定约束条件的最高精度的蒸馏网络,提出进化算法搜索满足特定约束条件的最高精度的蒸馏网络;将知识蒸馏编码向量输入训练好的结构生成器,生成对应蒸馏网络的权重,在验证集上对蒸馏网络进行评估,获得对应蒸馏网络的精度;在元学习蒸馏网络中采用的进化搜索算法中,每个蒸馏网络是由包含基于Transformer层采样的知识蒸馏编码向量生成,所以将知识蒸馏编码向量定义为蒸馏网络的基因;在满足特定约束条件下,首先选取一系列知识蒸馏编码向量作为蒸馏网络的基因,通过在验证集上评估获得对应蒸馏网络的精度;然后,选取精度较高的前k个基因,采用基因重组和变异生成新的基因;通过进一步重复前k个最优基因选择的过程和新基因生成的过程进行迭代,获得满足约束条件并且精度最高的基因;

特定任务微调模块是在所述自动压缩组件生成的预训练模型蒸馏网络上构建下游任务网络,利用蒸馏网络的特征层和输出层对下游任务场景进行微调,输出最终微调好的学生模型,即登陆用户需求的包含下游任务的预训练语言模型压缩模型;将所述压缩模型输出到指定的容器,可供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型大小的对比信息;

推理组件:登陆用户从所述平台获取预训练压缩模型,用户利用所述自动压缩组件输出的压缩模型在实际场景的数据集上对登陆用户上传的自然语言处理下游任务的新数据进行推理;并在所述平台的压缩模型推理页面呈现压缩前后推理速度的对比信息。

本发明的有益效果是:首先,本发明研究基于元学习的知识蒸馏生成多种预训练语言模型的通用压缩架构;其次,在已训练好的元学习网络基础上,通过进化算法搜索最优压缩结构,由此得到与任务无关的预训练语言模型的最优通用压缩架构。利用本发明所述的面向多任务的预训练语言模型自动压缩平台,压缩生成面向多任务的预训练语言模型的通用架构,充分利用已压缩好的模型架构提高下游任务的压缩效率,并且可将大规模自然语言处理模型部署在内存小、资源受限等端侧设备,推动了通用深度语言模型在工业界的落地进程。

附图说明

图1是本发明压缩方法结合特定任务的整体架构图;

图2是元学习的知识蒸馏网络的训练流程图;

图3是基于结构生成器构建蒸馏网络的架构图;

图4是结构生成器和蒸馏网络联合训练过程图;

图5是基于进化算法的蒸馏网络搜索架构图。

具体实施方式

受神经网络架构搜索的启发,尤其是在少样本的情况下,自动机器学习能够基于一个反馈回路以迭代方式进行自动知识蒸馏,本发明研究基于元学习的知识蒸馏生成多种预训练语言模型的通用压缩架构。具体地,本发明首先构建一种基于Transformer层采样的知识蒸馏编码向量,在不同层级上蒸馏大模型的知识结构。设计一种结构生成器的元网络,利用该结构生成器生成与当前输入的编码向量对应的蒸馏结构模型。同时,提出伯努利分布采样的方法训练结构生成器。每轮迭代时,利用伯努利分布采样产生迁移的各个编码器单元,组成对应的编码向量。通过改变输入结构生成器的编码向量和小批次的训练数据,联合训练结构生成器和对应的蒸馏结构,可以学得能够为不同蒸馏结构生成权重的结构生成器。同时,在已训练好的元学习网络基础上,通过进化算法搜索最优压缩结构,由此得到与任务无关的预训练语言模型的最优通用压缩架构。本发明解决少样本数据下BERT模型压缩过程中过拟合学习和压缩模型泛化能力低的问题,深入地探索大规模深度语言模型在少样本条件下的语言理解的可行性和关键技术,提高压缩模型面向多种下游任务使用过程中的灵活性和有效性。与已有的知识蒸馏方法相比,元学习的知识蒸馏能够把人力彻底从繁琐的超参数调优中解放出来,同时允许利用多种目标度量方法直接优化压缩模型。与其它自动机器学习方法相比,元学习的知识蒸馏能够很容易地在搜索所需压缩结构时实施条件约束,无需手动调整强化学习的超参数。本发明压缩方法的应用技术路线如图1所示,基于大规模文本数据集,研究基于元学习的知识蒸馏以及基于进化算法的蒸馏网络自动搜索,通过元蒸馏学习将面向多任务的大规模预训练语言模型自动压缩生成满足不同硬约束条件(如浮点数运算次数)且与任务无关的通用架构;使用该通用架构时,在元蒸馏学习网络的基础上构建下游任务网络,输入下游任务数据集,仅微调特定的下游任务,节省计算成本,提高效率。

本发明一种面向多任务的预训练语言模型自动压缩方法,整个过程分为三个阶段:第一个阶段是构建基于Transformer层采样的知识蒸馏编码向量;第二个阶段是训练元学习的知识蒸馏网络;第三个阶段是基于进化算法搜索最优压缩结构;具体为:

第一阶段:构建基于Transformer层采样的知识蒸馏编码向量。采用伯努利分布对BERT模型的所有Transformer单元进行层采样,生成一个层采样向量,即知识蒸馏编码向量。

具体地,假设当前考虑迁移第

第二阶段:训练元学习的知识蒸馏网络。如图2所示,定义搜索空间,将第一阶段构建的知识蒸馏编码向量输入该搜索空间,剔除不符合约束条件的向量;定义结构生成器,将经过筛选的知识蒸馏编码向量作为输入,输出用于构建蒸馏网络的权重矩阵,并生成对应的蒸馏结构模型;采用批数据集训练生成的蒸馏结构并更新蒸馏结构从而更新结构生成器;最终输出迭代更新后结构生成器输出的权重。

定义搜索空间:为了防止层采样Transformer单元迁移(

s.t. sum(

即每生成一个知识蒸馏网络结构时,对BERT模型的所有Transformer单元的层采样阶段构建约束条件,使得知识蒸馏编码向量中元素为1的数量不少于6,否则重新进行层采样。

定义结构生成器:结构生成器是一个元网络,由两个全连接层组成;输入为第一阶段构建的知识蒸馏编码向量,输出为用于生成蒸馏结构模型的权重矩阵。

训练结构生成器:包括以下子步骤:

步骤一:前向传播过程中,将知识蒸馏编码向量输入结构生成器并输出权重矩阵。

步骤二:如图3所示为基于结构生成器构建蒸馏结构模型的过程:

根据第一阶段构建的知识蒸馏编码向量,其中每一个元素

步骤三:如图4所示为联合训练结构生成器和蒸馏结构模型的过程:

将一个小批次的训练数据输入步骤二生成的蒸馏结构模型进行模型训练,蒸馏结构模型更新参数(权重矩阵)后,结构生成器根据更新后的参数也进行更新;即反向传播的过程中,蒸馏结构模型和结构生成器一起更新;结构生成器输出的权重可以使用链式法则计算,因此,可以端到端的训练结构生成器。

同时,提出伯努利分布采样的方法训练结构生成器,具体为:利用伯努利分布对各层Transformer单元进行层采样构建不同的知识蒸馏编码向量,用同一个训练数据集进行多次迭代训练,每轮迭代时基于一个知识蒸馏编码向量同时训练结构生成器和蒸馏结构模型,通过改变输入的知识蒸馏编码向量学习得到能够为不同蒸馏结构模型生成权重矩阵的结构生成器。

而且需要调整结构生成器输出的权重矩阵的形状,使其与知识蒸馏编码向量对应的蒸馏结构的输入输出的编码器单元数目一致。通过层采样所得的编码向量保持一致的,具体地,根据编码向量中元素为1的Transformer单元的数目和位置来调整结构生成器输出的权重矩阵的形状。

第三阶段:如图5所示为基于进化算法的蒸馏网络搜索的过程:

在第二阶段训练好的元学习的知识蒸馏网络基础上,将多个满足特定约束条件的知识蒸馏编码向量输入结构生成器生成对应的权重矩阵,得到多个蒸馏结构模型;在验证集上对每个蒸馏结构模型进行评估,获得对应的精度;采用进化算法搜索其中满足特定约束条件(如浮点数运算次数)的精度最高的蒸馏结构模型,由此得到与任务无关的预训练语言模型的通用压缩架构,如图5中方框标记的Network_2。进化搜索算法的具体步骤如下:

步骤一、每个蒸馏结构模型是由基于Transformer层采样的知识蒸馏编码向量生成的,所以将知识蒸馏编码向量定义为蒸馏结构模型的基因G,随机选取满足约束条件C的一系列基因作为初始种群。

步骤二、评估现有种群中各个基因

步骤三、利用步骤二选取的精度最高的前k个基因进行基因重组和基因变异生成新的基因,将新基因加入现有种群中。基因变异是指通过随机改变基因里一部分元素值来进行变异;基因重组是指随机地将两个父辈的基因进行重组产生后代;而且可以很容易地通过消除不合格的基因来加强约束C。

步骤四、重复迭代N轮步骤二和步骤三,选择现有种群中前k个精度最高的基因并生成新基因,直到获得满足约束条件C并且精度最高的基因。

本发明一种面向多任务的预训练语言模型自动压缩平台,包括以下组件:

数据加载组件:用于获取登陆用户上传的待压缩的包含具体自然语言处理下游任务的BERT模型和面向多任务的预训练语言模型的训练样本;所述训练样本是满足监督学习任务的带标签的文本样本。

自动压缩组件:用于将面向多任务的预训练语言模型自动压缩,包括知识蒸馏向量编码模块、蒸馏网络生成模块、结构生成器和蒸馏网络联合训练模块、蒸馏网络搜索模块、特定任务微调模块。

知识蒸馏向量编码模块包括Transformer的层采样向量。前向传播过程中,将蒸馏网络编码向量输入结构生成器,生成对应结构的蒸馏网络和结构生成器的权重矩阵。

蒸馏网络生成模块是基于结构生成器构建与当前输入的编码向量对应的蒸馏网络,调整结构生成器输出的权重矩阵的形状,使其与编码向量对应的蒸馏结构的输入输出的编码器单元数目一致。

结构生成器和蒸馏网络联合训练模块是端到端的训练结构生成器,具体地,将基于Transformer层采样的知识蒸馏编码向量和一个小批次的训练数据输入蒸馏网络。更新蒸馏结构的权重和结构生成器的权重矩阵。

蒸馏网络搜索模块是为了搜索出满足特定约束条件的最高精度的蒸馏网络,提出进化算法搜索满足特定约束条件的最高精度的蒸馏网络。将网络编码向量输入训练好的结构生成器,生成对应蒸馏网络的权重,在验证集上对蒸馏网络进行评估,获得对应蒸馏网络的精度。在元学习蒸馏网络中采用的进化搜索算法中,每个蒸馏网络是由包含基于Transformer层采样的编码向量编码生成,所以将蒸馏网络编码向量定义为蒸馏网络的基因。在满足特定约束条件下,首先选取一系列蒸馏网络编码向量作为蒸馏网络的基因,通过在验证集上评估获得对应蒸馏网络的精度。然后,选取精度最高的前k个基因,采用基因重组和变异生成新的基因。通过进一步重复前k个最优基因选择的过程和新基因生成的过程进行迭代,获得满足约束条件并且精度最高的基因。

特定任务微调模块是在所述自动压缩组件生成的预训练模型蒸馏网络上构建下游任务网络,利用蒸馏网络的特征层和输出层对下游任务场景进行微调,输出最终微调好的学生模型,即登陆用户需求的包含下游任务的预训练语言模型压缩模型。将所述压缩模型输出到指定的容器,可供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型大小的对比信息。

推理组件:登陆用户从所述平台获取预训练压缩模型,用户利用所述自动压缩组件输出的压缩模型在实际场景的数据集上对登陆用户上传的自然语言处理下游任务的新数据进行推理。并在所述平台的压缩模型推理页面呈现压缩前后推理速度的对比信息。

登陆用户可直接下载本发明平台提供的训练好的预训练语言模型,根据用户对具体某个自然语言处理下游任务的需求,在所述平台生成的已压缩的预训练模型架构基础上构建下游任务网络并进行微调,最后部署在终端设备。也可以直接在所述平台上对自然语言处理下游任务进行推理。

下面将以电影评论进行情感分类任务对本发明的技术方案做进一步的详细描述。

通过所述平台的数据加载组件获取登陆用户上传的单个句子的文本分类任务的BERT模型和情感分析数据集SST-2;

通过所述平台的自动压缩组件,生成面向多任务的BERT预训练语言模型;

通过所述平台加载自动压缩组件生成的BERT预训练模型,在所述生成的预训练模型上构建文本分类任务的模型;

基于所述自动压缩组件的特定任务微调模块所得的学生模型进行微调,利用自动压缩组件生成的BERT预训练模型的特征层和输出层对下游文本分类任务场景进行微调,最终,平台输出登陆用户需求的包含文本分类任务的BERT模型的压缩模型。

将所述压缩模型输出到指定的容器,可供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型大小的对比信息,压缩前模型大小为110M,压缩后为56M,压缩了49%。如下表1所示。

表1:文本分类任务BERT模型压缩前后对比信息

通过所述平台的推理组件,利用所述平台输出的压缩模型对登陆用户上传的SST-2测试集数据进行推理,并在所述平台的压缩模型推理页面呈现压缩后比压缩前推理速度加快2.01倍,并且推理精度从压缩前的91.5%提升为92.0%。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号