CN114742036A - 一种预训练语言模型的组合式模型压缩方法及系统 - Google Patents
一种预训练语言模型的组合式模型压缩方法及系统 Download PDFInfo
- Publication number
- CN114742036A CN114742036A CN202210283763.6A CN202210283763A CN114742036A CN 114742036 A CN114742036 A CN 114742036A CN 202210283763 A CN202210283763 A CN 202210283763A CN 114742036 A CN114742036 A CN 114742036A
- Authority
- CN
- China
- Prior art keywords
- model
- compression
- training
- pruning
- scale
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Abstract
本发明提供一种预训练语言模型的组合式模型压缩方法及系统,所述方法包括:获取预训练好的大规模预训练语言模型;对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;将预训练好的大规模预训练语言模型作为教师模型,基于所述教师模型构建压缩训练目标,使用所述压缩训练目标约束压缩模型;通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能实现对预训练语言模型的压缩,提升模型的实用性,扩大使用范围。
Description
技术领域
本发明涉及预训练模型压缩技术领域,尤其涉及一种预训练语言模型的组合式模型压缩方法及系统。
背景技术
预训练语言模型是词向量模型的进化,它的本质其实是有上下文的词向量模型。预训练语言模型的训练过程是,首先给句子中的每个词赋予一个静态向量,然后它会跟句子的上下文词进行交互,最后就得到了这个词在句子中的变化的词向量。这种特殊的词向量模型称为预训练语言模型。
大规模预训练语言模型在自然语言理解和生成任务上都取得了优异的性能,然而,将具有海量参数的预训练语言模型部署到内存有限的设备中仍然面临巨大挑战。在模型压缩领域,已有的语言模型压缩方法都是针对特定任务的语言模型压缩。尽管针对特定任务的知识蒸馏很有效,但是对大模型微调和推理仍费时费力,计算成本也很高。当面向下游其它任务时,使用特定任务知识蒸馏生成的预训练模型仍需要重新微调大模型以及生成相关的大模型知识。
大模型微调费时费力,计算成本也很高。为了提高压缩模型面向多种下游任务使用过程中的灵活性和有效性,需要研究与任务无关的预训练语言模型的通用压缩架构。而且,已有的知识蒸馏方法主要是人工设计的知识蒸馏策略。由于受计算资源等限制,人工设计所有可能的蒸馏结构并且寻找最优结构存在较大困难。
发明内容
本发明提供一种预训练语言模型的组合式模型压缩方法及系统,用以解决现有预训练语言模型计算资源占用多、成本高的缺陷,实现对预训练语言模型的压缩,以便提升模型的实用性,扩大使用范围。
本发明提供一种预训练语言模型的组合式模型压缩方法,所述方法包括:
获取预训练好的大规模预训练语言模型;
对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
将预训练好的大规模预训练语言模型作为教师模型,基于所述教师模型构建压缩训练目标,使用所述压缩训练目标约束压缩模型;
通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能。
根据本发明提供的一种预训练语言模型的组合式模型压缩方法,对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型,具体包括:
每个输入大规模预训练模型的数据在进行计算时,使用不同参数参与计算;
统计大规模预训练模型中不同参数共同被使用的频率;
基于共同使用的频率对参数进行划分,共同使用频率高的参数划分在一起,组成小规模的子网络,得到专家化模型;
根据划分好的子网络,构建路由网络,对于不同的输入数据选择不同的子网络。
根据本发明提供的一种预训练语言模型的组合式模型压缩方法,对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型,具体包括:
基于设置有多层的专家化模型,筛选出每层的冗余参数;
对冗余参数进行结构化剪枝和非结构化剪枝;
所述结构化剪枝对每层中的前馈网络和注意力网络进行丢弃;
所述非结构化剪枝对权重矩阵中权值较小的位置进行裁剪,得到剪枝模型。
根据本发明提供的一种预训练语言模型的组合式模型压缩方法,对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型:将前馈网络和注意力网络中的矩阵计算精度从高位单精度浮点转化为低位比特点,得到压缩模型。
根据本发明提供的一种预训练语言模型的组合式模型压缩方法,通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能,以得到目标压缩模型,具体包括:
将所述教师模型的输出结果作为一个新的训练信号;
基于所述教师模型输出的新的训练信号对压缩模型进行训练,以形成对压缩模型的监督。
根据本发明提供的一种预训练语言模型的组合式模型压缩方法,所述压缩模型结合新的训练信号形成的监督,拟合教师模型的输出结果,训练完成后压缩模型具有教师模型的计算功能。
本发明还提供一种预训练语言模型的组合式模型压缩系统,所述系统包括:
专家化模块,用于根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
剪枝模块,用于对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
模型量化模块,用于对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
知识蒸馏模块,用于将预训练好的大规模预训练语言模型作为教师模型,通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能,以得到目标压缩模型。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述预训练语言模型的组合式模型压缩方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述预训练语言模型的组合式模型压缩方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述预训练语言模型的组合式模型压缩方法。
本发明提供的一种预训练语言模型的组合式模型压缩方法及系统,将模型专家化、模型剪枝、模型量化、知识蒸馏多种不同的模型压缩方法进行组合,构建了一个完整的模型压缩流程,通过预训练好的大规模预训练语言模型对压缩模型进行训练学习,在最大程度提高模型数据处理效率的同时,最大限度的保留了原始模型的性能。压缩后的大规模预训练语言模型可以用于各类下游自然语言处理任务,显著提升模型的实用性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种预训练语言模型的组合式模型压缩方法的流程示意图;
图2是本发明提供的一种预训练语言模型的组合式模型压缩方法的大规模预训练语言模型进行专家化流程示意图;
图3是本发明提供的一种预训练语言模型的组合式模型压缩方法的专家化模型进行剪枝的过程流程示意图;
图4是本发明提供的一种预训练语言模型的组合式模型压缩方法的剪枝模型进行模型量化的过程流程示意图;
图5是本发明提供的电子设备的结构示意图。
附图标记:
810:处理器;820:通信接口;830:存储器;840:通信总线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图4描述本发明的一种预训练语言模型的组合式模型压缩方法,所述方法包括:
S100、获取预训练好的大规模预训练语言模型;
预训练语言模型是词向量模型的进化,其本质为有上下文的词向量模型,预训练语言模型的训练过程为,首先给句子中的每个词赋予一个静态向量,然后与句子的上下文词进行交互,最后就得到了词在句子中的变化的词向量,这种特殊的词向量模型为预训练语言模型;
S200、对大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
S300、对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
S400、对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
S500、将预训练好的大规模预训练语言模型作为教师模型,基于所述教师模型构建压缩训练目标,使用所述压缩训练目标约束压缩模型;
S600、通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能;
通过压缩模型,最大程度提高模型数据处理效率的同时,最大限度的保留了原始模型的性能。
考虑大规模预训练模型的稀疏性,每个输入只会使用模型中的少量参数,大部分参数对应的计算处于“静默”的状态,因此使用模型专家化技术可以很好地利用这个现象,在不影响模型性能的情况下,提升模型计算效率。
对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型,具体包括:
S201、每个输入大规模预训练模型的数据在进行计算时,使用不同参数参与计算;
S202、统计大规模预训练模型中不同参数共同被使用的频率;
S203、基于共同使用的频率对参数进行划分,共同使用频率高的参数划分在一起,组成小规模的子网络,得到专家化模型;
S204、根据划分好的子网络,构建路由网络,对于不同的输入数据选择不同的子网络。
模型专家化是一种将稠密模型转换为稀疏模型的模型加速方法,其不改变原始模型参数,将大模型切分为多个小模型,并借助路由网络完成小模型的选择。由于不用计算完整模型,专家化技术可以减少模型的计算量。
深度学习网络模型从卷积层到全连接层存在着大量冗余的参数,大量神经元激活值趋近于0,将这些神经元去除后可以表现出同样的模型表达能力,这种情况被称为过参数化,而对应的技术则被称为模型剪枝。模型的构成是由许多浮点型的神经元相连接,每一层根据神经元的权重将信息向下传递。但是在每一层的神经元中,有些节点的权重非常小,对模型加载信息的影响微乎其微。如果可以把这些权重较小的神经元删掉,既减小了模型大小,对模型的精度等影响也较小。
对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型,具体包括:
S301、基于设置有多层的专家化模型,筛选出每层的冗余参数;
S302、对冗余参数进行结构化剪枝和非结构化剪枝;
S303、所述结构化剪枝对每层中的前馈网络和注意力网络进行丢弃;
S304、所述非结构化剪枝对权重矩阵中权值较小的位置进行裁剪,得到剪枝模型。
由于预训练和微调过程中会使用dropout技术防止模型过拟合,因此模型当中将会存在冗余参数,对于这部分参数可以使用模型剪枝技术来优化计算效率。
对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型:
S401、将浮点计算转换成低比特点计算;
S402、将前馈网络和注意力网络中的矩阵计算精度从高位单精度浮点转化为低位比特点,得到压缩模型。
非结构化修剪方法(直接修剪权重)的一个缺点是所得到的权重矩阵是稀疏的,如果没有专用硬件/库,则不能达到压缩和加速的效果。相反,结构化修剪方法在通道或层的层次上进行修剪。由于原始卷积结构仍然保留,因此不需要专用的硬件/库来实现。在结构化修剪方法中,通道修剪是最受欢迎的,因为它在最细粒度的水平上运行,同时仍然适合传统的深度学习框架。
典型的修建算法包括:训练过程、修剪过程和微调过程;
训练过程中,训练大型的过度参数化的模型,得到最佳网络性能,以此为基准;
修剪过程中,根据特定标准修剪训练的大模型,即重新调整网络结构中的通道或层数等,来得到一个精简的网络结构;
微调过程中,微调修剪的模型以重新获得丢失的性能,这里一般做法是将修剪后的大网络中的保留的(视为重要的)参数用来初始化修剪后的网络,即继承大网络学习到的重要参数,再在训练集上微调几轮。
模型量化是一种将浮点计算转成低比特定点计算的技术,可以有效的降低模型计算强度、参数大小和内存消耗,会使精度损失。
神经网络的计算通常不需要特别高的精度,通过观察发现8bit精度可以有效计算神经网络,特别是超大规模预训练语言模型。本发明将前馈网络和注意力网络中的矩阵计算精度从32bit单精度浮点转化为8bit,在基本保持计算结果的情况下,减少接近75%计算量。
一般而言,神经网络模型的参数都是用的32bit长度的浮点型数表示,实际上不需要保留那么高的精度,可以通过量化,比如用0~255表示原来32个bit所表示的精度,通过牺牲精度来降低每一个权值所需要占用的空间。此外,SGD(Stochastic GradientDescent)所需要的精度仅为6~8bit,因此合理的量化网络也可保证精度的情况下减小模型的存储体积。根据量化方法不同,大致可以分为二值量化,三值量化。
目前深度学习中大部分都是用32bit float类型进行计算的,bit位数的多少直接限制了数据类型能够表达的数据范围,比如float32的数据是由1bit表示正负,8bit表示整数部,23bit表示分数部。
用更低位的数值类型意味着更小的数据表示范围和更稀疏的数值,量化的时候就会造成数值精度损失。比如要把float数值量化到int类型,那么首先小数部分就会丢失,而那些超过int类型范围的值也会被压缩到int能够表达的最大或最小值。
因此,模型压缩的关键是将float32压缩到多少,目前主流的方式是压缩到int8。压缩到int8意味着内存节省的四分之三,同时提升了计算效率,因为在GPU这样的硬件上,低位的浮点计算速度会远远高于高位浮点计算速度。压缩到int8的另外一个原因是,从概率分布角度看,int8的字符长度可以较完整的覆盖大部分的模型权重值。float32到float8的转变,只需要一个系数乘积将原有的小数部分变为整数。
在模型优化过程当中,模型越大,计算量越大,对应的模型优化难度越小,可以从数据中学习到更多的信息。为了使得压缩模型能够尽可能多的保留或者学习信息,进行知识蒸馏,知识蒸馏是一种模型压缩的方法,通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么。“软标签”指的是大网络在每一层卷积后输出的feature map。然后,通过尝试复制大网络在每一层的输出(不仅仅是最终的损失),小网络被训练以学习大网络的准确行为。
知识蒸馏采用的是迁移学些通过采用预先训练好的教师模型的输出作为监督信号去训练另一个简单的网络。无论是压缩比还是蒸馏后的性能都还有待提高。存在的问题和研究的趋势寻找知识的不同形式,去除softmax的限制,研究趋向于选用中间特征层如何选择特征层,如何设计损失函数训练学生模型数据集的选择、学生模型的设计、如何和其他压缩方法集成紧凑网络设计。如果要把模型压缩分为两部分的话,可以分为压缩已有的网络和构建新的小网络两种。本实施例采用压缩已有的网络。
本实施例中需要引入一个大规模的教师模型,提供额外的监督信号,降低压缩模型的优化难度。具体而言,基于一个预训练好的大规模预训练语言模型,使用它的输出结果作为一个新的训练信号,要求压缩模型拟合教师模型的输出结果,相比于自然数据的稀疏监督信号,模型的输出结果更加稠密,学习难度更小。输出结果通常表示为一个词表大小的稠密向量,基于该向量可以使用KL散度或者均方误差进行优化。在训练完成后压缩模型具有教师模型的计算功能。
通过结合不同压缩方法的优势,构建了一个完整的模型压缩流程,从而在最大程度提高模型效率的同时,最大限度的保留了原始模型的性能。压缩后的大规模预训练语言模型可以用于各类下游自然语言处理任务,显著提升模型的实用性。
本发明还提供了一种预训练语言模型的组合式模型压缩系统,所述系统包括:
专家化模块,用于根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
剪枝模块,用于对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
模型量化模块,用于对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
知识蒸馏模块,用于将预训练好的大规模预训练语言模型作为教师模型,通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能。
专家化模块对大规模预训练语言模型进行专家化过程包括:
每个输入大规模预训练模型的数据在进行计算时,使用不同参数参与计算;
统计大规模预训练模型中不同参数共同被使用的频率;
基于共同使用的频率对参数进行划分,共同使用频率高的参数划分在一起,组成小规模的子网络,得到专家化模型;
根据划分好的子网络,构建路由网络,对于不同的输入数据选择不同的子网络。
使用模型专家化技术可以很好地利用这个现象,在不影响模型性能的情况下,提升模型计算效率。
剪枝模块对专家化模型进行剪枝具体过程包括:
专家化模型设置有多层,筛选出每层的冗余参数;
对冗余参数进行结构化剪枝和非结构化剪枝;
所述结构化剪枝对每层中不需要的前馈网络和注意力网络进行丢弃;
所述非结构化剪枝对权重矩阵中权值较小的位置进行裁剪,得到剪枝模型。由于预训练和微调过程中会使用dropout技术防止模型过拟合,因此模型当中将会存在冗余参数,对于这部分参数可以使用模型剪枝技术来优化计算效率。非结构化修剪方法(直接修剪权重)的一个缺点是所得到的权重矩阵是稀疏的,如果没有专用硬件/库,则不能达到压缩和加速的效果。相反,结构化修剪方法在通道或层的层次上进行修剪。由于原始卷积结构仍然保留,因此不需要专用的硬件/库来实现。在结构化修剪方法中,通道修剪是最受欢迎的,因为它在最细粒度的水平上运行,同时仍然适合传统的深度学习框架。
神经网络的计算通常不需要特别高的精度,通过观察发现8bit精度可以有效计算神经网络,特别是超大规模预训练语言模型,模型量化模块将前馈网络和注意力网络中的矩阵计算精度从32bit单精度浮点转化为8bit,在基本保持计算结果的情况下,减少接近75%计算量,使模型进一步压缩。
知识蒸馏模块由于在模型优化过程当中,模型越大,计算量越大,对应的模型优化难度越小,可以从数据中学习到更多的信息。为了使得压缩模型能够尽可能多的保留或者学习信息,进行知识蒸馏,知识蒸馏是一种模型压缩的方法,通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么。“软标签”指的是大网络在每一层卷积后输出的feature map。然后,通过尝试复制大网络在每一层的输出(不仅仅是最终的损失),小网络被训练以学习大网络的准确行为。
需要引入一个大规模的教师模型,提供额外的监督信号,降低压缩模型的优化难度。具体而言,基于一个预训练好的大规模预训练语言模型,使用它的输出结果作为一个新的训练信号,要求压缩模型拟合教师模型的输出结果,相比于自然数据的稀疏监督信号,模型的输出结果更加稠密,学习难度更小。输出结果通常表示为一个词表大小的稠密向量,基于该向量可以使用KL散度或者均方误差进行优化。在训练完成后压缩模型具有教师模型的计算功能。
通过结合不同压缩方法的优势,构建了一个完整的模型压缩流程,从而在最大程度提高模型效率的同时,最大限度的保留了原始模型的性能。压缩后的大规模预训练语言模型可以用于各类下游自然语言处理任务,显著提升模型的实用性。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行预训练语言模型的组合式模型压缩方法,该方法包括:获取预训练好的大规模预训练语言模型;
对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
再将预训练好的大规模预训练语言模型作为教师模型,基于所述教师模型构建压缩训练目标,使用所述压缩训练目标约束压缩模型;
通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的预训练语言模型的组合式模型压缩方法,该方法包括:获取预训练好的大规模预训练语言模型;
对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
再将预训练好的大规模预训练语言模型作为教师模型,基于所述教师模型构建压缩训练目标,使用所述压缩训练目标约束压缩模型;
通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的预训练语言模型的组合式模型压缩方法,该方法包括:获取预训练好的大规模预训练语言模型;
对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
再将预训练好的大规模预训练语言模型作为教师模型,基于所述教师模型构建压缩训练目标,使用所述压缩训练目标约束压缩模型;
通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种预训练语言模型的组合式模型压缩方法,其特征在于,所述方法包括:
获取预训练好的大规模预训练语言模型;
对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
将预训练好的大规模预训练语言模型作为教师模型,基于所述教师模型构建压缩训练目标,使用所述压缩训练目标约束压缩模型;
通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能。
2.根据权利要求1所述的一种预训练语言模型的组合式模型压缩方法,其特征在于,对所述大规模预训练语言模型进行专家化,根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型,具体包括:
每个输入大规模预训练模型的数据在进行计算时,使用不同参数参与计算;
统计大规模预训练模型中不同参数共同被使用的频率;
基于共同使用的频率对参数进行划分,共同使用频率高的参数划分在一起,组成小规模的子网络;
根据划分好的子网络,构建路由网络,对于不同的输入数据选择不同的子网络,得到专家化模型。
3.根据权利要求1所述的一种预训练语言模型的组合式模型压缩方法,其特征在于,对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型,具体包括:
基于设置有多层的专家化模型,筛选出每层的冗余参数;
对冗余参数进行结构化剪枝和非结构化剪枝;
所述结构化剪枝对每层中的前馈网络和注意力网络进行丢弃;
所述非结构化剪枝对权重矩阵中权值较小的位置进行裁剪,得到剪枝模型。
4.根据权利要求1所述的一种预训练语言模型的组合式模型压缩方法,其特征在于,对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型,具体包括:将前馈网络和注意力网络中的矩阵计算精度从高位单精度浮点转化为低位比特点,以得到压缩模型。
5.根据权利要求1所述的一种预训练语言模型的组合式模型压缩方法,其特征在于,通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能,以得到目标压缩模型,具体包括:
将所述教师模型的输出结果作为一个新的训练信号;
基于所述教师模型输出的新的训练信号对压缩模型进行训练,以形成对压缩模型的监督。
6.根据权利要求5所述的一种预训练语言模型的组合式模型压缩方法,其特征在于,所述压缩模型结合新的训练信号形成的监督,拟合教师模型的输出结果,训练完成后压缩模型具有教师模型的计算功能。
7.一种预训练语言模型的组合式模型压缩系统,其特征在于,所述系统包括:
专家化模块,用于根据大规模预训练语言模型中参数的使用频率构建小规模的子网络,得到专家化模型;
剪枝模块,用于对所述专家化模型进行剪枝,丢弃冗余参数,得到剪枝模型;
模型量化模块,用于对所述剪枝模型进行模型量化,将浮点计算转换为低比特定点计算,得到压缩模型;
知识蒸馏模块,用于将预训练好的大规模预训练语言模型作为教师模型,通过教师模型对压缩模型进行训练,使压缩模型具有与教师模型同样的计算功能,以得到目标压缩模型。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述预训练语言模型的组合式模型压缩方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述预训练语言模型的组合式模型压缩方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述预训练语言模型的组合式模型压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210283763.6A CN114742036A (zh) | 2022-03-21 | 2022-03-21 | 一种预训练语言模型的组合式模型压缩方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210283763.6A CN114742036A (zh) | 2022-03-21 | 2022-03-21 | 一种预训练语言模型的组合式模型压缩方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114742036A true CN114742036A (zh) | 2022-07-12 |
Family
ID=82277629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210283763.6A Pending CN114742036A (zh) | 2022-03-21 | 2022-03-21 | 一种预训练语言模型的组合式模型压缩方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114742036A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130645A (zh) * | 2023-10-25 | 2023-11-28 | 山东大学 | 基于大型语言模型和补全引擎的自动程序修复方法及系统 |
-
2022
- 2022-03-21 CN CN202210283763.6A patent/CN114742036A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130645A (zh) * | 2023-10-25 | 2023-11-28 | 山东大学 | 基于大型语言模型和补全引擎的自动程序修复方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sung et al. | Resiliency of deep neural networks under quantization | |
US11645493B2 (en) | Flow for quantized neural networks | |
CN108510067B (zh) | 基于工程化实现的卷积神经网络量化方法 | |
CN110969251B (zh) | 基于无标签数据的神经网络模型量化方法及装置 | |
US20180018555A1 (en) | System and method for building artificial neural network architectures | |
US11403528B2 (en) | Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance | |
CN109635935B (zh) | 基于模长聚类的深度卷积神经网络模型自适应量化方法 | |
US20210182666A1 (en) | Weight data storage method and neural network processor based on the method | |
CN111814973B (zh) | 一种适用于神经常微分方程网络计算的存内计算系统 | |
CN110084364B (zh) | 一种深度神经网络压缩方法和装置 | |
CN114580636B (zh) | 基于三目标联合优化的神经网络轻量化部署方法 | |
CN111626404A (zh) | 基于生成对抗神经网络的深度网络模型压缩训练方法 | |
US20230252294A1 (en) | Data processing method, apparatus, and device, and computer-readable storage medium | |
CN114742036A (zh) | 一种预训练语言模型的组合式模型压缩方法及系统 | |
CN109670582B (zh) | 一种全定点化神经网络的设计方法 | |
Verma et al. | A" Network Pruning Network''Approach to Deep Model Compression | |
Qi et al. | Learning low resource consumption cnn through pruning and quantization | |
Alnemari et al. | Efficient deep neural networks for edge computing | |
CN111831955A (zh) | 一种锂离子电池剩余寿命预测方法及系统 | |
CN116187416A (zh) | 一种基于层剪枝灵敏度的迭代式重训练方法及一种图像处理器 | |
CN116976428A (zh) | 模型训练方法、装置、设备及存储介质 | |
CN114139678A (zh) | 卷积神经网络量化方法、装置、电子设备和存储介质 | |
CN110852361B (zh) | 基于改进深度神经网络的图像分类方法、装置与电子设备 | |
CN111210009A (zh) | 一种基于信息熵的多模型自适应深度神经网络滤波器嫁接方法、装置、系统及存储介质 | |
Xiao et al. | Optimized MobileNetV2 Based on Model Pruning for Image Classification |
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 |