CN117371508A - 模型压缩方法、装置、电子设备以及存储介质 - Google Patents
模型压缩方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN117371508A CN117371508A CN202311280391.2A CN202311280391A CN117371508A CN 117371508 A CN117371508 A CN 117371508A CN 202311280391 A CN202311280391 A CN 202311280391A CN 117371508 A CN117371508 A CN 117371508A
- Authority
- CN
- China
- Prior art keywords
- model
- layer
- weight
- weights
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000007906 compression Methods 0.000 title claims abstract description 98
- 230000006835 compression Effects 0.000 title claims abstract description 97
- 239000011159 matrix material Substances 0.000 claims abstract description 213
- 238000013139 quantization Methods 0.000 claims abstract description 189
- 230000004913 activation Effects 0.000 claims abstract description 85
- 230000004927 fusion Effects 0.000 claims abstract description 70
- 230000008878 coupling Effects 0.000 claims abstract description 19
- 238000010168 coupling process Methods 0.000 claims abstract description 19
- 238000005859 coupling reaction Methods 0.000 claims abstract description 19
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 76
- 230000035945 sensitivity Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 49
- 230000001133 acceleration Effects 0.000 description 25
- 238000012549 training Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000013138 pruning Methods 0.000 description 9
- 238000007667 floating Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000012916 structural analysis Methods 0.000 description 2
- 235000002198 Annona diversifolia Nutrition 0.000 description 1
- 102100039134 Integrator complex subunit 4 Human genes 0.000 description 1
- 101710092887 Integrator complex subunit 4 Proteins 0.000 description 1
- 241000282842 Lama glama Species 0.000 description 1
- 101100317378 Mus musculus Wnt3 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000011773 genetically engineered mouse model Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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
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
技术领域
本公开涉及人工智能技术领域,尤其涉及大语言模型领域,具体地,涉及一种模型压缩方法、装置、电子设备以及存储介质。
背景技术
大语言模型作为自然语言处理领域的重要技术,以模型体积巨大、通用性广泛为主要特征,在泛用型任务中表现出色。在机器翻译、文本生成、问答系统等诸多领域具有广阔的应用场景。
发明内容
本公开提供了一种模型压缩方法、装置、电子设备以及存储介质。
根据本公开的一方面,提供了一种模型压缩方法,包括:响应于接收到待压缩模型的初始模型参数以及针对初始模型参数设置的目标压缩精度,从初始模型参数中读取待压缩模型的模型权重矩阵;对模型权重矩阵进行稀疏化处理,得到稀疏权重矩阵,其中,初始模型参数包括模型权重矩阵,根据稀疏权重矩阵确定的模型的目标精度与待压缩模型的初始精度的差值小于预设阈值;对稀疏权重矩阵中的目标权重进行融合,得到融合权重,目标权重表征待压缩模型中具有耦合关系的子网络的模型权重,待压缩模型包括至少一个子网络;根据目标压缩精度,对包括融合权重的目标模型参数进行量化,得到量化参数,目标模型参数包括稀疏权重矩阵所表征的模型权重以及基于稀疏权重矩阵确定的激活值;以及根据量化参数,确定与待压缩模型相对应的压缩后模型。
根据本公开的另一方面,提供了一种模型压缩装置,包括:读取模块,用于响应于接收到待压缩模型的初始模型参数以及针对初始模型参数设置的目标压缩精度,从初始模型参数中读取待压缩模型的模型权重矩阵;稀疏化处理模块,用于对模型权重矩阵进行稀疏化处理,得到稀疏权重矩阵,其中,初始模型参数包括模型权重矩阵,根据稀疏权重矩阵确定的模型的目标精度与待压缩模型的初始精度的差值小于预设阈值;融合模块,用于对稀疏权重矩阵中的目标权重进行融合,得到融合权重,目标权重表征待压缩模型中具有耦合关系的子网络的模型权重,待压缩模型包括至少一个子网络;量化模块,用于根据目标压缩精度,对包括融合权重的目标模型参数进行量化,得到量化参数,目标模型参数包括稀疏权重矩阵所表征的模型权重以及基于稀疏权重矩阵确定的激活值;以及压缩后模型确定模块,用于根据量化参数,确定与待压缩模型相对应的压缩后模型。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开的模型压缩方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开的模型压缩方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序存储于可读存储介质和电子设备其中至少之一上,计算机程序在被处理器执行时实现本公开的模型压缩方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1示意性示出了根据本公开实施例的可以应用模型压缩方法及装置的示例性系统架构;
图2示意性示出了根据本公开实施例的内容处理方法的流程图;
图3示意性示出了根据本公开实施例的对模型权重矩阵进行稀疏化处理的示意图;
图4示意性示出了根据本公开实施例的attention head的结构图;
图5示意性示出了根据本公开实施例的基于压缩加速机制构建的系统的进行模型压缩的示意图;
图6示意性示出了根据本公开实施例的模型压缩装置的框图;以及
图7示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
由于大语言模型海量的数据处理规模以及模型自身庞大的参数量,使得其需要高昂的计算资源来支持模型的训练和推理。对于普通用户,大语言模型的部署成本难以负担,限制了该技术的发展和推广。因此,对大语言模型进行压缩加速以降低模型部署门槛,具有广阔的应用场景和显著的产品优化效果。
模型量化和剪枝是模型压缩领域两大主流的压缩手段。
模型量化大致可以分成2类。一类业内称之为量化感知训练(Quantization-awaretraining,QAT),该类量化算法在模型训练过程的前向传播中进行,对权重和激活值进行量化操作,但是反向传播和损失计算仍然以浮点数形式完成。该类方法的优点是可以在训练过程中让模型适应量化带来的损失,并借此调整参数,达到量化后模型精度无损的效果。另外一类是无需训练参与的静态量化(Post-training quantization,PTQ),该类量化方法通过统计一定数据量的推理过程,计算模型权重和激活值的数据分布,进行高精度到低精度数据的数值映射,完成量化。该类方法的优点是速度较快,不需要训练过程参与。
但是这些已有的量化压缩加速工具,在大语言模型应用场景下,均有比较明显的缺点:QAT需要训练过程参与。大语言模型由于其参数量巨大,训练数据集体量巨大,其训练过程往往需要在昂贵的机器上消耗大量的机器时间,量化成本过高。不具备广泛的可使用性。PTQ同样受制于大语言模型庞大的参数量,其参数数据分布范围将极其广泛,同时不可避免地出现许多离群值和异常值,这些因素将极大地影响量化结果,导致量化后模型精度断崖式下跌。虽然实现了模型压缩推理加速,但是模型性能受损严重。
模型剪枝技术方案可以大致分为2类。一类是结构化剪枝。该类方法通过结构调整删减模型参数,从参数量上缩小模型体积,直观实现模型压缩。另一类是非机构化剪枝。该类方法通过稀疏化手段将模型特征表达参数聚拢在少量重点参数上,配合特定加速库实现模型推理加速。
结构化剪枝由于更改了模型结构,往往需要对模型进行重新训练或者微调来恢复模型精度。非结构化剪枝无法有效减小模型体积,另外需要额外的加速库适配硬件来实现模型加速。
发明人在实现本公开构思的过程中发现,模型压缩过程需要复杂的数值计算和庞大的数据分布统计,涉及到模型结构分析,模型参数分布统计,模型结构调整,压缩精度损失修复等多种子任务。压缩任务带来的精度损失也随着模型结构的复杂程度、模型参数间的耦合程度、模型参数量的规模程度而逐渐增大。越是复杂庞大的模型,其压缩难度越大,压缩后的模型性能越难以保持。在处理大语言模型这种参数量巨大,结构极其复杂多样的新兴模型时,普通开发者将面临艰难的压缩算法适配问题以及难以预估的压缩后模型效果损失。
图1示意性示出了根据本公开实施例的可以应用模型压缩方法及装置的示例性系统架构。
需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。例如,在另一实施例中,可以应用模型压缩方法及装置的示例性系统架构可以包括终端设备,但终端设备可以无需与服务器进行交互,即可实现本公开实施例提供的模型压缩方法及装置。
如图1所示,根据该实施例的系统架构100可以包括第一终端设备101、第二终端设备102、第三终端设备103,网络104和服务器105。网络104用以在第一终端设备101、第二终端设备102、第三终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用第一终端设备101、第二终端设备102、第三终端设备103通过网络104与服务器105交互,以接收或发送消息等。第一终端设备101、第二终端设备102、第三终端设备103上可以安装有各种通讯客户端应用,例如知识阅读类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
第一终端设备101、第二终端设备102、第三终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用第一终端设备101、第二终端设备102、第三终端设备103所浏览的内容提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
需要说明的是,本公开实施例所提供的模型压缩方法一般可以由第一终端设备101、第二终端设备102或第三终端设备103执行。相应地,本公开实施例所提供的模型压缩装置也可以设置于第一终端设备101、第二终端设备102或第三终端设备103中。
或者,本公开实施例所提供的模型压缩方法一般也可以由服务器105执行。相应地,本公开实施例所提供的模型压缩装置一般可以设置于服务器105中。本公开实施例所提供的模型压缩方法也可以由不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的模型压缩装置也可以设置于不同于服务器105且能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群中。
例如,在需要进行模型压缩时,第一终端设备101、第二终端设备102、第三终端设备103可以获取用户视线指向的电子书中的目标内容,然后将获取的目标内容发送给服务器105,由服务器105对目标内容进行分析,确定目标内容的特征信息;根据目标内容的特征信息预测用户感兴趣的内容;以及摘抄用户感兴趣的内容。或者由能够与第一终端设备101、第二终端设备102、第三终端设备103和/或服务器105通信的服务器或服务器集群对目标内容进行分析,并最终实现摘抄用户感兴趣的内容。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例的内容处理方法的流程图。
如图2所示,该方法包括操作S210~S250。
在操作S210,响应于接收到待压缩模型的初始模型参数以及针对初始模型参数设置的目标压缩精度,从初始模型参数中读取待压缩模型的模型权重矩阵。
根据本公开的实施例,待压缩模型可以包括大语言模型,例如可以包括LLaMa(一种开源大模型)、LLaMa2(一种开源大模型)、Bloom(一种新大型语言模型)、OPT(optimumperformance training,最佳表现训练模型)等任意至少一种系列模型,且可不限于此。初始模型参数可以包括待压缩模型的模型权重矩阵,还可以包括基于待压缩模型确定的激活值、待压缩模型各个子网络的输入数据以及输出数据等,且可不限于此。
需要说明的是,待压缩模型可以不限于如上,例如还可以包括各类深度学习模型、神经网络模型等。
根据本公开的实施例,目标模型精度可以用于定义压缩模型的模型参数的精度,例如,目标压缩精度可以包括如下中的任意之一:int8、int4等,且可不限于此。int8可用于控制将待压缩模型的初始模型参数压缩为8bit整数型参数。Int4可用于控制将待压缩模型的初始模型参数压缩为4bit整数型参数。
在操作S220,对模型权重矩阵进行稀疏化处理,得到稀疏权重矩阵,其中,初始模型参数包括模型权重矩阵,根据稀疏权重矩阵确定的模型的目标精度与待压缩模型的初始精度的差值小于预设阈值。
根据本公开的实施例,对模型权重矩阵进行稀疏化处理的过程可以采用非结构化剪枝的方式实现,非结构化剪枝的过程可以基于模型稀疏化模块实现。该方法可以不需要更改模型结构,稀疏化过程也不会影响模型的精度和性能。模型稀疏化模块作为模型量化的前置模块,其主要作用一个是负责参数聚拢,通过将模型权重矩阵调整为大量的零,以及非零元素表征的稠密元素,实现通过稀疏化手段将模型参数聚拢在少量重点参数上。在参数量巨大的大语言模型中,可以为后续的量化操作降低量化难度,简化参数分布。另一个是使模型可以适配特定的硬件加速库。硬件加速库可以将稀疏矩阵中的非零元素提取出来,组合成新的矩阵。稀疏化模块可以借助CUTLASS(一种高性能计算库)加速库对GEMM(GEneral Matrix to Matrix Multiplication,通用矩阵乘法)算子进行计算效率优化,可以提升模型在GPU(Graphics Processing Unit,图形处理器)上的推理速度。例如,稀疏矩阵每一列稀疏比例设定为50%,新矩阵列向量将仅为原矩阵的一半,矩阵整体参数量将削减一半。使用GPU硬件的Sparse Tensor Cores(稀疏张量核)进行加速计算,可以提高矩阵乘法的计算速度,实现推理加速的功能。
根据本公开的实施例,预设阈值可以根据实际业务需求自定义确定。在基于模型稀疏化模块对模型权重矩阵进行稀疏化处理,得到稀疏权重矩阵的过程中,可以以根据稀疏权重矩阵确定的模型的目标精度与待压缩模型的初始精度的差值小于预设阈值这一条件作为约束,实施该稀疏化处理。例如,在每次对模型权重矩阵进行稀疏化处理之后,可以确定根据稀疏化处理得到的模型权重矩阵确定的模型的目标精度,并对该目标精度与待压缩模型的初始精度进行对比,在确定目标精度与初始精度的差值小于预设阈值的情况下,将能够达到目标精度的稀疏化处理得到的模型权重矩阵确定为稀疏参数矩阵。
需要说明的是,上述稀疏化处理的过程可不限于随机置零、随机调整等处理过程,只要能够实现稀疏化处理,且根据稀疏权重矩阵确定的模型的目标精度与待压缩模型的初始精度的差值小于预设阈值即可。
在操作S230,对稀疏权重矩阵中的目标权重进行融合,得到融合权重,目标权重表征待压缩模型中具有耦合关系的子网络的模型权重,待压缩模型包括至少一个子网络。
根据本公开的实施例,具有耦合关系的子网络例如可以表征待压缩模型中的层结构网络。层结构网络具体可以表征为线性层结构网络。融合的方式可以包括如下至少之一:层融合、拼接融合等,且可不限于此。例如,对于矩阵计算中具有上下承接关系,能够执行串行计算的目标权重,可以实施层融合。对于存在并行关系的目标权重,可以对该目标权重或者基于该目标权重确定的输出特征执行拼接融合。
在操作S240,根据目标压缩精度,对包括融合权重的目标模型参数进行量化,得到量化参数,目标模型参数包括稀疏权重矩阵所表征的模型权重以及基于稀疏权重矩阵确定的激活值。
根据本公开的实施例,目标模型参数可以具有与初始模型参数相同或相似的技术特征,在此不进行限定。量化过程可以基于模型量化模块实现。模型量化模块可以以模型稀疏化模块的输出作为输入,随后进行量化操作。激活值可以表征文本、图像、音频信号等各类信息经由待压缩模型的稀疏权重矩阵处理后得到的向量特征。该向量特征可以以浮点值进行表示。模型量化可以通过处理深度神经网络中以浮点值存储的权重和激活值,将高精度的数据类型转换为低精度的数据类型,降低数据存储的空间占用。
例如,在执行量化操作的过程中,可以根据目标压缩精度,以PTQ原理将浮点型的模型参数映射到对应的整数型的数据精度。
在操作S250,根据量化参数,确定与待压缩模型相对应的压缩后模型。
根据本公开的实施例,可以根据量化参数所表征的模型权重,对待压缩模型的各个子网络的模型权重进行更新,即可得到压缩后模型。
以千亿参数量大语言模型为例,例如其针对文本信息进行推理运行时需要至少5块NVIDIA A100-80GB GPU支持。基于上述方法,可以首先从大语言模型中筛选得到大语言模型的初始大语言模型参数。初始大语言模型参数可以包括大语言模型的大语言模型权重矩阵,以及由大语言模型基于大语言模型权重矩阵输出的文本向量特征。通过首先对大语言模型权重矩阵进行稀疏化处理,得到大语言模型稀疏权重矩阵。然后,对大语言模型稀疏权重矩阵中的大语言模型目标权重进行耦合,得到大语言模型融合权重。并根据目标压缩精度,对包括大语言模型融合权重的大语言模型稀疏权重矩阵以及文本向量特征进行浮点值转整数值的处理,可以得到大语言模型量化参数。根据大语言模型量化参数可以确定压缩后的大语言模型。本实施例中,在利用压缩后的大语言模型推理运行文本信息时,例如仅需要1块该GPU即可进行推理,可有效优化计算资源占用。
以LLaMa2-70b模型为例,例如使用原始模型进行图像推理,需要占用132GB显存,预计使用4块A100-40GB显卡资源。基于与前述大语言模型类似的压缩方法,例如可以首先从LLaMa2-70b模型中筛选得到LLaMa2-70b模型的初始LLaMa2-70b模型参数。初始LLaMa2-70b模型参数可以包括LLaMa2-70b模型的LLaMa2-70b模型权重矩阵,以及由LLaMa2-70b模型基于LLaMa2-70b模型权重矩阵输出的图像向量特征。通过首先对LLaMa2-70b模型权重矩阵进行稀疏化处理,得到LLaMa2-70b模型稀疏权重矩阵。然后,对LLaMa2-70b模型稀疏权重矩阵中的LLaMa2-70b模型目标权重进行耦合,得到LLaMa2-70b模型融合权重。并根据目标压缩精度,对包括LLaMa2-70b模型融合权重的LLaMa2-70b模型稀疏权重矩阵以及图像向量特征进行浮点值转整数值的处理,可以得到LLaMa2-70b模型量化参数。根据LLaMa2-70b模型量化参数可以得到的轻量化的LLaMa2-70b模型。本实施例中,基于轻量化的LLaMa2-70b模型推理运行图像信息时,将仅需要35GB显存,预计使用1块同类显卡即可完成推理,并实现推理加速。
需要说明的是,上述使用大语言模型、LLaMa2-70b模型作为待压缩模型,处理文本、图像类数据仅是示例性实施例,可不限于此,对应于实际业务需求,可以针对处理各类数据的各类待压缩模型执行上述模型压缩操作,在此不进行限定。
通过本公开的上述实施例,由于计算加速库会将稀疏矩阵中的非零元素提取出来,组合成新的矩阵,在使用GPU硬件处理稀疏权重矩阵的过程中,可以减少要处理的参数量,实现加速计算,可有效提高矩阵乘法的计算速度。结合层融合方式,可以进一步减少量化时的计算量,并可适配多种结构的模型,得到的压缩后模型可有效减少对计算机资源的占用。此外,基于该方法,可以一键式完成多种大语言模型的压缩加速处理。用户仅需要上传或选择原始待压缩模型,指定其想要的目标压缩精度,便可自动完成对目标模型的结构分析和量化压缩,最终提供模型体积更小,推理速度更快的压缩后模型。
下面结合具体实施例,对图2所示的方法做进一步说明。
根据本公开的实施例,待压缩模型包括多个通道。上述操作S220可以包括:将模型权重矩阵中属于同一通道的模型权重作为一个单位,对模型权重矩阵进行稀疏化处理。
根据本公开的实施例,同一个通道的模型权重在模型权重矩阵中可以以列的形式记录,也可以以行的形式记录,也可以以其他随机记录的形式记录。
根据本公开的实施例,在同一通道的模型权重随机记录的情况下,或者未获取到模型权重矩阵的情况下,在需要对模型权重矩阵信息稀疏化处理时,可以以通道为单位,对属于同一通道的模型权重进行稀疏化处理。并在对部分或所有通道的模型权重均进行稀疏化处理之后,得到稀疏权重矩阵。
根据本公开的一个实施例,模型权重矩阵的每一列可以表征与同一个输入channel(通道)相对应的模型权重,每一行可以表征与同一个输入token(词元)相对应的模型权重。
根据本公开的实施例,在与同一个输入通道相对应的模型权重以列的形式记录的情况下,将模型权重矩阵中属于同一通道的模型权重作为一个单位,对模型权重矩阵进行稀疏化处理可以包括:以模型权重矩阵中的列为单位,对列中的列模型权重进行稀疏化处理。
根据本公开的实施例,对列中的列模型权重进行稀疏化处理可以包括:将列模型权重中的第一部分权重置零。对与第一部分权重相同行的第一目标权重进行调整。
根据本公开的实施例,可以对列模型权重中随机确定的第一部分权重置零,也可以根据预定义稀疏度,确定列模型权重中需要被置零的第一部分权重的数目,并对列模型权重中随机确定的相应数目的第一部分权重置零。
根据本公开的实施例,在将列模型权重中的第一部分权重置零之后,可以对模型权重矩阵中与第一部分权重相同行的所有第一目标权重进行调整。也可以对模型权重矩阵中与第一部分权重相同行的非零第一目标权重进行调整,以保证模型权重矩阵的稀疏度。
通过本公开的上述实施例,结合置零和调整两部分操作,可以有效保证根据稀疏权重矩阵确定的模型的精度。
根据本公开的实施例,上述将列模型权重中的第一部分权重置零可以包括:将模型权重矩阵中第m列的第一部分权重置零,m依次取1至M中的整数,M表征模型权重矩阵的列数。在此基础上,上述对与第一部分权重相同行的第一目标权重进行调整可以包括:对模型权重矩阵中第m+1列至第M列的第一目标权重进行调整。
根据本公开的实施例,在以模型权重矩阵的列为操作单元,对模型权重矩阵的某一列进行稀疏化处理时,可以通过分摊调整该列右侧的其它权重,即与第一部分权重相同行的第一目标权重,抵消弥补稀疏化处理带来的性能损失。以此类推,逐列对模型参数进行操作,可以实现对模型权重矩阵的稀疏化处理,并得到稀疏权重矩阵。
图3示意性示出了根据本公开实施例的对模型权重矩阵进行稀疏化处理的示意图。
如图3所示,模型权重矩阵300例如为6行×3列的矩阵,包括第一列模型权重301、第二列模型权重302、第三列模型权重303、第四列模型权重304,该矩阵中的每一列表征与同一个输入channel相对应的模型权重,每一行表征与同一个输入token相对应的模型权重。
例如,以列为单位,并设定预定义稀疏度为50%。
首先,可以针对模型权重矩阵300,对其中包括6个权重元素的第一列模型权重301中的随机3个第一部分权重置零,并对第二列模型权重302、第三列模型权重303、第四列模型权重304中与第一列模型权重301中的第一部分权重相同行的第一目标权重进行调整,得到第一权重矩阵310。例如,参见图3中的第一权重矩阵310,可以包括第一列模型权重311、第二列模型权重312、第三列模型权重313、第四列模型权重314。第一列模型权重311中的黑色区域可以表征已置零的权重,第二列模型权重312、第三列模型权重313、第四列模型权重314各自中的灰色区域可以表征要调整的权重。
然后,可以针对第一权重矩阵310,对包括6个权重元素的第二列模型权重312中的随机3个第一部分权重置零,并对第三列模型权重313、第四列模型权重314中与第二列模型权重312中的第一部分权重相同行的第一目标权重进行调整,得到第二权重矩阵320。例如,参见图3中的第二权重矩阵320,可以包括第一列模型权重321、第二列模型权重322、第三列模型权重323、第四列模型权重324。第一列模型权重321根据第一列模型权重311确定,第二列模型权重322中的黑色区域可以表征已置零的权重,第三列模型权重323、第四列模型权重324各自中的灰色区域可以表征要调整的权重。
之后,可以针对第二权重矩阵320,对第三列模型权重323、第四列模型权重324分别执行前述随机置零及同行调整的操作,可以得到稀疏权重矩阵330。稀疏权重矩阵330中0值的占比为50%。
需要说明的是,在对模型权重矩阵中第M列的第一部分权重置零之后,可以不再执行同行调整操作。对应于上述实施例,在对第四列模型权重334执行前述随机置零操作之后,可以不再执行同行调整操作。
通过本公开的上述实施例,通过在权重稀疏化后自动调整其余权重,可以减少稀疏化后重训练,减小稀疏化对模型性能的影响,将该方法应用于大语言模型中时,可有效降低训练成本。
根据本公开的实施例,上述对与第一部分权重相同行的第一目标权重进行调整可以包括:将第一输入数据输入待压缩模型,得到第一初始输出结果。将第一输入数据输入第一调整后模型,得到第一目标输出结果,第一调整后模型的模型权重矩阵表征为将第一部分参数置零后的模型权重矩阵。根据第一初始输出结果和第一目标输出结果,确定第一敏感度损失。根据第一敏感度损失,对第一目标权重进行调整。
根据本公开的实施例,第一输入数据用作待压缩模型和第一调整后模型的输入数据,可以根据待压缩模型的模型输入数据确定,也可以随机选择相关数据确定,在此不做限定。模型输入数据可以包括如下中的至少之一:文本、图像、音频信号等,且可不限于此。例如,模型输入数据为音频信号,第一初始输出结果可以表征由待压缩模型基于初始模型权重矩阵输出的初始音频向量特征,第一目标输出结果可以表征由第一调整后模型基于将第一部分参数置零后的模型权重矩阵输出的目标音频向量特征。可以根据初始音频向量特征和目标音频向量特征确定一个第一敏感度损失。
根据本公开的实施例,在以模型权重矩阵的列为操作单元,对模型权重矩阵的某一列进行稀疏化处理时,可以将权重置零对模型推理结果的影响通过layer-wise(逐层)敏感度损失来量化统计。例如,结合图3所示的实施例,可以将第一输入数据输入基于模型权重矩阵300确定的待压缩模型中,得到第一初始输出结果。将第一输入数据输入基于第一权重矩阵310确定的模型中,得到第一目标输出结果。然后,根据第一初始输出结果和所述第一目标输出结果的差值,确定第一敏感度损失。之后,可以根据第一敏感度损失,对第二列模型权重312、第三列模型权重313、第四列模型权重314中与第一列模型权重311中的黑色区域相同行的灰色区域所表征的权重进行调整。
需要说明的是,在针对第二权重矩阵320中的第三列模型权重323、第四列模型权重324进行同行调整,以及针对后续每个列模型权重置零并对该列右侧相关参数进行同行调整的过程中,均可以结合前述第一敏感度损失,实施调整,在此不再赘述。
通过本公开的上述实施例,通过使用敏感度损失,统计稀疏前后层级输出的特征差异,用以衡量模型参数变化前后的性能影响,并指导后续权重的调整策略,可以减少稀疏化后重训练的过程,减小稀疏化对模型性能的影响,降低训练成本。
根据本公开的另一个实施例,模型权重矩阵的每一列可以表征与同一个输入token相对应的模型权重,每一行可以表征与同一个输入channel相对应的模型权重。例如,在对模型权重的输入矩阵进行转置之后,可以得到该种情况所表征的模型权重矩阵。
根据本公开的实施例,在与同一个输入通道相对应的模型权重以行的形式记录的情况下,将模型权重矩阵中属于同一通道的模型权重作为一个单位,对模型权重矩阵进行稀疏化处理可以包括:以模型权重矩阵中的行为单位,对行中的行模型权重进行稀疏化处理。
根据本公开的实施例,上述对行中的行模型权重进行稀疏化处理可以包括:将行模型权重中的第二部分权重置零。对与第二部分权重相同列的第二目标权重进行调整。
根据本公开的实施例,第二部分权重可以具有与前述第一部分权重相同或相似的技术特征。第二目标权重可以具有与前述第一目标权重相同或相似的技术特征。对行模型权重进行稀疏化处理的过程与前述对列模型权重进行稀疏化处理的过程具有相同或相似的实施方法,对行模型权重进行稀疏化处理的过程可以参考前述对列模型权重进行稀疏化处理的过程,仅需将前述实施过程中的列变换为行即可,在此不再赘述。
通过本公开的上述实施例,结合置零和调整两部分操作,可以有效保证根据稀疏权重矩阵确定的模型的精度。
根据本公开的实施例,上述将行模型权重中的第二部分权重置零可以包括:将模型权重矩阵中第n行的第二部分权重置零,n依次取1至N中的整数,N表征模型权重矩阵的行数。在此基础上,上述对与第二部分权重相同列的第二目标权重进行调整可以包括:对模型权重矩阵中第n+1行至第N行的第二目标权重进行调整。
根据本公开的实施例,在以模型权重矩阵的行为操作单元,对模型权重矩阵的某一行进行稀疏化处理时,可以通过分摊调整该行下侧的其它权重,即与第二部分权重相同行的第二目标权重,抵消弥补稀疏化处理带来的性能损失。以此类推,逐行对模型权重进行操作,可以实现对模型权重矩阵的稀疏化处理,并得到稀疏权重矩阵。
根据本公开的实施例,逐行对模型权重进行操作的过程与图3所示的逐列对模型权重进行操作的过程相同,只需把图3中的列变换为行,在此不再赘述。
通过本公开的上述实施例,通过在权重稀疏化后自动调整其余权重,可以减少稀疏化后重训练,减小稀疏化对模型性能的影响,将该方法应用于大语言模型中时,可有效降低训练成本。
根据本公开的实施例,上述对与第二部分权重相同列的第二目标权重进行调整可以包括:将第二输入数据输入待压缩模型,得到第二初始输出结果。将第二输入数据输入第二调整后模型,得到第二目标输出结果,第二调整后模型的模型权重矩阵表征为将第二部分参数置零后的模型权重矩阵。根据第二初始输出结果和第二目标输出结果,确定第二敏感度损失。根据第二敏感度损失,对第二目标权重进行调整。
根据本公开的实施例,第二输入数据可以具有与第一输入数据相同或相似的技术特征。第二敏感度损失可以具有与前述第一敏感度损失相同或相似的技术特征。得到第二初始输出结果、第二目标输出结果的过程可以参见前述得到第一初始输出结果、第一目标输出结果的过程。确定第二敏感度损失的过程可以参见前述确定第一敏感度损失的过程。根据第二敏感度损失,对第二目标权重进行调整的过程可以参见前述根据第一敏感度损失,对第一目标权重进行调整的过程,在此不再赘述。
通过本公开的上述实施例,通过使用敏感度损失,统计稀疏前后层级输出的特征差异,用以衡量模型参数变化前后的性能影响,并指导后续权重的调整策略,可以减少稀疏化后重训练的过程,减小稀疏化对模型性能的影响,降低训练成本。
根据本公开的实施例,具有耦合关系的子网络可以构成一个层结构网络。待压缩模型可以包括至少一个层结构网络。
根据本公开的实施例,上述操作S230可以包括:从稀疏权重矩阵中,获取与层结构网络相关的层目标权重。对层目标权重进行层融合,得到与层结构网络相对应的层融合权重。根据与至少一个层结构网络相对应的至少一个层融合权重,确定融合权重。
根据本公开的实施例,可以首先对待压缩模型的模型结构进行分析,通过筛选线性层结构,确定可融和的目标权重。例如,可以针对大语言模型的模型结构进行分析,得到大语言模型结构中的Attention Head(注意力头)、MLP(多层感知机)等的模型权重,并通过分析Attention Head和MLP中具有耦合关系的子网络构成的层结构网络,对AttentionHead、MLP等中的模型权重,以层网络结构为单位,进行层融合。
需要说明的是,层融合的过程可以根据预先定义的层融合公式实现,也可以通过筛选层目标权重,进行简单的拼接实现,在此不进行限定,只要能够实现对层目标权重进行融合即可。
根据本公开的实施例,上述操作S240可以包括:将第三输入数据输入层结构网络,得到与层结构网络相关的层激活值,层结构网络的层模型权重为稀疏权重矩阵中与层结构网络相关的模型权重。根据层激活值和层模型权重的权重值,确定数据分布范围。根据目标压缩精度和数据分布范围,对层激活值和层模型权重进行量化,得到与层结构网络相对应的层量化参数。根据与至少一个层结构网络相对应的至少一个层量化参数,确定量化参数。
根据本公开的实施例,第三输入数据可以表征模型的输入数据,可以根据待压缩模型的模型输入数据确定,也可以随机选择相关数据确定。在待压缩模型包括多个层结构网络的情况下,第三输入数据还可以表征各个层结构网络的输入数据。各个子网络的输入数据可以根据待压缩模型的模型输入数据确定,也可以根据将模型输入数据输入待压缩模型后,经由待压缩模型的层结构网络的输出特征确定。例如,待压缩模型包括第一层结构网络和第二层结构网络,第一层结构网络的输出为第二层结构网络的输入,对应于第一层结构网络的第三输入数据可以为模型输入数据,对应于第二层结构网络的第三输入数据可以为经由第一层结构网络处理模型输入数据后得到的输出特征。
根据本公开的实施例,量化过程可以包括逐层参数分布统计和逐层量化阶段。在逐层参数分布统计阶段,可以以层结构网络为单位,针对每个层结构网络,输入一组数据,统计该层结构网络的层模型权重以及基于该层结构网络处理该组数据得到的层激活值。在逐层量化阶段,可以逐层根据层模型权重和层激活值的数据分布,对相应层结构网络的层模型参数进行量化,包括对相应层结构网络中的层模型权重和层激活值进行量化。在对所有层结构网络中的层模型权重和层激活值均量化完成之后,可以根据该量化结果确定量化参数。
根据本公开的实施例,在待压缩模型中包括激活函数的情况下,激活函数会阻碍模型的量化过程。本实施例中,在进行层融合之后,为了配合层融合,可以对应于激活函数输出的激活值设置额外的量化节点,在量化过程中实现对激活值的量化。通过逐层参数分布统计和逐层量化的过程,针对在大语言模型中逐渐普及的GeLU(gaussian error linearunits,高斯误差线性单元)等激活函数,可以适配其不能与FC层(FullConnection,全连接层)融合的特性,缓解激活函数阻碍模型量化的问题。
通过本公开的上述实施例,可以使得上述量化方法更普适,有效扩展上述压缩方法的功能适配面,能够处理包括具有激活函数的多种结构的模型。
根据本公开的实施例,层模型权重可以包括与层结构网络相关的层初始权重和层融合权重。层融合权重可以表征对稀疏参数矩阵中与层结构网络相关的层目标权重进行融合得到的融合权重。层初始权重可以表征层模型权重中除层目标权重之外的其他权重。上述根据目标压缩精度和数据分布范围,对层激活值和层模型权重进行量化,得到与层结构网络相对应的层量化参数可以包括:根据数据分布范围,确定缩放因子。根据缩放因子和目标压缩精度,将层激活值、层初始权重和层融合权重量化为与目标压缩精度相匹配的整数型参数。根据整数型参数,确定层量化参数。
根据本公开的实施例,根据每个层结构网络的层模型权重及层激活值确定的数据分布范围可以相同或不同。根据对应于不同层结构网络的数据分布范围,确定的对应于不同层结构网络的缩放因子可以相同或不同,在此不进行限定。
根据本公开的实施例,整数型参数可以包括层模型权重对应的量化结构以及层激活值对应的量化结果。在得到各个层结构网络中模型参数的整数型参数之后,可以将该整数型参数确定为量化参数。
例如,层结构网络为attention head。
图4示意性示出了根据本公开实施例的attention head的结构图。
如图4所示,attention head 410例如具有与其相连的嵌入层411,例如还可以包括第一激活层412、Q模块413、K模块414、V模块415、第一KV缓存416、第二KV缓存417、第二激活层418、全连接层419。
根据本公开的实施例,Q模块413、K模块414、V模块415、第一KV缓存416、第二KV缓存417、全连接层419各自可以具有相应的模型权重。基于第一激活层412、第二激活层418均可以得到相应的激活值。在上述量化过程中,在确定如attention head的层结构网络的情况下,可以针对attention head中每个模块的模型参数进行量化,得到量化后参数。在应用时,可以将attention head中各个模块的模型参数替换为量化后参数,如可以得到量化后attention head 420。
根据本公开的实施例,针对融合后QKV线性层结构,例如在对图4中的V进行量化时,可以独立计算attention中融合后的输出算子的缩放因子,使其不受融合结构的计算维度影响。
通过本公开的上述实施例,可以以层激活值、层初始权重或层融合权重为单位,计算各自的缩放因子,并实施量化过程,减少了计算步骤,有效提高了量化效率。
根据本公开的实施例,上述根据整数型参数,确定层量化参数可以包括:将第三输入数据输入与层结构网络相对应的量化后层结构网络,得到层第一激活值,量化后层结构网络的模型权重为整数型参数所表征的模型权重。根据层第一激活值和层激活值,确定第一量化损失。根据整数型参数和第一量化损失,确定层量化参数。
根据本公开的实施例,通过确定量化之后的模型和原模型之间的差异,可以确定第一量化损失。例如,可以根据量化前后当前层输出特征的差异,计算第一量化损失。具体地,例如,第三输入数据为图像数据,层激活值可以表征由层结构网络基于稀疏权重矩阵中与层结构网络相关的模型权重输出的层图像向量特征,第一激活值可以表征由量化后层结构网络基于整数型参数所表征的模型权重输出的层第一图像特征向量。根据层图像向量特征和层第一图像特征向量可以确定一个第一量化损失。
根据本公开的实施例,可以将整数型参数确定为层量化参数。也可以预先设定损失阈值,在确定第一量化损失小于或等于该损失阈值的情况下,再将整数型参数确定为层量化参数。
根据本公开的实施例,上述根据整数型参数和第一量化损失,确定层量化参数可以包括:根据第i量化损失,对整数型参数进行第i次调整,得到第i调整整数型参数,i依次取1至I之间的整数,I为预定义正整数。将第三输入数据输入与层结构网络相对应的第i调整层结构网络,得到层第i+1激活值,第i调整层结构网络的模型权重为第i调整整数型参数所表征的模型权重。根据层第i+1激活值和层激活值,确定第i+1量化损失。根据与第一量化损失至第1+1量化损失中最小的量化损失相对应的整数型参数,确定层量化参数。
根据本公开的实施例,在确定第一量化损失大于该损失阈值的情况下,可以进入量化参数调整阶段。在量化参数调整阶段,可以根据第一量化损失,对整数型参数进行第一次调整,得到第一调整整数型参数,并基于第一调整整数型参数确定的第一调整层结构网络对第三输入数据进行处理得到的第二激活值。然后,根据第二激活值和层级货值确定第二量化损失。之后,可以根据第二量化损失,确定是否需要继续对整数型参数进行调整。例如,在确定第二量化损失大于前述损失阈值的情况下,可以根据该第二量化损失,继续执行前述调整流程,并确定第三量化损失。以此类推,直至确定的量化损失小于或等于损失阈值,或者调整流程的执行次数达到预设轮次,结束前述调整流程。
根据本公开的实施例,量化参数调整阶段可以根据量化阶段的第一量化损失,或者量化阶段和调整阶段的第i量化损失,寻找量化前后层输出变化最小的量化参数。例如可以通过公式(1)所示的方式,确定量化参数/>
在公式(1)中,可以表示量化损失,W可以表示量化前参数,/>可以表示整数型参数,X可以表示第三输入数据。
需要说明的是,层第i+1激活值可以具有与层第一激活值相同或相似的技术特征,确定第i+1量化损失的过程可以与前述实施例中确定第一量化损失的过程相同或相似,在此不在赘述。
通过本公开的上述实施例,使用逐层量化和逐层损失计算,通过量化后参数调整,可以保持量化前后模型的精度,减少量化后模型的训练过程,降低训练成本。
根据本公开的实施例,基于上述模型压缩方法,通过采用稀疏化的非结构化剪枝技术手段,配合模型精度优化后的类PTQ量化手段,在避免模型大规模训练的同时,保证了模型压缩后的性能精度,提供了一种高效稳定的大语言模型的推理压缩加速机制。基于该机制构建的系统,可以一键式完成业内常见的多种大语言模型的压缩加速处理。用户仅需要向系统中上传或选择原始模型,指定想要的目标压缩精度,便可自动完成对目标模型的结构分析和量化压缩,并提供模型体积更小,推理速度更快的压缩后模型。
图5示意性示出了根据本公开实施例的基于压缩加速机制构建的系统的进行模型压缩的示意图。
如图5所示,上述压缩加速机制的系统500包括模型稀疏化模块510、模型量化模块520、推理评估模块530。用户可以将稠密大模型501输入系统500,在某些实施例中,还可将想要的目标压缩精度502一并输入系统500,经由系统500中稀疏化模块510、模型量化模块520的稀疏化、层融合和量化处理,得到压缩后模型503。推理评估模块530可以对稠密大模型501和压缩后模型503进行评估。
根据本公开的实施例,针对稀疏化模块510、模型量化模块520的具体实施方式,在前述实施例中已有描述,可参见前述实施例,在此不再赘述。
根据本公开的实施例,推理评估模块530可以用于对压缩前后模型进行评估,评估指标可以包括模型生成文本PPL(perplexity,困惑度)及模型推理吞吐速度。PPL可以用在NLP(Natural Language Processing,自然语言处理领域)中,衡量语言模型好坏的指标,可以根据每个词来估计一句话出现的概率,并用句子长度作normalize(归一化)。吞吐速度可以以模型每秒钟生成token个数作为衡量指标。
通过本公开的上述实施例,用户只需要提供原始待压缩的稠密大模型,系统可以经过模型稀疏化和模型量化的组合压缩加速工具处理,自动完成模型的分析和适配,快速生成体积更小,推理速度更快的轻量化大语言模型。使得用户可以便捷地获得针对大语言模型的加速优化能力,降低用户的大语言模型使用门槛。此外,上述压缩加速机制可以将大语言模型优化成本控制在有效收益范围内,为用户提供低成本大语言模型优化加速服务。
基于前述多种策略组合,模型压缩可以在存储占用、推理加速、精度恢复等多种方面进行模型优化。降低了用户对于优秀大语言模型的使用门槛,实现可观的计算资源节约优势。解决了大语言模型应用开发技术难度大,使用成本高的难题。
图6示意性示出了根据本公开实施例的模型压缩装置的框图。
如图6所示,模型压缩装置600包括读取模块610、稀疏化处理模块620、融合模块630、量化模块640和压缩后模型确定模块650。
读取模块610,用于响应于接收到待压缩模型的初始模型参数以及针对初始模型参数设置的目标压缩精度,从初始模型参数中读取待压缩模型的模型权重矩阵。
稀疏化处理模块620,用于对模型权重矩阵进行稀疏化处理,得到稀疏权重矩阵,其中,初始模型参数包括模型权重矩阵,根据稀疏权重矩阵确定的模型的目标精度与待压缩模型的初始精度的差值小于预设阈值。
融合模块630,用于对稀疏权重矩阵中的目标权重进行融合,得到融合权重,目标权重表征待压缩模型中具有耦合关系的子网络的模型权重,待压缩模型包括至少一个子网络。
量化模块640,用于根据目标压缩精度,对包括融合权重的目标模型参数进行量化,得到量化参数,目标模型参数包括稀疏权重矩阵所表征的模型权重以及基于稀疏权重矩阵确定的激活值。
压缩后模型确定模块650,用于根据量化参数,确定与待压缩模型相对应的压缩后模型。
根据本公开的实施例,待压缩模型包括多个通道。稀疏化处理模块包括稀疏化处理子模块。
稀疏化处理子模块,用于将模型权重矩阵中属于同一通道的模型权重作为一个单位,对模型权重矩阵进行稀疏化处理。
根据本公开的实施例,稀疏化处理子模块包括第一稀疏化处理单元或第二稀疏化处理单元。
第一稀疏化处理单元,用于以模型权重矩阵中的列为单位,对列中的列模型权重进行稀疏化处理。
第二稀疏化处理单元,用于以模型权重矩阵中的行为单位,对行中的行模型权重进行稀疏化处理。
根据本公开的实施例,第一稀疏化处理单元包括第一置零子单元和第一调整子单元。
第一置零子单元,用于将列模型权重中的第一部分权重置零。
第一调整子单元,用于对与第一部分权重相同行的第一目标权重进行调整。
根据本公开的实施例,第一置零子单元包括按列置零子单元,用于将模型权重矩阵中第m列的第一部分权重置零,m依次取1至M中的整数,M表征模型权重矩阵的列数。第一调整子单元包括按列调整子单元,用于对模型权重矩阵中第m+1列至第M列的第一目标权重进行调整。
根据本公开的实施例,第一调整子单元包括第一初始输出结果输出子单元、第一目标输出结果输出子单元、第一敏感度损失确定子单元和第一目标权重调整子单元。
第一初始输出结果输出子单元,用于将第一输入数据输入待压缩模型,得到第一初始输出结果。
第一目标输出结果输出子单元,用于将第一输入数据输入第一调整后模型,得到第一目标输出结果,第一调整后模型的模型权重矩阵表征为将第一部分参数置零后的模型权重矩阵。
第一敏感度损失确定子单元,用于根据第一初始输出结果和第一目标输出结果,确定第一敏感度损失。
第一目标权重调整子单元,用于根据第一敏感度损失,对第一目标权重进行调整。
根据本公开的实施例,第二稀疏化处理单元包括第二置零子单元和第二调整子单元。
第二置零子单元,用于将行模型权重中的第二部分权重置零。
第二调整子单元,用于对与第二部分权重相同列的第二目标权重进行调整。
根据本公开的实施例,第二置零子单元包括按行置零子单元,用于将模型权重矩阵中第n行的第二部分权重置零,n依次取1至N中的整数,N表征模型权重矩阵的行数。第二调整子单元包括按行调整子单元,用于对模型权重矩阵中第n+1行至第N行的第二目标权重进行调整。
根据本公开的实施例,第二调整子单元包括第二初始输出结果输出子单元、第二目标输出结果输出子单元、第二敏感度损失确定子单元和第二目标权重调整子单元。
第二初始输出结果输出子单元,用于将第二输入数据输入待压缩模型,得到第二初始输出结果。
第二目标输出结果输出子单元,用于将第二输入数据输入第二调整后模型,得到第二目标输出结果,第二调整后模型的模型权重矩阵表征为将第二部分参数置零后的模型权重矩阵;
第二敏感度损失确定子单元,用于根据第二初始输出结果和第二目标输出结果,确定第二敏感度损失;以及
第二目标权重调整子单元,用于根据第二敏感度损失,对第二目标权重进行调整。
根据本公开的实施例,具有耦合关系的子网络构成一个层结构网络,待压缩模型包括至少一个层结构网络。融合模块包括层目标权重获取子模块、层融合子模块和融合权重确定子模块。
层目标权重获取子模块,用于从稀疏权重矩阵中,获取与层结构网络相关的层目标权重。
层融合子模块,用于对层目标权重进行层融合,得到与层结构网络相对应的层融合权重。
融合权重确定子模块,用于根据与至少一个层结构网络相对应的至少一个层融合权重,确定融合权重。
根据本公开的实施例,具有耦合关系的子网络构成一个层结构,待压缩模型包括至少一个层结构网络。量化模块包括层激活值获得子模块、数据分布确定子模块、量化子模块和量化参数确定子模块。
层激活值获得子模块,用于将第三输入数据输入层结构网络,得到与层结构网络相关的层激活值,层结构网络的层模型权重为稀疏权重矩阵中与层结构网络相关的模型权重。
数据分布确定子模块,用于根据层激活值和层模型权重的权重值,确定数据分布范围。
量化子模块,用于根据目标压缩精度和数据分布范围,对层激活值和层模型权重进行量化,得到与层结构网络相对应的层量化参数。
量化参数确定子模块,用于根据与至少一个层结构网络相对应的至少一个层量化参数,确定量化参数。
根据本公开的实施例,层模型权重包括与层结构网络相关的层初始权重和层融合权重,层融合权重表征对稀疏参数矩阵中与层结构网络相关的层目标权重进行融合得到的融合权重,层初始权重表征层模型权重中除层目标权重之外的其他权重。量化子模块包括缩放因子确定单元、量化单元和量化参数确定单元。
缩放因子确定单元,用于根据数据分布范围,确定缩放因子。
量化单元,用于根据缩放因子和目标压缩精度,将层激活值、层初始权重和层融合权重量化为与目标压缩精度相匹配的整数型参数。
量化参数确定单元,用于根据整数型参数,确定层量化参数。
根据本公开的实施例,量化参数确定单元包括层第一激活值获得子单元、第一量化损失确定子单元和第一层量化参数确定子单元。
层第一激活值获得子单元,用于将第三输入数据输入与层结构网络相对应的量化后层结构网络,得到层第一激活值,量化后层结构网络的模型权重为整数型参数所表征的模型权重。
第一量化损失确定子单元,用于根据层第一激活值和层激活值,确定第一量化损失。
第一层量化参数确定子单元,用于根据整数型参数和第一量化损失,确定层量化参数。
根据本公开的实施例,第一层量化参数确定子单元包括第i调整子单元、层第i+1激活值获得子单元、第i+1量化损失确定子单元和第二层量化参数确定子单元。
第i调整子单元,用于根据第i量化损失,对整数型参数进行第i次调整,得到第i调整整数型参数,i依次取1至I之间的整数,I为预定义正整数;
层第i+1激活值获得子单元,用于将第三输入数据输入与层结构网络相对应的第i调整层结构网络,得到层第i+1激活值,第i调整层结构网络的模型权重为第i调整整数型参数所表征的模型权重;
第i+1量化损失确定子单元,用于根据层第i+1激活值和层激活值,确定第i+1量化损失;以及
第二层量化参数确定子单元,用于根据与第一量化损失至第I+1量化损失中最小的量化损失相对应的整数型参数,确定层量化参数。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开的方法。
根据本公开的实施例,一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开的方法。
根据本公开的实施例,一种计算机程序产品,包括计算机程序,计算机程序存储于可读存储介质和电子设备其中至少之一上,计算机程序在被处理器执行时实现本公开的方法。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至输入/输出(I/O)接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如模型压缩方法。例如,在一些实施例中,模型压缩方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的模型压缩方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行模型压缩方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以是分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (31)
1.一种模型压缩方法,包括:
响应于接收到待压缩模型的初始模型参数以及针对所述初始模型参数设置的目标压缩精度,从所述初始模型参数中读取所述待压缩模型的模型权重矩阵;
对所述模型权重矩阵进行稀疏化处理,得到稀疏权重矩阵,其中,所述初始模型参数包括所述模型权重矩阵,根据所述稀疏权重矩阵确定的模型的目标精度与所述待压缩模型的初始精度的差值小于预设阈值;
对所述稀疏权重矩阵中的目标权重进行融合,得到融合权重,所述目标权重表征所述待压缩模型中具有耦合关系的子网络的模型权重,所述待压缩模型包括至少一个子网络;
根据所述目标压缩精度,对包括所述融合权重的目标模型参数进行量化,得到量化参数,所述目标模型参数包括所述稀疏权重矩阵所表征的模型权重以及基于所述稀疏权重矩阵确定的激活值;以及
根据所述量化参数,确定与所述待压缩模型相对应的压缩后模型。
2.根据权利要求1所述的方法,其中,所述待压缩模型包括多个通道;所述对所述模型权重矩阵进行稀疏化处理,得到稀疏权重矩阵包括:
将所述模型权重矩阵中属于同一通道的模型权重作为一个单位,对所述模型权重矩阵进行稀疏化处理。
3.根据权利要求2所述的方法,其中,所述将所述模型权重矩阵中属于同一通道的模型权重作为一个单位,对所述模型权重矩阵进行稀疏化处理包括:
以所述模型权重矩阵中的列为单位,对所述列中的列模型权重进行稀疏化处理;或
以所述模型权重矩阵中的行为单位,对所述行中的行模型权重进行稀疏化处理。
4.根据权利要求3所述的方法,其中,所述对所述列中的列模型权重进行稀疏化处理包括:
将所述列模型权重中的第一部分权重置零;以及
对与所述第一部分权重相同行的第一目标权重进行调整。
5.根据权利要求4所述的方法,其中,
所述将所述列模型权重中的第一部分权重置零包括:
将所述模型权重矩阵中第m列的第一部分权重置零,m依次取1至M中的整数,M表征所述模型权重矩阵的列数;
所述对与所述第一部分权重相同行的第一目标权重进行调整包括:
对所述模型权重矩阵中第m+1列至第M列的第一目标权重进行调整。
6.根据权利要求4或5所述的方法,其中,所述对与所述第一部分权重相同行的第一目标权重进行调整包括:
将第一输入数据输入所述待压缩模型,得到第一初始输出结果;
将所述第一输入数据输入第一调整后模型,得到第一目标输出结果,所述第一调整后模型的模型权重矩阵表征为将所述第一部分参数置零后的模型权重矩阵;
根据所述第一初始输出结果和所述第一目标输出结果,确定第一敏感度损失;以及
根据所述第一敏感度损失,对所述第一目标权重进行调整。
7.根据权利要求3所述的方法,其中,所述对所述行中的行模型权重进行稀疏化处理包括:
将所述行模型权重中的第二部分权重置零;以及
对与所述第二部分权重相同列的第二目标权重进行调整。
8.根据权利要求7所述的方法,其中,
所述将所述行模型权重中的第二部分权重置零包括:
将所述模型权重矩阵中第n行的第二部分权重置零,n依次取1至N中的整数,N表征所述模型权重矩阵的行数;
所述对与所述第二部分权重相同列的第二目标权重进行调整包括:
对所述模型权重矩阵中第n+1行至第N行的第二目标权重进行调整。
9.根据权利要求7或8所述的方法,其中,所述对与所述第二部分权重相同列的第二目标权重进行调整包括:
将第二输入数据输入所述待压缩模型,得到第二初始输出结果;
将所述第二输入数据输入第二调整后模型,得到第二目标输出结果,所述第二调整后模型的模型权重矩阵表征为将所述第二部分参数置零后的模型权重矩阵;
根据所述第二初始输出结果和所述第二目标输出结果,确定第二敏感度损失;以及
根据所述第二敏感度损失,对所述第二目标权重进行调整。
10.根据权利要求1-9中任一项所述的方法,其中,所述具有耦合关系的子网络构成一个层结构网络,所述待压缩模型包括至少一个层结构网络;所述对所述稀疏权重矩阵中的目标权重进行融合,得到融合权重包括:
从所述稀疏权重矩阵中,获取与所述层结构网络相关的层目标权重;
对所述层目标权重进行层融合,得到与所述层结构网络相对应的层融合权重;以及
根据与所述至少一个层结构网络相对应的至少一个层融合权重,确定所述融合权重。
11.根据权利要求1-10中任一项所述的方法,其中,所述具有耦合关系的子网络构成一个层结构,所述待压缩模型包括至少一个层结构网络;所述根据所述目标压缩精度,对包括所述融合权重的目标模型参数进行量化,得到量化参数包括:
将第三输入数据输入所述层结构网络,得到与所述层结构网络相关的层激活值,所述层结构网络的层模型权重为所述稀疏权重矩阵中与所述层结构网络相关的模型权重;
根据所述层激活值和所述层模型权重的权重值,确定数据分布范围;
根据所述目标压缩精度和所述数据分布范围,对所述层激活值和所述层模型权重进行量化,得到与所述层结构网络相对应的层量化参数;以及
根据与所述至少一个层结构网络相对应的至少一个层量化参数,确定所述量化参数。
12.根据权利要求11所述的方法,其中,所述层模型权重包括与所述层结构网络相关的层初始权重和层融合权重,所述层融合权重表征对所述稀疏参数矩阵中与所述层结构网络相关的层目标权重进行融合得到的融合权重,所述层初始权重表征所述层模型权重中除所述层目标权重之外的其他权重;所述根据所述目标压缩精度和所述数据分布范围,对所述层激活值和所述层模型权重进行量化,得到与所述层结构网络相对应的层量化参数包括:
根据所述数据分布范围,确定缩放因子;
根据所述缩放因子和所述目标压缩精度,将所述层激活值、所述层初始权重和所述层融合权重量化为与所述目标压缩精度相匹配的整数型参数;以及
根据所述整数型参数,确定所述层量化参数。
13.根据权利要求12所述的方法,其中,所述根据所述整数型参数,确定所述层量化参数包括:
将所述第三输入数据输入与所述层结构网络相对应的量化后层结构网络,得到层第一激活值,所述量化后层结构网络的模型权重为所述整数型参数所表征的模型权重;
根据所述层第一激活值和所述层激活值,确定第一量化损失;以及
根据所述整数型参数和所述第一量化损失,确定所述层量化参数。
14.根据权利要求13所述的方法,其中,所述根据所述整数型参数和所述第一量化损失,确定所述层量化参数包括:
根据第i量化损失,对所述整数型参数进行第i次调整,得到第i调整整数型参数,i依次取1至I之间的整数,I为预定义正整数;
将所述第三输入数据输入与所述层结构网络相对应的第i调整层结构网络,得到层第i+1激活值,所述第i调整层结构网络的模型权重为所述第i调整整数型参数所表征的模型权重;
根据所述层第i+1激活值和所述层激活值,确定第i+1量化损失;以及
根据与第一量化损失至第1+1量化损失中最小的量化损失相对应的整数型参数,确定所述层量化参数。
15.一种模型压缩装置,包括:
读取模块,用于响应于接收到待压缩模型的初始模型参数以及针对所述初始模型参数设置的目标压缩精度,从所述初始模型参数中读取所述待压缩模型的模型权重矩阵;
稀疏化处理模块,用于对所述模型权重矩阵进行稀疏化处理,得到稀疏权重矩阵,其中,所述初始模型参数包括所述模型权重矩阵,根据所述稀疏权重矩阵确定的模型的目标精度与所述待压缩模型的初始精度的差值小于预设阈值;
融合模块,用于对所述稀疏权重矩阵中的目标权重进行融合,得到融合权重,所述目标权重表征所述待压缩模型中具有耦合关系的子网络的模型权重,所述待压缩模型包括至少一个子网络;
量化模块,用于根据所述目标压缩精度,对包括所述融合权重的目标模型参数进行量化,得到量化参数,所述目标模型参数包括所述稀疏权重矩阵所表征的模型权重以及基于所述稀疏权重矩阵确定的激活值;以及
压缩后模型确定模块,用于根据所述量化参数,确定与所述待压缩模型相对应的压缩后模型。
16.根据权利要求15所述的装置,其中,所述待压缩模型包括多个通道;所述稀疏化处理模块包括:
稀疏化处理子模块,用于将所述模型权重矩阵中属于同一通道的模型权重作为一个单位,对所述模型权重矩阵进行稀疏化处理。
17.根据权利要求16所述的装置,其中,所述稀疏化处理子模块包括:
第一稀疏化处理单元,用于以所述模型权重矩阵中的列为单位,对所述列中的列模型权重进行稀疏化处理;或
第二稀疏化处理单元,用于以所述模型权重矩阵中的行为单位,对所述行中的行模型权重进行稀疏化处理。
18.根据权利要求17所述的方法,其中,所述第一稀疏化处理单元包括:
第一置零子单元,用于将所述列模型权重中的第一部分权重置零;以及
第一调整子单元,用于对与所述第一部分权重相同行的第一目标权重进行调整。
19.根据权利要求18所述的装置,其中,
所述第一置零子单元包括:
按列置零子单元,用于将所述模型权重矩阵中第m列的第一部分权重置零,m依次取1至M中的整数,M表征所述模型权重矩阵的列数;
所述第一调整子单元包括:
按列调整子单元,用于对所述模型权重矩阵中第m+1列至第M列的第一目标权重进行调整。
20.根据权利要求18或19所述的装置,其中,所述第一调整子单元包括:
第一初始输出结果输出子单元,用于将第一输入数据输入所述待压缩模型,得到第一初始输出结果;
第一目标输出结果输出子单元,用于将所述第一输入数据输入第一调整后模型,得到第一目标输出结果,所述第一调整后模型的模型权重矩阵表征为将所述第一部分参数置零后的模型权重矩阵;
第一敏感度损失确定子单元,用于根据所述第一初始输出结果和所述第一目标输出结果,确定第一敏感度损失;以及
第一目标权重调整子单元,用于根据所述第一敏感度损失,对所述第一目标权重进行调整。
21.根据权利要求17所述的装置,其中,所述第二稀疏化处理单元包括:
第二置零子单元,用于将所述行模型权重中的第二部分权重置零;以及
第二调整子单元,用于对与所述第二部分权重相同列的第二目标权重进行调整。
22.根据权利要求21所述的装置,其中,
所述第二置零子单元包括:
按行置零子单元,用于将所述模型权重矩阵中第n行的第二部分权重置零,n依次取1至N中的整数,N表征所述模型权重矩阵的行数;
所述第二调整子单元包括:
按行调整子单元,用于对所述模型权重矩阵中第n+1行至第N行的第二目标权重进行调整。
23.根据权利要求21或22所述的装置,其中,所述第二调整子单元包括:
第二初始输出结果输出子单元,用于将第二输入数据输入所述待压缩模型,得到第二初始输出结果;
第二目标输出结果输出子单元,用于将所述第二输入数据输入第二调整后模型,得到第二目标输出结果,所述第二调整后模型的模型权重矩阵表征为将所述第二部分参数置零后的模型权重矩阵;
第二敏感度损失确定子单元,用于根据所述第二初始输出结果和所述第二目标输出结果,确定第二敏感度损失;以及
第二目标权重调整子单元,用于根据所述第二敏感度损失,对所述第二目标权重进行调整。
24.根据权利要求15-23中任一项所述的装置,其中,所述具有耦合关系的子网络构成一个层结构网络,所述待压缩模型包括至少一个层结构网络;所述融合模块包括:
层目标权重获取子模块,用于从所述稀疏权重矩阵中,获取与所述层结构网络相关的层目标权重;
层融合子模块,用于对所述层目标权重进行层融合,得到与所述层结构网络相对应的层融合权重;以及
融合权重确定子模块,用于根据与所述至少一个层结构网络相对应的至少一个层融合权重,确定所述融合权重。
25.根据权利要求15-24中任一项所述的装置,其中,所述具有耦合关系的子网络构成一个层结构,所述待压缩模型包括至少一个层结构网络;所述量化模块包括:
层激活值获得子模块,用于将第三输入数据输入所述层结构网络,得到与所述层结构网络相关的层激活值,所述层结构网络的层模型权重为所述稀疏权重矩阵中与所述层结构网络相关的模型权重;
数据分布确定子模块,用于根据所述层激活值和所述层模型权重的权重值,确定数据分布范围;
量化子模块,用于根据所述目标压缩精度和所述数据分布范围,对所述层激活值和所述层模型权重进行量化,得到与所述层结构网络相对应的层量化参数;以及
量化参数确定子模块,用于根据与所述至少一个层结构网络相对应的至少一个层量化参数,确定所述量化参数。
26.根据权利要求25所述的装置,其中,所述层模型权重包括与所述层结构网络相关的层初始权重和层融合权重,所述层融合权重表征对所述稀疏参数矩阵中与所述层结构网络相关的层目标权重进行融合得到的融合权重,所述层初始权重表征所述层模型权重中除所述层目标权重之外的其他权重;所述量化子模块包括:
缩放因子确定单元,用于根据所述数据分布范围,确定缩放因子;
量化单元,用于根据所述缩放因子和所述目标压缩精度,将所述层激活值、所述层初始权重和所述层融合权重量化为与所述目标压缩精度相匹配的整数型参数;以及
量化参数确定单元,用于根据所述整数型参数,确定所述层量化参数。
27.根据权利要求26所述的装置,其中,所述量化参数确定单元包括:
层第一激活值获得子单元,用于将所述第三输入数据输入与所述层结构网络相对应的量化后层结构网络,得到层第一激活值,所述量化后层结构网络的模型权重为所述整数型参数所表征的模型权重;
第一量化损失确定子单元,用于根据所述层第一激活值和所述层激活值,确定第一量化损失;以及
第一层量化参数确定子单元,用于根据所述整数型参数和所述第一量化损失,确定所述层量化参数。
28.根据权利要求27所述的装置,其中,所述第一层量化参数确定子单元包括:
第i调整子单元,用于根据第i量化损失,对所述整数型参数进行第i次调整,得到第i调整整数型参数,i依次取1至I之间的整数,I为预定义正整数;
层第i+1激活值获得子单元,用于将所述第三输入数据输入与所述层结构网络相对应的第i调整层结构网络,得到层第i+1激活值,所述第i调整层结构网络的模型权重为所述第i调整整数型参数所表征的模型权重;
第i+1量化损失确定子单元,用于根据所述层第i+1激活值和所述层激活值,确定第i+1量化损失;以及
第二层量化参数确定子单元,用于根据与第一量化损失至第I+1量化损失中最小的量化损失相对应的整数型参数,确定所述层量化参数。
29.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-14中任一项所述的方法。
30.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-14中任一项所述的方法。
31.一种计算机程序产品,包括计算机程序,所述计算机程序存储于可读存储介质和电子设备其中至少之一上,所述计算机程序在被处理器执行时实现根据权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311280391.2A CN117371508A (zh) | 2023-09-28 | 2023-09-28 | 模型压缩方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311280391.2A CN117371508A (zh) | 2023-09-28 | 2023-09-28 | 模型压缩方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117371508A true CN117371508A (zh) | 2024-01-09 |
Family
ID=89390262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311280391.2A Pending CN117371508A (zh) | 2023-09-28 | 2023-09-28 | 模型压缩方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117371508A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992578A (zh) * | 2024-04-02 | 2024-05-07 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
-
2023
- 2023-09-28 CN CN202311280391.2A patent/CN117371508A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992578A (zh) * | 2024-04-02 | 2024-05-07 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11694094B2 (en) | Inferring digital twins from captured data | |
US20190294975A1 (en) | Predicting using digital twins | |
CN113657465A (zh) | 预训练模型的生成方法、装置、电子设备和存储介质 | |
US20230401833A1 (en) | Method, computer device, and storage medium, for feature fusion model training and sample retrieval | |
CN112580733B (zh) | 分类模型的训练方法、装置、设备以及存储介质 | |
CN114580263A (zh) | 基于知识图谱的信息系统故障预测方法及相关设备 | |
KR20230031889A (ko) | 네트워크 토폴로지에서의 이상 탐지 | |
CN111563593A (zh) | 神经网络模型的训练方法和装置 | |
CN116489038A (zh) | 网络流量的预测方法、装置、设备和介质 | |
CN113657468A (zh) | 预训练模型的生成方法、装置、电子设备和存储介质 | |
CN113240177B (zh) | 训练预测模型的方法、预测方法、装置、电子设备及介质 | |
CN114494814A (zh) | 基于注意力的模型训练方法、装置及电子设备 | |
CN115186738B (zh) | 模型训练方法、装置和存储介质 | |
CN115759209B (zh) | 神经网络模型的量化方法、装置、电子设备及介质 | |
CN116401372A (zh) | 知识图谱表示学习方法、装置、电子设备及可读存储介质 | |
CN117371508A (zh) | 模型压缩方法、装置、电子设备以及存储介质 | |
CN115688917A (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN114037060A (zh) | 预训练模型的生成方法、装置、电子设备以及存储介质 | |
CN114118358A (zh) | 图像处理方法、装置、电子设备、介质及程序产品 | |
CN113657466A (zh) | 预训练模型的生成方法、装置、电子设备和存储介质 | |
CN111582456A (zh) | 用于生成网络模型信息的方法、装置、设备和介质 | |
CN111709366A (zh) | 用于生成分类信息的方法、装置、电子设备和介质 | |
CN113344294B (zh) | 一种电力能源预测系统 | |
CN113362304B (zh) | 清晰度预测模型的训练方法和确定清晰等级的方法 | |
WO2022199261A1 (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 |