CN112241455B - 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台 - Google Patents

基于多层级知识蒸馏预训练语言模型自动压缩方法及平台 Download PDF

Info

Publication number
CN112241455B
CN112241455B CN202011498328.2A CN202011498328A CN112241455B CN 112241455 B CN112241455 B CN 112241455B CN 202011498328 A CN202011498328 A CN 202011498328A CN 112241455 B CN112241455 B CN 112241455B
Authority
CN
China
Prior art keywords
distillation
knowledge
network
knowledge distillation
compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011498328.2A
Other languages
English (en)
Other versions
CN112241455A (zh
Inventor
王宏升
王恩平
俞再亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202011498328.2A priority Critical patent/CN112241455B/zh
Priority to JP2022566730A priority patent/JP7283835B2/ja
Priority to GB2214215.2A priority patent/GB2610319A/en
Priority to PCT/CN2020/142577 priority patent/WO2022126797A1/zh
Publication of CN112241455A publication Critical patent/CN112241455A/zh
Application granted granted Critical
Publication of CN112241455B publication Critical patent/CN112241455B/zh
Priority to US17/555,535 priority patent/US11501171B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Feedback Control In General (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于多层级知识蒸馏的预训练语言模型自动压缩方法及平台,所述方法包括如下步骤:步骤一、构建多层级知识蒸馏,在自注意力单元、隐藏层状态、嵌入层三个不同层级上蒸馏大模型的知识结构;步骤二、训练元学习的知识蒸馏网络,生成多种预训练语言模型的通用压缩架构;步骤三、基于进化算法搜索最佳压缩结构。首先,研究基于元学习的知识蒸馏生成多种预训练语言模型的通用压缩架构;其次,在已训练好的元学习网络基础上,通过进化算法搜索最佳压缩结构,由此得到与任务无关的预训练语言模型的最优通用压缩架构。

Description

基于多层级知识蒸馏预训练语言模型自动压缩方法及平台
技术领域
本发明属于语言模型压缩领域,尤其涉及一种基于多层级知识蒸馏的预训练语言模型自动压缩方法及平台。
背景技术
大规模预训练语言模型在自然语言理解和生成任务上都取得了优异的性能,然而,将具有海量参数的预训练语言模型部署到内存有限的设备中仍然面临巨大挑战。在模型压缩领域,已有的语言模型压缩方法都是针对特定任务的语言模型压缩。面向下游其它任务时,使用特定任务知识蒸馏生成的预训练模型仍需要重新微调大模型以及生成相关的大模型知识。大模型微调费时费力,计算成本也很高。为了提高压缩模型面向多种下游任务使用过程中的灵活性和有效性,研究与任务无关的预训练语言模型的通用压缩架构。而且,已有的知识蒸馏方法主要是人工设计的知识蒸馏策略。由于受计算资源等限制,人工设计所有可能的蒸馏结构并且寻找最优结构几乎不可能。受神经网络架构搜索的启发,尤其是在少样本的情况下,本发明基于多层级知识蒸馏生成面向多任务的预训练语言模型的通用压缩架构。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于多层级知识蒸馏的预训练语言模型自动压缩方法及平台。本发明首先构建一种多层级的知识蒸馏,在不同层级上蒸馏大模型的知识结构。而且,引入元学习,生成多种预训练语言模型的通用压缩架构。具体地,设计一种结构生成器的元网络,基于多层级知识蒸馏方法构建知识蒸馏编码向量,利用该结构生成器生成与当前输入的编码向量对应的蒸馏结构模型。同时,提出伯努利分布采样的方法训练结构生成器。每轮迭代时,利用伯努利分布采样各个编码器迁移的自注意力单元,组成对应的编码向量。通过改变输入结构生成器的编码向量和小批次的训练数据,联合训练结构生成器和对应的蒸馏结构,可以学得能够为不同蒸馏结构生成权重的结构生成器。同时,在已训练好的元学习网络基础上,通过进化算法搜索最佳压缩结构,由此得到与任务无关的预训练语言模型的最优通用压缩架构。
本发明的目的是通过以下技术方案实现的:
一种基于多层级知识蒸馏的预训练语言模型自动压缩方法,包括如下步骤:
步骤一、构建多层级知识蒸馏,在自注意力单元、隐藏层状态、嵌入层三个不同层级上蒸馏大模型的知识结构;
步骤二、训练元学习的知识蒸馏网络,生成多种预训练语言模型的通用压缩架构;
步骤三、基于进化算法搜索最优压缩结构。
进一步的,步骤二中设计一种结构生成器的元网络,基于步骤一的多层级知识蒸馏构建知识蒸馏编码向量,利用结构生成器生成与当前输入的编码向量对应的蒸馏结构模型;同时,采用伯努利分布采样的方法训练结构生成器,每轮迭代时,利用伯努利分布采样各个编码器迁移的自注意力单元,组成对应的编码向量;通过改变输入结构生成器的编码向量和小批次的训练数据,联合训练结构生成器和对应的蒸馏结构,得到为不同蒸馏结构生成权重的结构生成器。
进一步的,步骤三中在已训练好的元学习网络基础上,通过进化算法搜索最优压缩架构,得到与任务无关的预训练语言模型的最优通用压缩架构。
进一步的,步骤一中将自注意力分布知识、隐藏状态知识和嵌入层知识编码为一个蒸馏网络,采用知识蒸馏实现大模型向小模型的压缩。
进一步的,步骤一中包括自注意力知识蒸馏、隐藏层状态知识蒸馏和嵌入层知识蒸馏。
进一步的,步骤二中所述结构生成器的元网络,由两个全连接层组成,输入一个自注意力知识蒸馏编码向量,输出结构生成器的权重矩阵;
结构生成器的训练过程如下:
步骤1:构造知识蒸馏编码向量,包括层采样向量、多头剪枝向量、隐藏层降维向量和嵌入层降维向量;
步骤2: 基于结构生成器构建蒸馏网络架构,利用该结构生成器构建与当前输入的编码向量对应的蒸馏结构模型,调整结构生成器输出的权重矩阵的形状,与自注意力编码向量对应的蒸馏结构的输入输出的自注意力单元数目一致;
步骤3:联合训练结构生成器和蒸馏结构模型:通过伯努利分布采样的方法训练结构生成器,通过改变输入结构生成器的自注意力编码向量和一个小批次的训练数据,联合训练结构生成器和对应的蒸馏结构,可以学得能够为不同蒸馏结构生成权重的结构生成器。
进一步的,步骤三中,将网络编码向量输入训练好的结构生成器,生成对应蒸馏网络的权重,在验证集上对蒸馏网络进行评估,获得对应蒸馏网络的精度;具体如下:
满足特定约束条件下,首先选取一系列蒸馏网络编码向量作为蒸馏网络的基因,通过在验证集上评估获得对应蒸馏网络的精度;然后,选取精度最高的前k个基因,采用基因重组和变异生成新的基因,通过进一步重复前k个最优基因选择的过程和新基因生成的过程来迭代获得满足约束条件并且精度最高的基因。
进一步的,所述进化算法的具体步骤如下:
步骤一、将知识蒸馏编码向量定义为蒸馏结构模型的基因G,随机选取满足约束条件C的一系列基因作为初始种群;
步骤二、评估现有种群中各个基因G i 对应的蒸馏结构模型在验证集上的推理精度accuracy,选取精度最高的前k个基因;
步骤三、利用步骤二选取的精度最高的前k个基因进行基因重组和基因变异生成新的基因,将新基因加入现有种群中;
步骤四、重复迭代N轮步骤二和步骤三,选择现有种群中前k个精度最高的基因并生成新基因,直到获得满足约束条件C并且精度最高的基因。
一种基于多层级知识蒸馏的预训练语言模型自动压缩平台,包括如下组件:
数据加载组件:用于获取登陆用户上传的待压缩的包含具体自然语言处理下游任务的BERT模型和面向多任务的预训练语言模型的训练样本,所述训练样本是满足监督学习任务的带标签的文本样本;
自动压缩组件:用于将面向多任务的预训练语言模型自动压缩,包括知识蒸馏向量编码模块、蒸馏网络生成模块、结构生成器和蒸馏网络联合训练模块、蒸馏网络搜索模块、特定任务微调模块;
所述知识蒸馏向量编码模块包括 Transformer 的层采样向量、自注意力单元的多头剪枝向量、隐藏层降维向量、嵌入层降维向量,前向传播过程中,将蒸馏网络编码向量输入结构生成器,生成对应结构的蒸馏网络和结构生成器的权重矩阵;
所述蒸馏网络生成模块基于结构生成器构建与当前输入的编码向量对应的蒸馏网络,调整结构生成器输出的权重矩阵的形状,使其与自注意力编码向量对应的蒸馏结构的输入输出的自注意力单元数目一致;
结构生成器和蒸馏网络联合训练模块端到端地训练结构生成器,将多层级知识蒸馏编码向量和小批次的训练数据输入蒸馏网络,更新蒸馏结构的权重和结构生成器的权重矩阵;
所述蒸馏网络搜索模块采用进化算法搜索满足特定约束条件的最高精度的蒸馏网络;
所述特定任务微调模块是在所述自动压缩组件生成的预训练模型蒸馏网络上构建下游任务网络,利用蒸馏网络的特征层和输出层对下游任务场景进行微调,输出最终微调好的学生模型,即登陆用户需求的包含下游任务的预训练语言模型压缩模型,将所述压缩模型输出到指定的容器,供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型大小的对比信息;
推理组件:登陆用户从所述平台获取预训练压缩模型,利用所述自动压缩组件输出的压缩模型在实际场景的数据集上对登陆用户上传的自然语言处理下游任务的新数据进行推理。并在所述平台的压缩模型推理页面呈现压缩前后推理速度的对比信息。
进一步的,登陆用户可直接下载训练好的预训练语言模型,根据用户对具体某个自然语言处理下游任务的需求,在所述平台生成的已压缩的预训练模型架构基础上构建下游任务网络并进行微调,最后部署在终端设备,或直接在所述平台上对自然语言处理下游任务进行推理。
本发明的有益效果是:本发明的基于多层级知识蒸馏的预训练语言模型自动压缩方法及平台法及平台,首先,研究基于元学习的知识蒸馏生成多种预训练语言模型的通用压缩架构;其次,在已训练好的元学习网络基础上,通过进化算法搜索最佳压缩结构,由此得到与任务无关的预训练语言模型的最优通用压缩架构。
本发明的基于多层级知识蒸馏的预训练语言模型自动压缩平台,压缩生成面向多任务的预训练语言模型的通用架构,充分利用已压缩好的模型架构提高下游任务的压缩效率,并且可将大规模自然语言处理模型部署在内存小、资源受限等端侧设备,推动了通用深度语言模型在工业界的落地进程。
附图说明
图1是基于多层级知识蒸馏的预训练语言模型自动压缩平台的整体架构图。
图2是多层级知识蒸馏示意图。
图3是结构生成器的训练流程图。
图4是编码器模块的隐藏层和输入的嵌入层的降维结构示意图。
图5是基于结构生成器构建蒸馏网络的架构图。
图6是结构生成器和蒸馏网络联合训练过程流程图。
图7是基于进化算法的蒸馏网络搜索架构示意图。
具体实施方式
下面结合附图对本发明作进一步说明。
如图1所示,本发明包括基于元学习的知识蒸馏以及基于进化算法的蒸馏网络自动搜索。将面向多任务的大规模预训练语言模型自动压缩生成满足不同硬约束条件(如,浮点数运算次数),与任务无关的通用架构。
具体方案如下:本发明的基于多层级知识蒸馏的预训练语言模型自动压缩方法整个过程分为三个阶段,第一个阶段是构建多层级的知识蒸馏,在自注意力单元、隐藏层状态、嵌入层三个不同层级上蒸馏大模型的知识结构;第二个阶段是训练元学习的知识蒸馏网络,生成多种预训练语言模型的通用压缩架构。具体地,设计一种结构生成器的元网络,基于第一阶段提出的多层级知识蒸馏方法构建知识蒸馏编码向量,利用结构生成器生成与当前输入的编码向量对应的蒸馏结构模型。同时,提出伯努利分布采样的方法训练结构生成器。每轮迭代时,利用伯努利分布采样各个编码器迁移的自注意力单元,组成对应的编码向量。通过改变输入结构生成器的编码向量和小批次的训练数据,联合训练结构生成器和对应的蒸馏结构,可以学得能够为不同蒸馏结构生成权重的结构生成器;第三个阶段是基于进化算法搜索最佳压缩结构,在已训练好的元学习网络基础上,通过进化算法搜索最优压缩架构,由此得到与任务无关的预训练语言模型的最优通用压缩架构。具体过程如下:
第一阶段:多层级知识蒸馏
本发明将自注意力分布知识、隐藏状态知识和嵌入层知识编码为一个蒸馏网络,如图2
所示。采用知识蒸馏实现大模型向小模型的压缩,并最大程度地将大模型的自注意力知识迁移给小模型。
Figure 535549DEST_PATH_IMAGE001
. 自注意力知识蒸馏。Transformer 层蒸馏包括基于自注意力知识蒸馏和基于 隐藏层状态知识蒸馏,其中如图2 所示。基于自注意力的蒸馏能够关注丰富的语言知识。这 些大量的语言知识包括自然语言理解必要的语义和关联的信息。因此,提出基于自注意力 知识蒸馏,鼓励将丰富的教师模型的知识迁移到学生模型。
注意力函数是由 queries、keys 和 values 三个矩阵计算所得,分别表示为矩阵Q、矩阵 K 和矩阵 V。自注意力函数定义如下:
Figure 966530DEST_PATH_IMAGE002
, (1)
Figure 63799DEST_PATH_IMAGE003
,
其中,
Figure 631047DEST_PATH_IMAGE004
是矩阵K的维度,是一个缩放因子。
Figure 788359DEST_PATH_IMAGE005
表示自注意力矩阵,由矩阵Q和矩阵K 通过点积操作计算而得。最终自注意力函数
Figure 706636DEST_PATH_IMAGE006
的输出作为矩阵 V 的一个权 重和,权重是由对矩阵 V 的每列进行
Figure 342017DEST_PATH_IMAGE007
操作计算而得。自注意力矩阵A可以关注大 量的语言知识,因此基于自注意力蒸馏在知识蒸馏中起到很重要的作用。多头注意力是将 来自不同特征子空间的注意力头按如下方式拼接所得:
Figure 826088DEST_PATH_IMAGE008
(2)
其中,h是注意力头的数量,
Figure 154301DEST_PATH_IMAGE009
表示第i个注意力头,是由不同特征子空间的
Figure 294295DEST_PATH_IMAGE010
函数计算而得,
Figure 998946DEST_PATH_IMAGE011
表示拼接,其中 W 是一个线性变换矩阵。
学生模型学习模仿教师网络的多头注意力知识,其中损失函数定义如下:
Figure 540786DEST_PATH_IMAGE012
(3)
其中,
Figure 39900DEST_PATH_IMAGE013
是自注意力头的数量,
Figure 667191DEST_PATH_IMAGE015
表示教师或学生模型第i个注意力头对 应的自注意力矩阵,R表示实数,l表示当前层输入的大小,L是输入文本的长度,
Figure 644374DEST_PATH_IMAGE016
是均 方差损失函数。值得注意的是,这里使用注意力矩阵
Figure 46580DEST_PATH_IMAGE017
,而不是
Figure 982175DEST_PATH_IMAGE007
的输出
Figure 96761DEST_PATH_IMAGE018
Figure 877635DEST_PATH_IMAGE019
. 隐藏层状态知识蒸馏。除了基于自注意力知识蒸馏,本申请还基于隐藏层状态 知
识蒸馏,即对 Transformer 层输出的知识进行迁移。隐藏层状态知识蒸馏的损失函数如下:
Figure 394067DEST_PATH_IMAGE020
(4)
其中,矩阵
Figure 234985DEST_PATH_IMAGE021
Figure 836867DEST_PATH_IMAGE022
分别指学生和教师网络的隐藏状态,标量 值
Figure 421432DEST_PATH_IMAGE023
Figure 792371DEST_PATH_IMAGE024
分别表示教师和学生模型隐藏层的大小,矩阵
Figure 804189DEST_PATH_IMAGE025
是一个可学习的线性 变换矩阵,将学生网络的隐藏层状态转换为与教师网络的隐藏层状态相同的特征空间。
Figure 627789DEST_PATH_IMAGE026
. 嵌入层知识蒸馏。本申请同时采用了基于嵌入层知识蒸馏,与基于隐藏状态知 识蒸馏类似,定义为:
Figure 16045DEST_PATH_IMAGE027
, (5)
其中,矩阵
Figure 241490DEST_PATH_IMAGE028
Figure 424209DEST_PATH_IMAGE029
分别指学生和教师网络的嵌入层。在本申请中,嵌入层矩阵 的形状与隐藏层状态矩阵相同。矩阵
Figure 684DEST_PATH_IMAGE030
是一个线性变换矩阵。
第二阶段:元学习的知识蒸馏
设计一个结构生成器,结构生成器是一个元网络,由两个全连接层组成。图3显示了结构生成器的训练过程。输入一个自注意力知识蒸馏编码向量,输出结构生成器的权重矩阵。
结构生成器的训练过程如下:
步骤一:构造知识蒸馏编码向量。前向传播过程中,将蒸馏网络编码向量输入结构生成器,输出结构生成器的权重矩阵。蒸馏网络编码向量由 Transformer 层采样向量、多头注意力剪枝向量、隐藏层降维向量和嵌入层降维向量组成。蒸馏网络编码向量的具体方案如下:
Figure 927052DEST_PATH_IMAGE031
. 层采样向量。层采样阶段,首先采用伯努利分布对BERT的 Transformer 层数 进行层采样,生成一个层采样向量。具体地,假设当前考虑迁移第i个 Transformer 模块, Xi是一个独立的伯努利随机变量,
Figure 7003DEST_PATH_IMAGE032
为1(或0)的概率为p(或1-p)。
Figure 626203DEST_PATH_IMAGE033
(6)
利用随机变量X依次对BERT的12个 Transformer 单元进行伯努利采样,生成一个 由12个0或1元素组成的向量。当随机变量
Figure 424395DEST_PATH_IMAGE032
为1的概率值大于等于0.5时,层采样向量对应 的元素为1,代表当前 Transformer 模块进行迁移学习;当随机变量
Figure 888875DEST_PATH_IMAGE032
为1的概率值小于 0.5时时,层采样向量对应的元素为0,则代表当前 Transformer 模块不进行迁移学习。
利用以上伯努利采样方式对BERT包含的所有Transformer层依次进行层采样,组成网络编码向量中的层采样向量:
Figure 88912DEST_PATH_IMAGE034
(7)
值得注意的是,
Figure 879013DEST_PATH_IMAGE035
一共有12个Transformer模块,为了防止层采样 Transformer 模块迁移的数量(指层采样向量中元素为1的数量)过少,提出增加层采样约 束条件,即每生成一个蒸馏网络结构时,对BERT的所有Transformer层进行层采样阶段,构 建约束条件,使得最终层采样所得向量中元素为1的数量不小于6,否则重新进行层采样。
此时,对Transformer进行知识蒸馏时,通过网络编码向量中的层采样向量,将教师模型和学生模型建立一对一的映射关系,之后根据网络编码向量中的层采样向量生成对应的蒸馏网络结构。为了加速整个训练过程,使用教师模型中层采样向量对应元素为1的Transformer 的权重来初始化学生模型迁移的 Transformer 模块。
Figure 898922DEST_PATH_IMAGE036
. 多头剪枝向量。每个 Transformer 模块由多头注意力单元组成。受通道剪枝 的启发,本申请提出基于多头注意力单元的多头剪枝。每次生成一个蒸馏网络结构时,生成 一个多头剪枝编码向量,表示当前迁移的所有Transformer 层中进行自注意力知识迁移的 注意力头的数量。公式定义如下:
Figure 432671DEST_PATH_IMAGE037
Figure 487215DEST_PATH_IMAGE038
(8)
Figure 182639DEST_PATH_IMAGE039
其中,
Figure 955422DEST_PATH_IMAGE040
表示生成第i个蒸馏网络结构时,每层 Transformer 包含的注意力 头的数量,这里每次生成的不同蒸馏网络结构中每层 Transformer 包含的注意力头的数 量相同。
Figure 27284DEST_PATH_IMAGE041
表示每个 Transformer 模块包含的自注意力头数量的衰减因子。
Figure 936334DEST_PATH_IMAGE042
表示简单随机抽样;由于
Figure 68238DEST_PATH_IMAGE043
的每个Transformer 模块有12个自注意力单 元,所以
Figure 62739DEST_PATH_IMAGE044
为12。在生成第i个蒸馏网络结构过程中,首先通过对列表
Figure 938291DEST_PATH_IMAGE045
进行简单随机抽样得到随机数
Figure 719426DEST_PATH_IMAGE046
,获得当前蒸馏结构的衰减因子
Figure 756652DEST_PATH_IMAGE041
, 与标准
Figure 504028DEST_PATH_IMAGE044
进行相乘过后,得到当前蒸馏网络结构的多头注意力单元的数量。
因此,基于注意力多头剪枝进行知识蒸馏,每次生成一个蒸馏网络结构时,对于进行迁移的 Transformer 模块,即Transformer层采样编码向量中值为1的元素,生成一个多头剪枝编码向量,表示当前迁移的所有Transformer层中进行自注意力知识迁移的注意力头的数量。
Figure 183271DEST_PATH_IMAGE047
. 隐藏层降维向量。隐藏层状态的知识蒸馏是针对每个Transformer层的最终输 出进行知识蒸馏,即减小BERT隐藏层的维度。具体过程如下,每次生成的蒸馏网络的所有 Transformer 层的隐藏层的维度相同。生成第 i 个蒸馏网络的隐藏层的维度
Figure 66913DEST_PATH_IMAGE048
定义如 下:
Figure 9462DEST_PATH_IMAGE049
(9)
Figure 978555DEST_PATH_IMAGE050
其中,
Figure 195909DEST_PATH_IMAGE051
是一个超参数,由于
Figure 934058DEST_PATH_IMAGE035
的隐藏层维度是768,初始化
Figure 578666DEST_PATH_IMAGE051
为768的一个公约数,这里初始化
Figure 35055DEST_PATH_IMAGE051
为128。
Figure 790522DEST_PATH_IMAGE052
表示隐藏层维度的 降维因子,是通过对列表
Figure 648756DEST_PATH_IMAGE053
进行简单随机抽样得到的一个元素。
因此,基于隐藏层进行知识蒸馏生成蒸馏网络时,每次采用简单随机抽样从上述列表采样一个降维因子,生成当前蒸馏网络对应的隐藏层的维度大小。
Figure 464265DEST_PATH_IMAGE054
. 嵌入层降维向量。图4 所示了编码器模块的隐藏层和输入的嵌入层的降维结 构。从图中可以看出,由于隐藏层部分和嵌入层部分都有一个残差连接,所以嵌入层的输出 维度大小与隐藏层输出维度大小相等。
因此,基于嵌入层进行知识蒸馏生成蒸馏网络时,每次嵌入层的维度与当前隐藏层的维度的大小保持一致即可。
步骤二: 基于结构生成器构建蒸馏网络架构。利用该结构生成器构建与当前输入的编码向量对应的蒸馏结构模型,而且需要调整结构生成器输出的权重矩阵的形状,使其与自注意力编码向量对应的蒸馏结构的输入输出的自注意力单元数目一致。图5所示由结构生成器构建的蒸馏结构的网络架构。
步骤三:联合训练结构生成器和蒸馏结构模型。将自注意力知识蒸馏编码向量和一个小批次的训练数据输入蒸馏结构模型。值得注意的是,反向传播的过程中,蒸馏结构的权重和结构生成器的权重矩阵都会一起更新。构生成器的权重可以使用链式法则计算,因此,可以端到端的训练结构生成器。
同时,提出伯努利分布采样的方法训练结构生成器。每轮迭代时,利用伯努利分布采样各层 Transformer 迁移的自注意力单元,组成对应的编码向量。通过改变输入结构生成器的自注意力编码向量和一个小批次的训练数据,联合训练结构生成器和对应的蒸馏结构,可以学得能够为不同蒸馏结构生成权重的结构生成器。图6所示结构生成器的训练过程。
第三阶段:基于进化算法的蒸馏网络搜索
将网络编码向量输入训练好的结构生成器,生成对应蒸馏网络的权重,在验证集上对蒸馏网络进行评估,获得对应蒸馏网络的精度。然后,为了搜索出满足特定约束条件的最高精度的蒸馏网络,提出采用进化算法搜索满足特定约束条件的最高精度的蒸馏网络,图7所示了基于进化算法的蒸馏网络搜索架构。
在元学习蒸馏网络中采用的进化搜索算法中,每个蒸馏网络是由包含嵌入层蒸馏、隐藏层蒸馏和自注意力知识蒸馏三个蒸馏模块的网络编码向量编码生成,所以将蒸馏网络编码向量定义为蒸馏网络的基因。在满足特定约束条件下,首先选取一系列蒸馏网络编码向量作为蒸馏网络的基因,通过在验证集上评估获得对应蒸馏网络的精度。然后,选取精度最高的前k个基因,采用基因重组和变异生成新的基因。基因变异是指,通过随机改变基因里一部分元素值来进行变异。基因重组是指,随机地将两个父辈的基因进行重组,产生后代。而且,可以很容易地通过消除不合格的基因来加强约束。通过进一步重复前k个最优基因选择的过程和新基因生成的过程来迭代几轮,就可以获得满足约束条件并且精度最高的基因。第三阶段:如图7所示为基于进化算法的蒸馏网络搜索的过程:
在第二阶段训练好的元学习的知识蒸馏网络基础上,将多个满足特定约束条件的知识蒸馏编码向量输入结构生成器生成对应的权重矩阵,得到多个蒸馏结构模型;在验证集上对每个蒸馏结构模型进行评估,获得对应的精度;采用进化算法搜索其中满足特定约束条件(如浮点数运算次数)的精度最高的蒸馏结构模型,由此得到与任务无关的预训练语言模型的通用压缩架构。进化搜索算法的具体步骤如下:
步骤一、每个蒸馏结构模型是由基于Transformer层采样的知识蒸馏编码向量生成的,所以将知识蒸馏编码向量定义为蒸馏结构模型的基因G,随机选取满足约束条件C的一系列基因作为初始种群。
步骤二、评估现有种群中各个基因G i 对应的蒸馏结构模型在验证集上的推理精度accuracy,选取精度最高的前k个基因。
步骤三、利用步骤二选取的精度最高的前k个基因进行基因重组和基因变异生成新的基因,将新基因加入现有种群中。基因变异是指通过随机改变基因里一部分元素值来进行变异;基因重组是指随机地将两个父辈的基因进行重组产生后代;而且可以很容易地通过消除不合格的基因来加强约束C。
步骤四、重复迭代N轮步骤二和步骤三,选择现有种群中前k个精度最高的基因并生成新基因,直到获得满足约束条件C并且精度最高的基因。
本发明的基于多层级知识蒸馏的预训练语言模型自动压缩平台,包括以下组件:
数据加载组件:用于获取登陆用户上传的待压缩的包含具体自然语言处理下游任务的BERT模型和面向多任务的预训练语言模型的训练样本,所述训练样本是满足监督学习任务的带标签的文本样本。
自动压缩组件:用于将面向多任务的预训练语言模型自动压缩,包括知识蒸馏向量编码模块、蒸馏网络生成模块、结构生成器和蒸馏网络联合训练模块、蒸馏网络搜索模块、特定任务微调模块。
知识蒸馏向量编码模块包括 Transformer 的层采样向量、自注意力单元的多头剪枝向量、隐藏层降维向量、嵌入层降维向量。前向传播过程中,将蒸馏网络编码向量输入结构生成器,生成对应结构的蒸馏网络和结构生成器的权重矩阵。
蒸馏网络生成模块是基于结构生成器构建与当前输入的编码向量对应的蒸馏网络,调整结构生成器输出的权重矩阵的形状,使其与自注意力编码向量对应的蒸馏结构的输入输出的自注意力单元数目一致。
结构生成器和蒸馏网络联合训练模块是端到端的训练结构生成器,具体地,将多层级知识蒸馏编码向量和一个小批次的训练数据输入蒸馏网络。更新蒸馏结构的权重和结构生成器的权重矩阵。
蒸馏网络搜索模块是为了搜索出满足特定约束条件的最高精度的蒸馏网络,提出进化算法搜索满足特定约束条件的最高精度的蒸馏网络。将网络编码向量输入训练好的结构生成器,生成对应蒸馏网络的权重,在验证集上对蒸馏网络进行评估,获得对应蒸馏网络的精度。在元学习蒸馏网络中采用的进化搜索算法中,每个蒸馏网络是由包含嵌入层知识蒸馏、隐藏层状态的知识蒸馏和自注意力知识蒸馏三个蒸馏模块的网络编码向量编码生成,所以将蒸馏网络编码向量定义为蒸馏网络的基因。在满足特定约束条件下,首先选取一系列蒸馏网络编码向量作为蒸馏网络的基因,通过在验证集上评估获得对应蒸馏网络的精度。然后,选取精度最高的前k个基因,采用基因重组和变异生成新的基因。通过进一步重复前k个最优基因选择的过程和新基因生成的过程进行迭代,获得满足约束条件并且精度最高的基因。
特定任务微调模块是在所述自动压缩组件生成的预训练模型蒸馏网络上构建下游任务网络,利用蒸馏网络的特征层和输出层对下游任务场景进行微调,输出最终微调好的学生模型,即登陆用户需求的包含下游任务的预训练语言模型压缩模型。将所述压缩模型输出到指定的容器,可供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型大小的对比信息。
推理组件:登陆用户从所述平台获取预训练压缩模型,用户利用所述自动压缩组件输出的压缩模型在实际场景的数据集上对登陆用户上传的自然语言处理下游任务的新数据进行推理。并在所述平台的压缩模型推理页面呈现压缩前后推理速度的对比信息。
登陆用户可直接下载本发明平台提供的训练好的预训练语言模型,根据用户对具体某个自然语言处理下游任务的需求,在所述平台生成的已压缩的预训练模型架构基础上构建下游任务网络并进行微调,最后部署在终端设备。也可以直接在所述平台上对自然语言处理下游任务进行推理。
下面将以电影评论进行情感分类任务对本发明的技术方案做进一步的详细描述。
通过所述平台的数据加载组件获取登陆用户上传的单个句子的文本分类任务的BERT模型和情感分析数据集SST-2;
通过所述平台的自动压缩组件,生成面向多任务的 BERT 预训练语言模型;
通过所述平台加载自动压缩组件生成的BERT预训练模型,在所述生成的预训练模型上构建文本分类任务的模型;
基于所述自动压缩组件的特定任务微调模块所得的学生模型进行微调,利用自动压缩组件生成的BERT预训练模型的特征层和输出层对下游文本分类任务场景进行微调,最终,平台输出登陆用户需求的包含文本分类任务的BERT模型的压缩模型。
将所述压缩模型输出到指定的容器,可供所述登陆用户下载,并在所述平台的输出压缩模型的页面呈现压缩前后模型大小的对比信息,压缩前模型大小为110M,压缩后为53M,压缩了51.8%。如下表1所示。
表1:文本分类任务BERT模型压缩前后对比信息
文本分类任务(SST-2)(包含67K个样本) 压缩前 压缩后 对比
模型大小 110M 53M 压缩51.8%
推理精度 91.5% 92.3% 提升0.8%
通过所述平台的推理组件,利用所述平台输出的压缩模型对登陆用户上传的SST-2测试集数据进行推理,并在所述平台的压缩模型推理页面呈现压缩后比压缩前推理速度加快1.95倍,并且推理精度从压缩前的91.5%提升为92.3%。

Claims (4)

1.一种基于多层级知识蒸馏的预训练语言模型自动压缩方法,包括如下步骤:
步骤一、构建多层级知识蒸馏,在自注意力单元、隐藏层状态、嵌入层三个不同层级上蒸馏大模型的知识结构;
步骤二、训练元学习的知识蒸馏网络,生成多种预训练语言模型的通用压缩架构;
步骤二中训练元学习的知识蒸馏网络为:设计一种结构生成器的元网络,基于步骤一的多层级知识蒸馏构建知识蒸馏编码向量,利用结构生成器生成与当前输入的知识蒸馏编码向量对应的蒸馏结构模型;同时,采用伯努利分布采样的方法训练结构生成器,每轮迭代时,利用伯努利分布采样各个编码器迁移的自注意力单元,组成对应的知识蒸馏编码向量;通过改变输入结构生成器的知识蒸馏编码向量和小批次的训练数据,联合训练结构生成器和对应的蒸馏结构,得到为不同蒸馏结构生成权重的结构生成器;
步骤三、基于进化算法搜索最优压缩架构;
所述进化算法的具体步骤如下:
步骤1、将知识蒸馏编码向量定义为蒸馏结构模型的基因G,随机选取满足约束条件C的一系列基因作为初始种群;
步骤2、评估现有种群中各个基因G对应的蒸馏结构模型在验证集上的推理精度accuracy,选取精度最高的前k个基因;
步骤3、利用步骤二选取的精度最高的前k个基因进行基因重组和基因变异生成新的基因,将新基因加入现有种群中;
步骤4、重复迭代N轮步骤二和步骤三,选择现有种群中前k个精度最高的基因并生成新基因,直到获得满足约束条件C并且精度最高的基因。
2.如权利要求1所述的基于多层级知识蒸馏的预训练语言模型自动压缩方法,其特征在于:步骤三中在已训练好的元学习网络基础上,通过进化算法搜索最优压缩架构,得到与任务无关的预训练语言模型的最优通用压缩架构。
3.如权利要求1所述的基于多层级知识蒸馏的预训练语言模型自动压缩方法,其特征在于:
步骤一中将自注意力分布知识、隐藏层状态知识和嵌入层知识编码为一个蒸馏网络,采用知识蒸馏实现大模型向小模型的压缩。
4.如权利要求3所述的基于多层级知识蒸馏的预训练语言模型自动压缩方法,其特征在于:
步骤一中所述多层级知识蒸馏包括自注意力知识蒸馏、隐藏层状态知识蒸馏和嵌入层知识蒸馏。
CN202011498328.2A 2020-12-17 2020-12-17 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台 Active CN112241455B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202011498328.2A CN112241455B (zh) 2020-12-17 2020-12-17 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台
JP2022566730A JP7283835B2 (ja) 2020-12-17 2020-12-31 マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォーム
GB2214215.2A GB2610319A (en) 2020-12-17 2020-12-31 Automatic compression method and platform for multilevel knowledge distillation-based pre-trained language model
PCT/CN2020/142577 WO2022126797A1 (zh) 2020-12-17 2020-12-31 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台
US17/555,535 US11501171B2 (en) 2020-12-17 2021-12-20 Method and platform for pre-trained language model automatic compression based on multilevel knowledge distillation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011498328.2A CN112241455B (zh) 2020-12-17 2020-12-17 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台

Publications (2)

Publication Number Publication Date
CN112241455A CN112241455A (zh) 2021-01-19
CN112241455B true CN112241455B (zh) 2021-05-04

Family

ID=74175234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011498328.2A Active CN112241455B (zh) 2020-12-17 2020-12-17 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台

Country Status (2)

Country Link
CN (1) CN112241455B (zh)
WO (1) WO2022126797A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2619569A (en) * 2020-12-15 2023-12-13 Zhejiang Lab Method and platform for automatically compressing multi-task-oriented pre-training language model
CN113099175B (zh) * 2021-03-29 2022-11-04 苏州华云视创智能科技有限公司 一种基于5g的多模型手持云端检测传输系统及检测方法
CN113849641B (zh) * 2021-09-26 2023-10-24 中山大学 一种跨领域层次关系的知识蒸馏方法和系统
CN113986958B (zh) * 2021-11-10 2024-02-09 北京有竹居网络技术有限公司 文本信息的转换方法、装置、可读介质和电子设备
CN115774851B (zh) * 2023-02-10 2023-04-25 四川大学 基于分级知识蒸馏的曲轴内部缺陷检测方法及其检测系统
CN115979973B (zh) * 2023-03-20 2023-06-16 湖南大学 一种基于双通道压缩注意力网络的高光谱中药材鉴别方法
CN116821699B (zh) * 2023-08-31 2024-01-19 山东海量信息技术研究院 一种感知模型训练方法、装置及电子设备和存储介质
CN117574961B (zh) * 2024-01-15 2024-03-22 成都信息工程大学 一种将适配器注入预训练模型的参数高效化方法和装置
CN117725844B (zh) * 2024-02-08 2024-04-16 厦门蝉羽网络科技有限公司 基于学习权重向量的大模型微调方法、装置、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636337B2 (en) * 2019-03-22 2023-04-25 Royal Bank Of Canada System and method for knowledge distillation between neural networks
CN111062489B (zh) * 2019-12-11 2023-10-20 北京知道创宇信息技术股份有限公司 一种基于知识蒸馏的多语言模型压缩方法、装置
CN111506702A (zh) * 2020-03-25 2020-08-07 北京万里红科技股份有限公司 基于知识蒸馏的语言模型训练方法、文本分类方法及装置
CN112016674A (zh) * 2020-07-29 2020-12-01 魔门塔(苏州)科技有限公司 一种基于知识蒸馏的卷积神经网络的量化方法
CN111767711B (zh) * 2020-09-02 2020-12-08 之江实验室 基于知识蒸馏的预训练语言模型的压缩方法及平台

Also Published As

Publication number Publication date
WO2022126797A1 (zh) 2022-06-23
CN112241455A (zh) 2021-01-19

Similar Documents

Publication Publication Date Title
CN112241455B (zh) 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台
CN111291836B (zh) 一种生成学生网络模型的方法
CN112396181A (zh) 一种卷积神经网络通用压缩架构的自动剪枝方法及平台
US11501171B2 (en) Method and platform for pre-trained language model automatic compression based on multilevel knowledge distillation
CN112232511B (zh) 面向多任务的预训练语言模型自动压缩方法及平台
Gorgolis et al. Hyperparameter optimization of LSTM network models through genetic algorithm
CN109885756B (zh) 基于cnn和rnn的序列化推荐方法
CN111611377A (zh) 基于知识蒸馏的多层神经网络语言模型训练方法与装置
KR20210040248A (ko) 물질의 생성 구조-특성 역 계산 공동 설계
US11526774B2 (en) Method for automatically compressing multitask-oriented pre-trained language model and platform thereof
CN109165720A (zh) 神经网络模型压缩方法、装置和计算机设备
KR102592585B1 (ko) 번역 모델 구축 방법 및 장치
CN109388779A (zh) 一种神经网络权重量化方法和神经网络权重量化装置
CN111723914A (zh) 一种基于卷积核预测的神经网络架构搜索方法
CN111353313A (zh) 基于进化神经网络架构搜索的情感分析模型构建方法
CN112578089B (zh) 一种基于改进tcn的空气污染物浓度预测方法
Zhao et al. Automatic mixed-precision quantization search of bert
CN110688501B (zh) 一种基于深度学习的全卷积网络的哈希检索方法
AL-Bundi et al. A review on fractal image compression using optimization techniques
CN112819062B (zh) 基于混合粒子群和连续投影的荧光光谱二次特征选择方法
CN114936723B (zh) 一种基于数据增强的社交网络用户属性预测方法及系统
CN116822593A (zh) 一种基于硬件感知的大规模预训练语言模型压缩方法
CN114091668A (zh) 基于可微决策器和知识蒸馏的神经网络剪枝方法及系统
CN113849641A (zh) 一种跨领域层次关系的知识蒸馏方法和系统
CN117807235B (zh) 一种基于模型内部特征蒸馏的文本分类方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant