CN113537485A - 一种神经网络模型的压缩方法及装置 - Google Patents

一种神经网络模型的压缩方法及装置 Download PDF

Info

Publication number
CN113537485A
CN113537485A CN202010293700.XA CN202010293700A CN113537485A CN 113537485 A CN113537485 A CN 113537485A CN 202010293700 A CN202010293700 A CN 202010293700A CN 113537485 A CN113537485 A CN 113537485A
Authority
CN
China
Prior art keywords
parameter matrix
order
neural network
network model
tensor
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
Application number
CN202010293700.XA
Other languages
English (en)
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.)
Beijing Kingsoft Digital Entertainment Co Ltd
Original Assignee
Beijing Kingsoft Digital Entertainment Co Ltd
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 Beijing Kingsoft Digital Entertainment Co Ltd filed Critical Beijing Kingsoft Digital Entertainment Co Ltd
Priority to CN202010293700.XA priority Critical patent/CN113537485A/zh
Publication of CN113537485A publication Critical patent/CN113537485A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供一种神经网络模型的压缩方法及装置,其中所述神经网络模型的压缩方法包括:获取神经网络模型的嵌入层中的参数矩阵;接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;对所述高阶张量进行分解,获得所述高阶张量的分解结果;根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。通过本申请提供的方法可以在保持神经网络模型性能的基础上,有效地减少神经网络模型的嵌入层中的参数量,显著减小神经网络模型的体积。

Description

一种神经网络模型的压缩方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种神经网络模型的压缩方法及装置、计算设备和计算机可读存储介质。
背景技术
随着计算机技术的发展,神经网络模型的应用越来越广泛,如transformer翻译模型,transformer翻译模型包括一个编码器和一个解码器,编码器和解码放分别包括一个嵌入层和6个同结构网络层,即编码器中包括6个编码层,解码器中包括6个解码层,每个编码层或解码层均包含一个自注意力层和前馈网络层,6个编码层之间串行连接,6个解码层之间串行连接。
transformer翻译模型中参数量主要集中在嵌入层,为提高翻译模型的性能,嵌入层中的词表大小大多数为数万级,随着词表大小的增大,参数量也随之线性增加,同时前馈网络层是由两个线性层组成,采用了瓶颈型的网络结构,transformer翻译模型中的前馈网络层有2500万的参数量,因此transformer翻译模型中的参数量是巨大的,同时也存在着大量冗余,致使transformer翻译模型的体积庞大。
因此,如何有效压缩transformer翻译模型的模型体积就成为技术人员亟待解决的问题。
发明内容
有鉴于此,本申请实施例提供了一种神经网络模型的压缩方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种神经网络模型的压缩方法,包括:
获取神经网络模型的嵌入层中的参数矩阵;
接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
对所述高阶张量进行分解,获得所述高阶张量的分解结果;
根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层和第二嵌入层;
获取神经网络模型的嵌入层中的参数矩阵,包括:
获取第一嵌入层和/或第二嵌入层中的参数矩阵。
可选的,所述升阶指令包括升阶值;
根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量,包括:
根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
可选的,根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量,包括:
根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;
根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;
根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
可选的,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维。
可选的,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
根据本申请实施例的第二方面,提供了一种神经网络模型的压缩方法,包括:
获取神经网络模型的前馈网络层中的参数矩阵;
接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
对所述高阶张量进行分解,获得所述高阶张量的分解结果;
根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括6个编码层和6个解码层,每个所述编码层和每个所述解码层各包括一个前馈网络层;
获取神经网络模型的前馈网络层中的参数矩阵,包括:
获取至少一个所述前馈网络层中的参数矩阵。
可选的,所述升阶指令包括升阶值;
根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量,包括:
根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
可选的,根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量,包括:
根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;
根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;
根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
可选的,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
通过连式分解法对所述高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
可选的,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
根据本申请实施例的第三方面,提供了一种神经网络模型的压缩方法,包括:
获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵;
接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量;
对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果;
根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层、第二嵌入层、6个编码层和6个解码层,第一嵌入层与6个编码层依次连接,第二嵌入层与6个解码层依次连接,每个所述编码层和每个所述解码层各包括一个前馈网络层;
获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵,包括:
获取第一嵌入层和/或第二嵌入层中的第一参数矩阵;
获取至少一个所述前馈网络层中的第二参数矩阵。
可选的,所述升阶指令包括升阶值;
根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量,包括:
根据所述升阶值对所述第一参数矩阵进行升阶处理,获得与所述升阶值对应的第一高阶张量;
根据所述升阶值对所述第二参数矩阵进行升阶处理,获得与所述升阶值对应的第二高阶张量。
可选的,根据所述升阶值对所述第一参数矩阵进行升阶处理,获得与所述升阶值对应维度的第一高阶张量,包括:
根据所述升阶值对所述第一参数矩阵的行做分解,获得多个第一行参数的连续乘积,其中,所述第一行参数的个数与所述升阶值对应;
根据所述升阶值对所述第一参数矩阵的列做分解,获得多个第一列参数的连续乘积,其中,所述第一列参数的个数与所述升阶值对应;
根据所述第一行参数和所述第一列参数生成第一高阶张量,其中,所述第一高阶张量的维度与所述升阶值对应,所述第一高阶张量的每个维度的大小由对应的第一行参数和第一列参数确定。
可选的,根据所述升阶值对所述第二参数矩阵进行升阶处理,获得与所述升阶值对应维度的第二高阶张量,包括:
根据所述升阶值对所述第二参数矩阵的行做分解,获得多个第二行参数的连续乘积,其中,所述第二行参数的个数与所述升阶值对应;
根据所述升阶值对所述第二参数矩阵的列做分解,获得多个第二列参数的连续乘积,其中,所述第二列参数的个数与所述升阶值对应;
根据所述第二行参数和所述第二列参数生成第二高阶张量,其中,所述第二高阶张量的维度与所述升阶值对应,所述第二高阶张量的每个维度的大小由对应的第二行参数和第二列参数确定。
可选的,对所述第一高阶张量进行分解获得第一分解结果,包括:
通过连式分解法对所述第一高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
可选的,对所述第二高阶张量进行分解获得第二分解结果,包括:
通过去皮分解法对所述第二高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
根据本申请实施例的第四方面,提供了一种神经网络模型的压缩装置,包括:
第一获取模块,被配置为获取神经网络模型的嵌入层中的参数矩阵;
第一升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
第一分解模块,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果;
第一更新模块,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
根据本申请实施例的第五方面,提供了一种神经网络模型的压缩装置,包括:
第二获取模块,被配置为获取神经网络模型的前馈网络层中的参数矩阵;
第二升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
第二分解模块,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果;
第二更新模块,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
根据本申请实施例的第六方面,提供了一种神经网络模型的压缩装置,包括:
第三获取模块,被配置为获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵;
第三升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量;
第三分解模块,被配置为对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果;
第三更新模块,被配置为根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
根据本申请实施例的第七方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述神经网络模型的压缩方法的步骤。
根据本申请实施例的第八方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述神经网络模型的压缩方法的步骤。
根据本申请实施例的第九方面,提供了一种芯片,其存储有计算机指令,该指令被芯片执行时实现所述神经网络模型的压缩方法的步骤。
本申请实施例中,利用张量分解的方法对神经网络模型中的参数进行压缩,先将参数矩阵进行升阶处理,获得高阶张量,再通过张量分解技术有效的减少了嵌入层和/或前馈网络层中的参数量,经过试验得知,对嵌入层中的高阶张量做连式分解,对前馈网络层中的高阶张量做去皮分解,能在保持模型性能的基础上有效地减少模型的参数量,显著减小了模型的体积。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请第一实施例提供的神经网络模型的压缩方法的流程图;
图3是本申请第二实施例提供的神经网络模型的压缩方法的流程图;
图4是本申请第三实施例提供的神经网络模型的压缩方法的流程图;
图5是本申请实施例提供的神经网络模型的压缩装置的结构示意图;
图6是本申请实施例提供的神经网络模型的压缩装置的结构示意图;
图7是本申请实施例提供的神经网络模型的压缩装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
transformer:一种翻译模型,用自注意力模型的结构代替了长短期记忆模型,在翻译任务上取得了更好的成绩,包括编码器和解码器。
嵌入层:位于网络模型中的输入层,用于对输入的文本数据进行嵌入处理并输出文本向量;对输入的图像数据进行嵌入处理并输出图像特征。
参数矩阵:描述网络参数的矩阵,以矩阵形式表示的模型参数称为参数矩阵,参数矩阵中的每一个元素,都有固定的意义。
升阶指令:用以指示将网络参数升阶的指令。
升阶处理:将低阶参数根据升阶指令升阶为高阶张量的操作。
高阶张量:三阶及以上的张量称之为高阶张量。
压缩神经网络模型:被压缩处理过的神经网络模型。
行参数:参数矩阵的行数经过分解后获得多个参数的乘积,每个参数被称为行参数,如参数矩阵有120行,分解为2*3*4*5,则2、3、4、5被称为行参数。
列参数:参数矩阵的列数经过分解后获得多个参数的乘积,每个参数被称为行参数,如参数矩阵有120列,分解为2*3*4*5,则2、3、4、5被称为列参数。
连式分解法:一种张量分解方法,将高维张量分解为多个三维张量的乘积(首尾张量为二维)。
去皮分解法:一种张量分解方法,将高维张量分解成一个核张量与每一维矩阵的乘积。
前馈网络层:一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。
第一参数矩阵:嵌入层中的参数矩阵。
第二参数矩阵:前馈网络层中的参数矩阵。
第一高阶张量:第一参数矩阵经过升阶处理后获得的高阶张量。
第二高阶张量:第二参数矩阵经过升阶处理后获得的高阶张量。
第一分解结果:第一高阶张量经过张量分解之后获得的分解结果。
第二分解结果:第二高阶张量经过张量分解之后获得的分解结果。
第一行参数:第一参数矩阵对应的行参数。
第一列参数:第一参数矩阵对应的列参数。
第二行参数:第二参数矩阵对应的行参数。
第二列参数:第二参数矩阵对应的列参数。
在本申请中,提供了一种神经网络模型的压缩方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示神经网络模型的压缩方法中的步骤。图2示出了根据本申请第一实施例的神经网络模型的压缩方法的流程图,本实施例以transformer语句翻译模型为例,所述transformer语句翻译模型包括第一嵌入层、第二嵌入层。本实施例提供的神经网络模型的压缩方法适用于任意一个嵌入层,对于任意一个嵌入层,神经网络模型的压缩方法包括步骤202至步骤208。
步骤202:获取神经网络模型的嵌入层中的参数矩阵。
嵌入层位于神经网络模型中的输入层,用于对输入的文本数据进行嵌入处理并输出文本向量;对输入的图像数据进行嵌入处理并输出图像特征。
参数矩阵为描述网络参数的矩阵,以矩阵形式表示的模型参数称为参数矩阵,参数矩阵中的每一个元素,都有固定的意义,参数矩阵可以表示为M*N,其中M为词表大小,N为嵌入层的维度。
获取神经网络模型的嵌入层中的参数矩阵即获取M*N的参数矩阵,目的是为了压缩嵌入层中的参数,减少神经网络模型的体积。
在本申请提供的第一实施例中,第一参数矩阵为120*48,其中120为词表大小,48为当前嵌入层的维度。
步骤204:接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量。
升阶指令是用以指示将网络参数升阶的指令,三阶及以上的张量称之为高阶张量,升阶指令中包括升阶值P,根据升阶指令中包括升阶值P,将第一参数矩阵升阶为P阶的高阶张量。
可选的,根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量,包括:根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
参数矩阵的行数经过分解后获得多个参数的乘积,每个参数被称为行参数;参数矩阵的列数经过分解后获得多个参数的乘积,每个参数被称为行参数。
对于参数矩阵M*N,根据升阶值P,对第一参数矩阵的行M做分解,将M分解为
Figure BDA0002451389850000131
即P个行参数I1、I2……Ip的乘积,对第一参数矩阵的列N做分解,将N分解为
Figure BDA0002451389850000132
即P个列参数J1、J2……Jp的乘积,将参数矩阵M*N可转化为P解张量,即
Figure BDA0002451389850000133
其中,R表示实数空间,本申请中高阶张量的维度用对应位置的行参数与列参数的乘积表示,可以在还原第一参数矩阵时可以快速准确的还原原始的第一参数矩阵。
在本申请提供的第一实施例中,接收升阶指令,升阶指令中的升阶值为3,将参数矩阵的行120分解为4*5*6,将参数矩阵的列48分解为4*3*4,对参数矩阵120*48进行升阶处理可以获得高阶张量R(4*4)*(5*3)*(6*4)
步骤206:对所述高阶张量进行分解,获得所述高阶张量的分解结果。
张量分解的方法有很多,如CP分解法、去皮分解法、连式分解法、环式分解法等等,在实际应用中,可以根据实际情况选择张量分解的方法。如可以通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维;也可以通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
在本申请提供的第一实施例中,选择连式分解法对嵌入层中的高阶张量进行分解,高阶张量的阶数为P,对于张量中任何一个元素,其连式分解的分解公式如公式1所示:
Figure BDA0002451389850000141
其中,K为元素的索引,
Figure BDA0002451389850000142
为tt-cores,
Figure BDA0002451389850000143
中的最小值被称为tt-ranks。
接收预设的
Figure BDA0002451389850000144
根据预设的
Figure BDA0002451389850000145
对第一高阶张量
Figure BDA0002451389850000146
进行分解,分解公式如下公式2所示:
Figure BDA0002451389850000147
在本申请提供的第一实施例中,升阶指令中的升阶值为P=3,预设的
Figure BDA0002451389850000148
为(16,8),则第一高阶张量R(4*4)*(5*3)*(6*4)可以分解为如下公式3所示:
Figure BDA0002451389850000149
其中G1∈R4*4*16,G2∈R16*5*3*8,G3∈R8*6*4
步骤208:根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
分解结果为高阶张量经过分解之后获得的结果,根据所述分解结果更新所述神经网络模型的嵌入层中的参数矩阵获得压缩神经网络模型,使得所述压缩翻译模型在保持性能的基础上,有效的减少了嵌入层中的参数量,减小了模型体积。
在本申请提供的第一实施例中,分解结果包括预设的tt-ranks=(16,8)、G1∈R4 *4*16、G2∈R16*5*3*8和G3∈R8*6*4,用分解结果更新嵌入层中的参数矩阵120*48,获得压缩翻译模型。
可选的,所述方法还包括:利用所述压缩神经网络模型进行训练。
利用所述压缩神经网络模型进行模型训练,在实际应用中,可以根据保存的分解结果将神经网络模型的嵌入层中的参数矩阵还原,即还原嵌入层中的词表大小和嵌入层维度,保持神经网络模型的性能。
在本申请提供的第一实施例中,根据tt-ranks=(16,8)、G1∈R4*4*16、G2∈R16*5*3*8和G3∈R8*6*4还原出嵌入层中最初的二维参数矩阵120*48,并用该二维参数矩阵参与神经网络模型的训练。
本申请第一实施例提供的神经网络模型的压缩方法,适用于神经网络模型的嵌入层,通过将嵌入层中的参数升阶为高阶张量,再基于张量分解的技术可以对嵌入层进行有效地压缩,经过试验证明,使用连式分解法对嵌入层中的模型参数进行压缩,在实际应用中神经网络模型的评价指标BLEU值更高,在保证神经网络模型性能的同时能显著的减小神经网络模型的体积。
图3示出了根据本申请第二实施例的神经网络模型的压缩方法的流程图,本实施例以transformer翻译模型为例,所述transformer翻译模型包括6个编码层和6个解码层,每个所述编码层和每个所述解码层各包括一个前馈网络层。本实施例提供的神经网络模型的压缩方法适用于任意一个前馈网络层,对于任意一个前馈网络层,神经网络模型的压缩方法包括步骤302至步骤308。
步骤302:获取神经网络模型的前馈网络层中的参数矩阵。
前馈网络层是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。
前馈网络层由两个线性层及Relu层组成,如下公式4所示:
FFN(x)=max(0,xW1+b1)W2+b2 (4)
其中,W1和W2均为前馈网络层中的参数矩阵,b1、b2为偏置向量,对于任意一个参数矩阵可以表示为M*N,其中,M代表当前训练句子的长度,N代表特征维度。
在本申请提供的第二实施例中,参数矩阵为48*512,其中48为当前训练句子的长度,512为特征维度。
步骤304:接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量。
步骤304与上述步骤204方法一致,关于步骤304的具体解释,参见前述第一实施例中的步骤204的详细内容,在此就不再赘述。
在本申请提供的第二实施例中,升阶指令中的升阶值为3,将第二参数矩阵的行48分解为3*4*4,将第二参数矩阵的列512分解为8*8*8,对第二参数矩阵48*512进行升阶处理获得第二高阶张量R(3*8)*(4*8)*(4*8)
步骤306:对所述高阶张量进行分解,获得所述高阶张量的分解结果。
张量分解的方法有很多,如CP分解法、去皮分解法、连式分解法、环式分解法等等,在实际应用中,可以根据实际情况选择张量分解的方法。如可以通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维;也可以通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
在本申请提供的第二实施例中,选择去皮分解法对前馈网络层中的第二高阶张量进行分解。以第二高阶张量RP*Q*R为三阶张量为例,接收预设的核张量G∈RI*J*Z,去皮分解的分解公式如下述公式5所示:
Figure BDA0002451389850000161
其中,A、B和C为因子矩阵,G为预设的核张量。对于张量中的任意一个元素可以表示为:
Figure BDA0002451389850000171
在本申请提供的第二实施例中,第二高阶张量为R(3*8)*(4*8)*(4*8),接收预设的核张量G∈R2*2*2,将第二高阶张量分解为A、B、C三个因子矩阵,其中A∈R3*8*2,B∈R4*8*2,C∈R4*8*2
步骤308:根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
分解结果为高阶张量经过分解之后获得的结果,根据所述分解结果更新所述神经网络模型的前馈网络层中的参数矩阵获得压缩神经网络模型,使得所述压缩翻译模型在保持性能的基础上,有效的减少了前馈网络层中的参数量,减小了模型体积。
在本申请提供的实施例中,第二分解结果包括核张量G∈R2*2*2,和三个因子矩阵A∈R3*8*2,B∈R4*8*2,C∈R4*8*2,用第二分解结果更新transformer翻译模型中的第二参数矩阵48*512,获得压缩翻译模型,所述压缩翻译模型在保持性能的基础上,有效地减少了前馈网络层中的参数量,减小了模型体积。
可选的,所述方法还包括:利用所述压缩神经网络模型进行训练。
利用所述压缩神经网络模型进行模型训练,在实际应用中,可以根据保存的分解结果将神经网络模型的前馈网络层中的参数矩阵还原,即还原前馈网络层中的句子的长度和特征维度,保持神经网络模型的性能。
本申请第二实施例提供的神经网络模型的压缩方法,适用于神经网络模型的前馈网络层,通过将前馈网络层中的参数升阶为高阶张量,再基于张量分解的技术可以对前馈网络层进行有效地压缩,经过试验证明,使用去皮分解法对前馈网络层中的模型参数进行压缩,在实际应用中神经网络模型的评价指标BLEU值更高,在保证神经网络模型性能的同时能显著的减小神经网络模型的体积。
图4示出了根据本申请第三实施例的神经网络模型的压缩方法的流程图,本实施例以transformer翻译模型为例,所述transformer翻译模型包括第一嵌入层、第二嵌入层、6个编码层和6个解码层,其中,所述第一嵌入层与6个编码层依次串行连接,所述第二嵌入层与6个解码层依次串行连接,每个嵌入层中包括当前嵌入层对应的第一参数矩阵,第一参数矩阵即为嵌入层中的参数矩阵,每个编码层和每个解码层中均包括一个前馈网络层,即共计12个前馈网络层,每个前馈网络层中包括当前前馈网络层对应的第二参数矩阵,第二参数矩阵即为前馈网络层中的参数矩阵,本实施例提供的神经网络模型的压缩方法适用于任意一个嵌入层和前馈网络层,对于任意一个嵌入层和前馈网络层,神经网络模型的压缩方法包括步骤402至步骤408。
步骤402:获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵。
第一参数矩阵为嵌入层中的参数矩阵,第二参数矩阵为前馈网络层中的参数矩阵。
获取嵌入层中的第一参数矩阵的步骤与上述步骤202方法一致,关于获取嵌入层中的第一参数矩阵的具体解释,参见前述第一实施例中的步骤202的详细内容,在此就不再赘述。
获取前馈网络层中的第二参数矩阵的步骤与上述步骤302方法一致,关于获取前馈网络层中的第二参数矩阵的具体解释,参见前述第二实施例中的步骤302的详细内容,在此就不再赘述。
步骤404:接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量。
在实际应用中,升阶指令中可以包括一个升阶值P,也可以包括针对第一参数矩阵的升阶值P1和针对第二参数矩阵的升阶值P2,在本申请中不对此做限定。
根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量的步骤与上述步骤204方法一致,关于根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量的具体解释,参见前述第一实施例中的步骤204的详细内容,在此就不再赘述。
根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量的步骤与上述步骤304方法一致,关于根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量的具体解释,参见前述第二实施例中的步骤304的详细内容,在此就不再赘述。
步骤406:对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果。
对所述第一高阶张量进行分解获得第一分解结果的步骤与上述步骤206方法一致,关于对所述第一高阶张量进行分解获得第一分解结果的具体解释,参见前述第一实施例中的步骤206的详细内容,在此就不再赘述。
对所述第二高阶张量进行分解获得第二分解结果的步骤与上述步骤306方法一致,关于对所述第二高阶张量进行分解获得第二分解结果的具体解释,参见前述第二实施例中的步骤306详细内容,在此就不再赘述。
步骤408:根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
根据所述第一分解结果更新所述第一参数矩阵的步骤与上述步骤208方法一致,关于根据所述第一分解结果更新所述第一参数矩阵的具体解释,参见前述第一实施例中的步骤208的详细内容,在此就不再赘述。
根据所述第二分解结果更新所述第二参数矩阵的步骤与上述步骤308方法一致,关于根据所述第二分解结果更新所述第二参数矩阵的具体解释,参见前述第二实施例中的步骤308详细内容,在此就不再赘述。
可选的,所述方法还包括:利用所述压缩神经网络模型进行训练。
利用所述压缩神经网络模型进行模型训练,在实际应用中,根据保存的第一分解结果将神经网络模型的嵌入层中的参数矩阵还原,即还原嵌入层中的词表大小和嵌入层维度;根据保存的第二分解结果将神经网络模型的前馈网络层中的参数矩阵还原,即还原前馈网络层中的句子的长度和特征维度,保持神经网络模型的性能。
本申请第三实施例提供的神经网络模型的压缩方法,通过张量分解技术有效的减少了嵌入层及前馈网络层中的参数量,嵌入层参数量巨大,存在大量的冗余,对嵌入层使用连式分解法,在保持模型性能的基础上有效地减少了模型嵌入层的参数量,同时对前馈网络层中的参数进行去皮分解,减少了模型前馈网络层洪的参数量,在保持模型性能的同时显著的减小了神经网络模型的体积,实验证明,对嵌入层中的高阶张量使用连式分解法,对前馈网络层中的高阶张量使用去皮分解法,在应用中的评价指标BLEU值更高,在保持神经网络模型性能的同时能显著的减小神经网络模型的体积。
与上述方法实施例相对应,本申请还提供了神经网络模型的压缩装置实施例,图5示出了本申请一个实施例的神经网络模型的压缩装置的结构示意图。
如图5所示,该装置包括:
第一获取模块502,被配置为获取神经网络模型的嵌入层中的参数矩阵。
第一升阶模块504,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量。
第一分解模块506,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果。
第一更新模块508,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层和第二嵌入层;
所述第一获取模块502,进一步被配置为获取第一嵌入层和/或第二嵌入层中的参数矩阵。
可选的,所述升阶指令包括升阶值;
所述第一升阶模块504,进一步被配置为根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
可选的,所述第一升阶模块504,进一步被配置为根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
可选的,所述第一分解模块506,进一步被配置为通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维。
可选的,所述第一分解模块506,进一步被配置为通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
本申请提供的神经网络模型的压缩装置,适用于神经网络模型的嵌入层,通过将嵌入层中的参数升阶为高阶张量,再基于张量分解的技术可以对嵌入层进行有效地压缩,经过试验证明,使用连式分解法对嵌入层中的模型参数进行压缩,在实际应用中神经网络模型的评价指标BLEU值更高,在保证神经网络模型性能的同时能显著的减小神经网络模型的体积。
与上述方法实施例相对应,本申请还提供了神经网络模型的压缩装置实施例,图6示出了本申请一个实施例的神经网络模型的压缩装置的结构示意图。
如图6所示,该装置包括:
第二获取模块602,被配置为获取神经网络模型的前馈网络层中的参数矩阵。
第二升阶模块604,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量。
第二分解模块606,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果。
第二更新模块608,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括6个编码层和6个解码层,每个所述编码层和每个所述解码层各包括一个前馈网络层;
所述第二获取模块602,进一步被配置为获取至少一个所述前馈网络层中的参数矩阵。
可选的,所述升阶指令包括升阶值;
所述第二升阶模块604,被配置为根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
可选的,所述第二升阶模块604,进一步被配置为根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
可选的,所述第二分解模块606,进一步被配置为通过连式分解法对所述高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
可选的,所述第二分解模块606,进一步被配置为通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
本申请提供的神经网络模型的压缩装置,适用于神经网络模型的前馈网络层,通过将前馈网络层中的参数升阶为高阶张量,再基于张量分解的技术可以对前馈网络层进行有效地压缩,经过试验证明,使用去皮分解法对前馈网络层中的模型参数进行压缩,在实际应用中神经网络模型的评价指标BLEU值更高,在保证神经网络模型性能的同时能显著的减小神经网络模型的体积。
与上述方法实施例相对应,本申请还提供了神经网络模型的压缩装置实施例,图7示出了本申请一个实施例的神经网络模型的压缩装置的结构示意图。
如图7所示,该装置包括:
第三获取模块702,被配置为获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵。
第三升阶模块704,被配置为接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量。
第三分解模块706,被配置为对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果。
第三更新模块708,被配置为根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
可选的,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层、第二嵌入层、6个编码层和6个解码层,第一嵌入层与6个编码层依次连接,第二嵌入层与6个解码层依次连接,每个所述编码层和每个所述解码层各包括一个前馈网络层;
所述第三获取模块702,进一步被配置为获取第一嵌入层和/或第二嵌入层中的第一参数矩阵;获取至少一个所述前馈网络层中的第二参数矩阵。
可选的,所述升阶指令包括升阶值;
所述第三升阶模块704,进一步被配置为根据所述升阶值对所述第一参数矩阵进行升阶处理,获得与所述升阶值对应的第一高阶张量;根据所述升阶值对所述第二参数矩阵进行升阶处理,获得与所述升阶值对应的第二高阶张量。
可选的,所述第三升阶模块704,进一步被配置为根据所述升阶值对所述第一参数矩阵的行做分解,获得多个第一行参数的连续乘积,其中,所述第一行参数的个数与所述升阶值对应;根据所述升阶值对所述第一参数矩阵的列做分解,获得多个第一列参数的连续乘积,其中,所述第一列参数的个数与所述升阶值对应;根据所述第一行参数和所述第一列参数生成第一高阶张量,其中,所述第一高阶张量的维度与所述升阶值对应,所述第一高阶张量的每个维度的大小由对应的第一行参数和第一列参数确定。
可选的,所述第三升阶模块704,进一步被配置为根据所述升阶值对所述第二参数矩阵的行做分解,获得多个第二行参数的连续乘积,其中,所述第二行参数的个数与所述升阶值对应;根据所述升阶值对所述第二参数矩阵的列做分解,获得多个第二列参数的连续乘积,其中,所述第二列参数的个数与所述升阶值对应;根据所述第二行参数和所述第二列参数生成第二高阶张量,其中,所述第二高阶张量的维度与所述升阶值对应,所述第二高阶张量的每个维度的大小由对应的第二行参数和第二列参数确定。
可选的,所述第三分解模块706,进一步被配置为通过连式分解法对所述第一高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
可选的,所述第三分解模块706,进一步被配置为通过去皮分解法对所述第二高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。本申请实施例提供的神经网络模型的压缩装置,通过张量分解技术有效的减少了嵌入层及前馈网络层中的参数量,嵌入层参数量巨大,存在大量的冗余,对嵌入层使用连式分解法,在保持模型性能的基础上有效地减少了模型嵌入层的参数量,同时对前馈网络层中的参数进行去皮分解,减少了模型前馈网络层洪的参数量,在保持模型性能的同时显著的减小了神经网络模型的体积,实验证明,对嵌入层中的高阶张量使用连式分解法,对前馈网络层中的高阶张量使用去皮分解法,在应用中的评价指标BLEU值更高,在保持神经网络模型性能的同时能显著的减小神经网络模型的体积。
本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的神经网络模型的压缩方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述神经网络模型的压缩方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的神经网络模型的压缩方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述神经网络模型的压缩方法的技术方案的描述。
本申请实施例公开了一种芯片,其存储有计算机指令,该指令被处理器执行时实现如前所述神经网络模型的压缩方法的步骤。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (24)

1.一种神经网络模型的压缩方法,其特征在于,包括:
获取神经网络模型的嵌入层中的参数矩阵;
接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
对所述高阶张量进行分解,获得所述高阶张量的分解结果;
根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
2.如权利要求1所述的神经网络模型的压缩方法,其特征在于,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层和第二嵌入层;
获取神经网络模型的嵌入层中的参数矩阵,包括:
获取第一嵌入层和/或第二嵌入层中的参数矩阵。
3.如权利要求1所述的神经网络模型的压缩方法,其特征在于,所述升阶指令包括升阶值;
根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量,包括:
根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
4.如权利要求3所述的神经网络模型的压缩方法,其特征在于,根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量,包括:
根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;
根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;
根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
5.如权利要求1所述的神经网络模型的压缩方法,其特征在于,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
通过连式分解法对所述高阶张量进行分解,获得多个连续的张量的乘积,其中,所述多个连续的张量的首尾张量为三维,其他张量为四维。
6.如权利要求1所述的神经网络模型的压缩方法,其特征在于,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
7.一种神经网络模型的压缩方法,其特征在于,包括:
获取神经网络模型的前馈网络层中的参数矩阵;
接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
对所述高阶张量进行分解,获得所述高阶张量的分解结果;
根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
8.如权利要求7所述的神经网络模型的压缩方法,其特征在于,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括6个编码层和6个解码层,每个所述编码层和每个所述解码层各包括一个前馈网络层;
获取神经网络模型的前馈网络层中的参数矩阵,包括:
获取至少一个所述前馈网络层中的参数矩阵。
9.如权利要求7所述的神经网络模型的压缩方法,其特征在于,所述升阶指令包括升阶值;
根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量,包括:
根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量。
10.如权利要求9所述的神经网络模型的压缩方法,其特征在于,根据所述升阶值对所述参数矩阵进行升阶处理,获得与所述升阶值对应维度的高阶张量,包括:
根据所述升阶值对所述参数矩阵的行做分解,获得多个行参数的连续乘积,其中,所述行参数的个数与所述升阶值对应;
根据所述升阶值对所述参数矩阵的列做分解,获得多个列参数的连续乘积,其中,所述列参数的个数与所述升阶值对应;
根据所述行参数和所述列参数生成高阶张量,其中,所述高阶张量的维度与所述升阶值对应,所述高阶张量的每个维度的大小由对应的行参数和列参数确定。
11.如权利要求7所述的神经网络模型的压缩方法,其特征在于,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
通过连式分解法对所述高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
12.如权利要求7所述的神经网络模型的压缩方法,其特征在于,对所述高阶张量进行分解,获得所述高阶张量的分解结果,包括:
通过去皮分解法对所述高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
13.一种神经网络模型的压缩方法,其特征在于,包括:
获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵;
接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量;
对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果;
根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
14.如权利要求13所述的神经网络模型的压缩方法,其特征在于,所述神经网络模型为transformer翻译模型,所述transformer翻译模型包括第一嵌入层、第二嵌入层、6个编码层和6个解码层,第一嵌入层与6个编码层依次连接,第二嵌入层与6个解码层依次连接,每个所述编码层和每个所述解码层各包括一个前馈网络层;
获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵,包括:
获取第一嵌入层和/或第二嵌入层中的第一参数矩阵;
获取至少一个所述前馈网络层中的第二参数矩阵。
15.如权利要求13所述的神经网络模型的压缩方法,其特征在于,所述升阶指令包括升阶值;
根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量,包括:
根据所述升阶值对所述第一参数矩阵进行升阶处理,获得与所述升阶值对应的第一高阶张量;
根据所述升阶值对所述第二参数矩阵进行升阶处理,获得与所述升阶值对应的第二高阶张量。
16.如权利要求15所述的神经网络模型的压缩方法,其特征在于,根据所述升阶值对所述第一参数矩阵进行升阶处理,获得与所述升阶值对应维度的第一高阶张量,包括:
根据所述升阶值对所述第一参数矩阵的行做分解,获得多个第一行参数的连续乘积,其中,所述第一行参数的个数与所述升阶值对应;
根据所述升阶值对所述第一参数矩阵的列做分解,获得多个第一列参数的连续乘积,其中,所述第一列参数的个数与所述升阶值对应;
根据所述第一行参数和所述第一列参数生成第一高阶张量,其中,所述第一高阶张量的维度与所述升阶值对应,所述第一高阶张量的每个维度的大小由对应的第一行参数和第一列参数确定。
17.如权利要求15所述的神经网络模型的压缩方法,其特征在于,根据所述升阶值对所述第二参数矩阵进行升阶处理,获得与所述升阶值对应维度的第二高阶张量,包括:
根据所述升阶值对所述第二参数矩阵的行做分解,获得多个第二行参数的连续乘积,其中,所述第二行参数的个数与所述升阶值对应;
根据所述升阶值对所述第二参数矩阵的列做分解,获得多个第二列参数的连续乘积,其中,所述第二列参数的个数与所述升阶值对应;
根据所述第二行参数和所述第二列参数生成第二高阶张量,其中,所述第二高阶张量的维度与所述升阶值对应,所述第二高阶张量的每个维度的大小由对应的第二行参数和第二列参数确定。
18.如权利要求13所述的神经网络模型的压缩方法,其特征在于,对所述第一高阶张量进行分解获得第一分解结果,包括:
通过连式分解法对所述第一高阶张量进行分解,获得多个连续张量的乘积,其中所述多个连续张量的首尾张量为三维,其他张量为四维。
19.如权利要求13所述的神经网络模型的压缩方法,其特征在于,对所述第二高阶张量进行分解获得第二分解结果,包括:
通过去皮分解法对所述第二高阶张量进行分解,获得一个核心张量和多个矩阵的乘积。
20.一种神经网络模型的压缩装置,其特征在于,包括:
第一获取模块,被配置为获取神经网络模型的嵌入层中的参数矩阵;
第一升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
第一分解模块,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果;
第一更新模块,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
21.一种神经网络模型的压缩装置,其特征在于,包括:
第二获取模块,被配置为获取神经网络模型的前馈网络层中的参数矩阵;
第二升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述参数矩阵进行升阶处理,获得高阶张量;
第二分解模块,被配置为对所述高阶张量进行分解,获得所述高阶张量的分解结果;
第二更新模块,被配置为根据所述分解结果更新所述参数矩阵,获得压缩神经网络模型。
22.一种神经网络模型的压缩装置,其特征在于,包括:
第三获取模块,被配置为获取神经网络模型的嵌入层中的第一参数矩阵和前馈网络层中的第二参数矩阵;
第三升阶模块,被配置为接收升阶指令,并根据所述升阶指令对所述第一参数矩阵进行升阶处理获得第一高阶张量,根据所述升阶指令对所述第二参数矩阵进行升阶处理获得第二高阶张量;
第三分解模块,被配置为对所述第一高阶张量进行分解获得第一分解结果,对所述第二高阶张量进行分解获得第二分解结果;
第三更新模块,被配置为根据所述第一分解结果更新所述第一参数矩阵,根据所述第二分解结果更新所述第二参数矩阵,获得压缩神经网络模型。
23.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-6或者7-12或者13-19任意一项所述方法的步骤。
24.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-6或者7-12或者13-19任意一项所述方法的步骤。
CN202010293700.XA 2020-04-15 2020-04-15 一种神经网络模型的压缩方法及装置 Pending CN113537485A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010293700.XA CN113537485A (zh) 2020-04-15 2020-04-15 一种神经网络模型的压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010293700.XA CN113537485A (zh) 2020-04-15 2020-04-15 一种神经网络模型的压缩方法及装置

Publications (1)

Publication Number Publication Date
CN113537485A true CN113537485A (zh) 2021-10-22

Family

ID=78088146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010293700.XA Pending CN113537485A (zh) 2020-04-15 2020-04-15 一种神经网络模型的压缩方法及装置

Country Status (1)

Country Link
CN (1) CN113537485A (zh)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160217369A1 (en) * 2015-01-22 2016-07-28 Qualcomm Incorporated Model compression and fine-tuning
CN106127297A (zh) * 2016-06-02 2016-11-16 中国科学院自动化研究所 基于张量分解的深度卷积神经网络的加速与压缩方法
WO2019086104A1 (en) * 2017-10-30 2019-05-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Neural network representation
CN109766995A (zh) * 2018-12-28 2019-05-17 钟祥博谦信息科技有限公司 深度神经网络的压缩方法与装置
CN110032951A (zh) * 2019-03-25 2019-07-19 西安交通大学 一种基于塔克分解与主成分分析的卷积神经网络压缩方法
CN110070583A (zh) * 2019-04-17 2019-07-30 清华大学 基于张量分解和深度学习的信号压缩与恢复方法及系统
CN110263913A (zh) * 2019-05-23 2019-09-20 深圳先进技术研究院 一种深度神经网络压缩方法及相关设备
CN110276438A (zh) * 2019-05-15 2019-09-24 长沙理工大学 一种神经网络参数压缩方法及相关装置
US20190325312A1 (en) * 2018-04-20 2019-10-24 Fujitsu Limited Computer-readable recording medium, machine learning method, and machine learning apparatus
US20190332941A1 (en) * 2018-04-25 2019-10-31 Qualcomm Incorporated Learning a truncation rank of singular value decomposed matrices representing weight tensors in neural networks
US20190332925A1 (en) * 2018-04-30 2019-10-31 International Business Machines Corporation Neural hardware accelerator for parallel and distributed tensor computations
CN110428045A (zh) * 2019-08-12 2019-11-08 电子科技大学 基于Tucker算法的深度卷积神经网络压缩方法
CN110443354A (zh) * 2019-07-26 2019-11-12 深圳大学 一种基于多组张列量分解的深度神经网络压缩方法、系统、装置及存储介质
CN110647356A (zh) * 2018-06-27 2020-01-03 北京中科寒武纪科技有限公司 运算装置及相关产品
CN110751265A (zh) * 2019-09-24 2020-02-04 中国科学院深圳先进技术研究院 一种轻量型神经网络构建方法、系统及电子设备
CN111008517A (zh) * 2019-10-30 2020-04-14 天津大学 一种基于张量分解技术的神经语言模型的压缩方法

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160217369A1 (en) * 2015-01-22 2016-07-28 Qualcomm Incorporated Model compression and fine-tuning
CN106127297A (zh) * 2016-06-02 2016-11-16 中国科学院自动化研究所 基于张量分解的深度卷积神经网络的加速与压缩方法
WO2019086104A1 (en) * 2017-10-30 2019-05-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Neural network representation
US20190325312A1 (en) * 2018-04-20 2019-10-24 Fujitsu Limited Computer-readable recording medium, machine learning method, and machine learning apparatus
US20190332941A1 (en) * 2018-04-25 2019-10-31 Qualcomm Incorporated Learning a truncation rank of singular value decomposed matrices representing weight tensors in neural networks
US20190332925A1 (en) * 2018-04-30 2019-10-31 International Business Machines Corporation Neural hardware accelerator for parallel and distributed tensor computations
CN110647356A (zh) * 2018-06-27 2020-01-03 北京中科寒武纪科技有限公司 运算装置及相关产品
CN109766995A (zh) * 2018-12-28 2019-05-17 钟祥博谦信息科技有限公司 深度神经网络的压缩方法与装置
CN110032951A (zh) * 2019-03-25 2019-07-19 西安交通大学 一种基于塔克分解与主成分分析的卷积神经网络压缩方法
CN110070583A (zh) * 2019-04-17 2019-07-30 清华大学 基于张量分解和深度学习的信号压缩与恢复方法及系统
CN110276438A (zh) * 2019-05-15 2019-09-24 长沙理工大学 一种神经网络参数压缩方法及相关装置
CN110263913A (zh) * 2019-05-23 2019-09-20 深圳先进技术研究院 一种深度神经网络压缩方法及相关设备
CN110443354A (zh) * 2019-07-26 2019-11-12 深圳大学 一种基于多组张列量分解的深度神经网络压缩方法、系统、装置及存储介质
CN110428045A (zh) * 2019-08-12 2019-11-08 电子科技大学 基于Tucker算法的深度卷积神经网络压缩方法
CN110751265A (zh) * 2019-09-24 2020-02-04 中国科学院深圳先进技术研究院 一种轻量型神经网络构建方法、系统及电子设备
CN111008517A (zh) * 2019-10-30 2020-04-14 天津大学 一种基于张量分解技术的神经语言模型的压缩方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
舒红乔;洪缨;刘岩;: "基于参数共享的卷积神经网络压缩", 网络新媒体技术, no. 01, 15 January 2020 (2020-01-15) *

Similar Documents

Publication Publication Date Title
CN111222347B (zh) 语句翻译模型的训练方法及装置、语句翻译方法及装置
CN106547735B (zh) 基于深度学习的上下文感知的动态词或字向量的构建及使用方法
CN109858044B (zh) 语言处理方法和装置、语言处理系统的训练方法和装置
US11663488B2 (en) Initialization of parameters for machine-learned transformer neural network architectures
CN109710953B (zh) 一种翻译方法及装置、计算设备、存储介质和芯片
CN111931518A (zh) 一种翻译模型的训练方法及装置
CN111738020B (zh) 一种翻译模型的训练方法及装置
CN110677651A (zh) 一种视频压缩方法
JP7408799B2 (ja) ニューラルネットワークモデルの圧縮
CN110321962B (zh) 一种数据处理方法及装置
CN111178258B (zh) 一种图像识别的方法、系统、设备及可读存储介质
WO2021143021A1 (zh) 基于大数据的答案位置获取方法、装置、设备及介质
CN110751265A (zh) 一种轻量型神经网络构建方法、系统及电子设备
CN111783423A (zh) 解题模型的训练方法及装置、解题方法及装置
CN110781686A (zh) 一种语句相似度计算方法、装置及计算机设备
KR20240065281A (ko) 벡터-양자화된 이미지 모델링
CN110175338B (zh) 一种数据处理方法及装置
CN114492759A (zh) 稀疏注意力神经网络
CN116309135A (zh) 扩散模型处理方法及装置、图片处理方法及装置
CN114077844A (zh) 一种数据处理方法及装置
CN111767744A (zh) 文本风格迁移系统的训练方法及装置
CN113537485A (zh) 一种神经网络模型的压缩方法及装置
CN112734025B (zh) 基于固定基正则化的神经网络参数稀疏化方法
CN116187401B (zh) 神经网络的压缩方法、装置、电子设备及存储介质
CN113449529A (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