CN116992965A - Transformer大模型的推理方法、装置、计算机设备和存储介质 - Google Patents
Transformer大模型的推理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116992965A CN116992965A CN202311259769.0A CN202311259769A CN116992965A CN 116992965 A CN116992965 A CN 116992965A CN 202311259769 A CN202311259769 A CN 202311259769A CN 116992965 A CN116992965 A CN 116992965A
- Authority
- CN
- China
- Prior art keywords
- matrix
- activation
- correction coefficient
- weight
- coefficient vector
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 239000011159 matrix material Substances 0.000 claims abstract description 400
- 238000012937 correction Methods 0.000 claims abstract description 289
- 230000004913 activation Effects 0.000 claims abstract description 253
- 238000013139 quantization Methods 0.000 claims abstract description 144
- 238000012360 testing method Methods 0.000 claims description 42
- 238000005520 cutting process Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 24
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical group OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 claims description 20
- 230000011218 segmentation Effects 0.000 claims description 20
- 238000003825 pressing Methods 0.000 claims description 10
- 238000000638 solvent extraction Methods 0.000 claims description 7
- 101100317378 Mus musculus Wnt3 gene Proteins 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 12
- 230000008569 process Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
本申请涉及Transformer大模型的推理方法、装置、计算机设备和存储介质,在使用Transformer大模型进行实际推理之前,利用权重校正系数向量将权重矩阵进行校正,将权重矩阵中各数值的差异进行压制,并将权重校正矩阵进行低比特整型量化;在使用Transformer大模型进行实际推理时,将实际输入激活矩阵与激活量化校正系数向量的乘积、量化后的综合校正系数向量及校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;基于第一量化参数标量、第二量化参数标量以及第三量化参数标量,对初始推理结果矩阵进行反量化,得到实际推理结果矩阵,有效节省在GPU中部署所占用的显存资源及有效提高计算机处理速度。
Description
技术领域
本申请涉及人工智能及计算机视觉技术领域,特别是涉及一种Transformer大模型的推理方法、装置、计算机设备和存储介质。
背景技术
随着GPT、ChatGPT等大模型的迅速发展,相关大模型的落地应用产生了大量的现实需求,具体表现在大模型在GPU的批量部署和针对用户请求的快速响应推理。
现有技术中,基于Transformer结构的大模型动辄100亿参数以上,以300亿参数的OPT-30B为例,该模型权重文件大小为55GB。单batch推理情况下,在GPU中部署所占用的显存为59.8GB,batchsize为8的情况下,则GPU显存消耗接近100GB,对计算机的GPU显存资源消耗非常大。此外,在利用Transformer大模型进行推理的过程中,在计算机中直接进行Transformer大模型各线性层输入激活矩阵与权重矩阵的矩阵乘法,由于输入激活矩阵与权重矩阵为数值差异大的浮点型大型矩阵,导致存在计算机处理速度慢的问题。
针对现有技术中,利用在GPU中部署的transformer大模型进行推理对计算机的GPU显存资源消耗大且计算机处理速度慢的问题,目前尚未提出有效的解决方案。
发明内容
基于此,有必要针对上述技术问题,提供一种Transformer大模型的推理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,以解决相关技术中transformer大模型的推理速度慢以及算力资源消耗大的问题。
第一个方面,本申请实施例提供了一种Transformer大模型的推理方法,所述方法包括以下步骤:
在使用在GPU中部署的所述Transformer大模型进行实际推理之前,将测试数据集输入到所述Transformer大模型中进行前向推理,针对所述Transformer大模型中的所有Transformer结构中的线性层,获取测试输入激活矩阵中的激活校正系数向量和权重矩阵的权重校正系数向量,并对所述激活校正系数向量和所述权重校正系数向量相乘得到的向量中的每个元素求倒数,得到综合校正系数向量;其中,所述激活校正系数向量由每一列激活的激活校正系数组成;所述权重校正系数向量由每一行权重的权重校正系数组成;各个所述激活校正系数用于将对应整列的激活的最大值压制到第一预设值;各个所述权重校正系数用于将对应整行权重的最大值压制到第二预设值;利用所述激活校正系数向量对所述测试输入激活矩阵进行校正,得到激活校正矩阵,并利用所述权重校正系数向量对所述权重矩阵进行校正,得到权重校正矩阵;获取将所述激活校正矩阵量化到低比特整型需采用的第一量化参数标量;基于第二量化参数标量,对所述权重校正矩阵进行低比特整型量化,得到校正量化后的权重矩阵;基于第三量化参数标量,对所述综合校正系数向量进行低比特整型量化,得到量化后的综合校正系数向量;
在使用所述Transformer大模型进行实际推理时,针对所述Transformer大模型中的所有Transformer结构中的线性层,将实际输入激活矩阵与激活量化校正系数向量的乘积、所述量化后的综合校正系数向量以及所述校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;所述激活量化校正系数向量为将所述激活校正系数向量中各元素除以所述第一量化参数标量得到的向量;基于所述第一量化参数标量、所述第二量化参数标量以及所述第三量化参数标量,对所述初始推理结果矩阵进行反量化,得到实际推理结果矩阵。
在其中一些实时例中,所述将实际输入激活矩阵与激活量化校正系数向量的乘积、所述量化后的综合校正系数向量以及所述校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;基于所述第一量化参数标量、所述第二量化参数标量以及第三量化参数标量对所述初始推理结果矩阵进行反量化,得到实际推理结果矩阵,在GPGPU上基于CUDACore实现,包括以下步骤:
在所述GPGPU的全局内存内,将所述实际输入激活矩阵进行分块,得到若干激活矩阵块;并将若干所述激活矩阵块以及与所述激活矩阵块对应的激活量化校正系数向量块,分批依次读入所述GPGPU的共享内存;其中,所述实际输入激活矩阵的每一列与所述激活量化校正系数向量的每个元素一一对应;将所述校正量化后的权重矩阵进行分块,得到若干权重矩阵块;并将若干所述权重矩阵块以及与所述权重矩阵块对应的量化后的综合校正系数向量块,分批依次读入所述GPGPU的共享内存;其中,所述权重矩阵块的行数等于所述激活矩阵块的列数相等;所述校正量化后的权重矩阵的每一行与所述量化后的综合校正系数向量的每个元素一一对应;
在所述GPGPU的共享内存内,对所述激活矩阵块的每一列进行切分,得到若干激活切分块;并将若干所述激活切分块以及与所述激活切分块对应的激活量化校正系数向量块中的元素,分批依次读入所述CUDA Core的寄存器;其中,所述激活切分块的大小为所述激活矩阵块一列数据的第一预设百分比;对所述权重矩阵块每一行进行切分,得到若干权重切分块;并将若干所述权重切分块以及与所述权重切分块对应的量化后的综合校正系数向量块中的元素,分批依次读入所述CUDA Core的寄存器;其中,所述权重切分块的大小为所述权重矩阵块一行数据的第二预设百分比;
针对读入所述CUDA Core的寄存器中的数据,从所述激活切分块中取出不超过第一预设数据长度的数据作为列激活矩阵;以及从所述权重切分块中取出不超过所述第一预设数据长度的数据作为行权重矩阵;将所述列激活矩阵和行权重矩阵分配给一个线程,并将与所述列激活矩阵对应的量化后的综合校正系数向量块中的元素以及与所述行权重矩阵对应的量化后的综合校正系数向量块中的元素,分配给同一个线程,直至将所有所述激活切分块中的数据以及所有所述权重切分块中的数据分配给所有线程;
在每个线程中,将所述列激活矩阵及与其对应的量化后的综合校正系数向量块中的元素的乘积、与所述行权重矩阵对应的量化后的综合校正系数向量块中的元素以及所述行权重矩阵进行矩阵相乘,得到每个线程的初始推理结果矩阵块;
将每个线程的初始推理结果矩阵块的数据填充在所述初始推理结果矩阵对应位置,得到所述初始推理结果矩阵;
基于所述第一量化参数标量、所述第二量化参数标量以及第三量化参数标量对每个线程的所述初始推理结果矩阵进行反量化,得到每个线程的实际推理结果矩阵。
在其中一些实施例中,所述获取由测试输入激活矩阵中的每一列激活的激活校正系数组成的激活校正系数向量以及由权重矩阵中的每一行权重的权重校正系数组成的权重校正系数向量,包括以下步骤:
确定所述测试输入激活矩阵中的每一列激活的最大值,将所述测试输入激活矩阵中的每一列激活的最大值的倒数作为每一列激活的激活校正系数,所有所述激活校正系数组成所述激活校正系数向量;
确定所述权重矩阵中的每一行权重的最大值,将所述权重矩阵中的每一行权重的最大值的倒数作为每一行权重的权重校正系数,所有所述权重校正系数组成所述权重校正系数向量。
在其中一些实施例中,所述测试数据集采用的Colossal Clean Crawled Corpus数据集。
在其中一些实施例中,所述低比特整型量化为4比特量化或8比特量化。
在其中一些实施例中,所述第一预设百分比为50%,所述第二预设百分比为25%。
第二个方面,本实施例还提供了一种Transformer大模型的推理装置,所述装置包括量化模块和推理模块;
所述量化模块,用于在使用在GPU中部署的所述Transformer大模型进行实际推理之前,将测试数据集输入到所述Transformer大模型中进行前向推理,针对所述Transformer大模型中的所有Transformer结构中的线性层,获取测试输入激活矩阵中的激活校正系数向量和权重矩阵的权重校正系数向量,并对所述激活校正系数向量和所述权重校正系数向量相乘得到的向量中的每个元素求倒数,得到综合校正系数向量;其中,所述激活校正系数向量由每一列激活的激活校正系数组成;所述权重校正系数向量由每一行权重的权重校正系数组成;各个所述激活校正系数用于将对应整列的激活的最大值压制到第一预设值;各个所述权重校正系数用于将对应整行权重的最大值压制到第二预设值;利用所述激活校正系数向量对所述测试输入激活矩阵进行校正,得到激活校正矩阵,并利用所述权重校正系数向量对所述权重矩阵进行校正,得到权重校正矩阵;获取将所述激活校正矩阵量化到低比特整型需采用的第一量化参数标量;基于第二量化参数标量,对所述权重校正矩阵进行低比特整型量化,得到校正量化后的权重矩阵;基于第三量化参数标量,对所述综合校正系数向量进行低比特整型量化,得到量化后的综合校正系数向量;
所述推理模块,用于在使用所述Transformer大模型进行实际推理时,针对所述Transformer大模型中的所有Transformer结构中的线性层,将实际输入激活矩阵与激活量化校正系数向量的乘积、所述量化后的综合校正系数向量以及所述校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;所述激活量化校正系数向量为将所述激活校正系数向量中各元素除以所述第一量化参数标量得到的向量;基于所述第一量化参数标量、所述第二量化参数标量以及所述第三量化参数标量,对所述初始推理结果矩阵进行反量化,得到实际推理结果矩阵。
第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述方法的步骤。
第四个方面,在本实施例中提供了计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述的方法的步骤。
第五个方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时时实现上述第一个方面所述的方法的步骤。
上述Transformer大模型的推理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,在使用在GPU中部署的Transformer大模型进行实际推理之前,通过利用权重校正系数向量将权重矩阵进行校正,将权重矩阵中各数值的差异进行压制,进而将权重校正矩阵进行低比特整型量化,使权重矩阵从数值差异大的浮点型矩阵变为数值差异小的整型数值矩阵,有效节省在GPU中部署所占用的显存资源。进一步地,在利用Transformer大模型进行实际推理时,结合激活校正系数向量、第一量化参数标量、量化后的综合校正系数向量以及校正量化后的权重矩阵,使输入激活矩阵与权重矩阵的矩阵乘法由大型的浮点型矩阵乘法变为低比特整型矩阵乘法,计算更简便,有效提高计算机处理速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的Transformer大模型的推理方法的流程图;
图2是根据本申请实施例提供的Transformer大模型的推理方法的流程示意图一;
图3是根据本申请实施例提供的Transformer大模型的推理方法的流程示意图二;
图4是根据本申请实施例提供的Transformer大模型的推理方法的流程示意图三;
图5是根据本申请实施例提供的Transformer大模型的推理装置的结构示意图;
图6是根据本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供了一种Transformer大模型的推理方法,如图1所示,该方法包括以下步骤:
步骤S110,在使用在GPU中部署的Transformer大模型进行实际推理之前,将测试数据集输入到Transformer大模型中进行前向推理,针对Transformer大模型中的所有Transformer结构中的线性层,获取测试输入激活矩阵中的激活校正系数向量和权重矩阵的权重校正系数向量,并对激活校正系数向量和权重校正系数向量相乘得到的向量中的每个元素求倒数,得到综合校正系数向量;其中,激活校正系数向量由每一列激活的激活校正系数组成;权重校正系数向量由每一行权重的权重校正系数组成;各个激活校正系数用于将对应整列的激活的最大值压制到第一预设值;各个权重校正系数用于将对应整行权重的最大值压制到第二预设值;利用激活校正系数向量对测试输入激活矩阵进行校正,得到激活校正矩阵,并利用权重校正系数向量对权重矩阵进行校正,得到权重校正矩阵;获取将激活校正矩阵量化到低比特整型需采用的第一量化参数标量;基于第二量化参数标量,对权重校正矩阵进行低比特整型量化,得到校正量化后的权重矩阵;基于第三量化参数标量,对综合校正系数向量进行低比特整型量化,得到量化后的综合校正系数向量。
具体地,测试数据集可以是任意的模型训练相关的数据集,例如可以是ColossalClean Crawled Corpus数据集,俗称C4数据集,C4数据集是Common Crawl的网络爬虫语料库的一个巨大的、干净的版本。它是基于Common Crawl数据集基础上后处理而来。可以将测试数据集预先存储至计算机的存储器中,使用时,通过调用预先存储的测试数据集,将测试数据集输入到Transformer大模型中进行前向推理。将测试数据集输入到Transformer大模型中进行前向推理的过程中,在Transformer大模型中的所有Transformer结构中的线性层中,都需要进行测试输入激活矩阵与权重矩阵的矩阵乘法,以获取Transformer结构中的线性层的输出并记录。由于测试输入激活矩阵与权重矩阵为数值差异大的大型浮点型矩阵,导致存在计算机处理速度慢的问题。
为了便于对本申请提供的Transformer大模型的推理方法进行说明,以第一预设值和第二预设值为1为例,图2为本申请提供的Transformer大模型的推理方法流程示意图。在实际实施本申请提供的Transformer大模型的推理方法的过程中,第一预设值和第二预设值可以根据实际的需求进行设置,第一预设值和第二预设值可以相同,也可以不同。此外,需要明白的是,实际的测试输入激活矩阵和权重矩阵都是大型的浮点型矩阵,为了对激活校正系数向量、权重校正系数向量、综合校正系数向量、激活校正矩阵和权重校正矩阵的获取流程进行简单说明,图2中的测试输入激活矩阵和权重矩阵才采用比较简单的整型矩阵。如图2所示,由于第一预设值和第二预设值为1,即测试输入激活矩阵(X)中各列的激活的最大值为1及权重矩阵(W)中各行权重的最大值为1,则激活校正系数向量(SX)的获取过程如下:确定测试输入激活矩阵(X)中的每一列激活的最大值,将测试输入激活矩阵(X)中的每一列激活的最大值的倒数作为每一列激活的激活校正系数,所有激活校正系数组成激活校正系数向量(SX);权重校正系数向量(SW)的获取过程如下:确定权重矩阵(W)中的每一行权重的最大值,将权重矩阵(W)中的每一行权重的最大值的倒数作为每一行权重的权重校正系数,所有权重校正系数组成权重校正系数向量(SW)。在得到激活校正系数向量(SX)和权重校正系数向量(SW)后,将激活校正系数向量(SX)和权重校正系数向量(SW)同一索引位置的元素进行相乘得到的向量中的每个元素求倒数,即得到综合校正系数向量Sall。然后利用激活校正系数向量(SX)对测试输入激活矩阵(X)进行校正,即测试输入激活矩阵(X)每一列与激活校正系数向量(SX)中对应元素相乘,得到激活校正矩阵(XS)。利用权重校正系数向量(SW)对权重矩阵(W)进行校正,即权重矩阵(W)每一行与权重校正系数向量(SW)中对应元素相乘,得到权重校正矩阵(SW)。进一步地,获取将激活校正矩阵(XS)量化到低比特整型需采用的第一量化参数标量(Scale_x);基于第二量化参数标量(Scale_w),对权重校正矩阵(WS)进行低比特整型量化,得到校正量化后的权重矩阵(WS_q=Ws/Scale_w);基于第三量化参数标量(Scale_s),对综合校正系数向量(Sall)进行低比特整型量化,得到量化后的综合校正系数向量(Sall_q=Sall/Scale_s=1/(SX·SW·Scale_s))。其中低比特整型量化可以为int4量化或int8量化。
在使用在GPU中部署的Transformer大模型进行实际推理之前,通过利用权重校正系数向量将权重矩阵进行校正,将权重矩阵中各数值的差异进行压制,进而将权重校正矩阵进行低比特整型量化,使权重矩阵从数值差异大的浮点型矩阵变为数值差异小的整型数值矩阵,有效节省在GPU中部署所占用的显存资源。
步骤S120,在使用Transformer大模型进行实际推理时,针对Transformer大模型中的所有Transformer结构中的线性层,将实际输入激活矩阵与激活量化校正系数向量的乘积、量化后的综合校正系数向量以及校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;激活量化校正系数向量为将激活校正系数向量中各元素除以第一量化参数标量得到的向量;基于第一量化参数标量、第二量化参数标量以及第三量化参数标量,对初始推理结果矩阵进行反量化,得到实际推理结果矩阵。
在使用Transformer大模型进行实际推理时,就可以利用上述步骤得到的激活校正系数向量(SX)、第一量化参数标量(Scale_x)、校正量化后的权重矩阵(WS_q=Ws/Scale_w)、第二量化参数标量(Scale_w)、量化后的综合校正系数向量(Sall_q=Sall/Scale_s)、第三量化参数标量(Scale_s)这些参数来简化Transformer结构中的线性层的推理计算。具体地,实际输入激活矩阵用Xr表示,实际输入激活矩阵用Xr通常是16bit的浮点型矩阵,激活量化校正系数向量可以表示为(SX/Scale_x),实际输入激活矩阵Xr与激活量化校正系数向量(SX/Scale_x)的乘积(Xr·SX/Scale_x)就相当于利用激活校正系数向量(SX)对实际输入激活矩阵(Xr)进行校正操作以及利用第一量化参数标量(Scale_x)进行低比特整型量化操作。那么将实际输入激活矩阵与激活量化校正系数向量的乘积(Xr·SX/Scale_x)、量化后的综合校正系数向量(Sall_q)以及校正量化后的权重矩阵(WS_q)进行矩阵相乘,即进行低比特整型矩阵乘法,计算更简便,有效提高计算机处理速度。
具体地,经过推导可以得出上述低比特整型矩阵乘法得到的初始推理结果矩阵的值Xr·W/Scale_x/Scale_w/Scale_s。则基于第一量化参数标量(Scale_x)、第二量化参数标量(Scale_w)以及第三量化参数标量(Scale_s),对初始推理结果矩阵进行反量化,得到实际推理结果矩阵,即Xr·W/Scale_x/Scale_w/Scale_S·Scale_x·Scale_w·Scale_s=Xr·W,即对即初始推理结果矩阵进行反量化得到的正是每个Transformer结构中的线性层理论上的输出Xr·W。
现有技术中,利用在GPU中部署的transformer大模型进行推理,存在对计算机的GPU显存资源消耗大且计算机处理速度慢的问题。
为了解决上述问题,本申请提出一种Transformer大模型的推理方法,本申请在使用在GPU中部署的Transformer大模型进行实际推理之前,通过利用权重校正系数向量将权重矩阵进行校正,将权重矩阵中各数值的差异进行压制,进而将权重校正矩阵进行低比特整型量化,使权重矩阵从数值差异大的浮点型矩阵变为数值差异小的整型数值矩阵,有效节省在GPU中部署所占用的显存资源。进一步地,在利用Transformer大模型进行实际推理时,结合激活校正系数向量、第一量化参数标量、量化后的综合校正系数向量以及校正量化后的权重矩阵,使输入激活矩阵与权重矩阵的矩阵乘法由大型的浮点型矩阵乘法变为低比特整型矩阵乘法,计算更简便,有效提高计算机处理速度。
更进一步地,在其中一个实施例中,上述步骤S120将实际输入激活矩阵与激活量化校正系数向量的乘积、量化后的综合校正系数向量以及校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;基于第一量化参数标量、第二量化参数标量以及第三量化参数标量对初始推理结果矩阵进行反量化,得到实际推理结果矩阵,在GPGPU上基于CUDACore实现,包括以下步骤:
步骤S121,在GPGPU(General-purpose Computing on Graphics ProcessingUnits,通用图形处理器)的全局内存内,将实际输入激活矩阵进行分块,得到若干激活矩阵块;并将若干激活矩阵块以及与激活矩阵块对应的激活量化校正系数向量块,分批依次读入GPGPU的共享内存;其中,实际输入激活矩阵的每一列与激活量化校正系数向量的每个元素一一对应;将校正量化后的权重矩阵进行分块,得到若干权重矩阵块;并将若干权重矩阵块以及与权重矩阵块对应的量化后的综合校正系数向量块,分批依次读入GPGPU的共享内存;其中,权重矩阵块的行数等于激活矩阵块的列数相等;校正量化后的权重矩阵的每一行与量化后的综合校正系数向量的每个元素一一对应;
具体地,图3为本申请提供的Transformer大模型的推理方法的流程示意图,如图3所示,实际输入激活矩阵(Xr)中的阴影部分即为激活矩阵块,激活量化校正系数向量(SX/Scale_x)的阴影部分即为与激活矩阵块的列索引对应的激活量化校正系数向量块,校正量化后的权重矩阵(WS_q)的阴影部分即为权重矩阵块,量化后的综合校正系数向量(Sall_q)的阴影部分即为与权重矩阵块的行索引对应的量化后的综合校正系数向量块。上述已经提到,将实际输入激活矩阵(Xr)与激活量化校正系数向量(SX/Scale_x)的乘积、量化后的综合校正系数向量(Sall_q)以及校正量化后的权重矩阵(WS_q)进行矩阵相乘,可以得到初始推理结果矩阵,本实施例中,在GPGPU的全局内存内不进行实际输入激活矩阵(Xr)与激活量化校正系数向量(SX/Scale_x)的乘积、量化后的综合校正系数向量(Sall_q)以及校正量化后的权重矩阵(WS_q)之间的矩阵相乘运算,图3中的初始推理结果矩阵是从矩阵大小这方面对初始推理结果矩阵的示意,可以预想的是,将激活矩阵块以及与激活矩阵块对应的激活量化校正系数向量块、权重矩阵块以及与权重矩阵块对应的量化后的综合校正系数向量块进行矩阵相乘,得到的第一矩阵的位置对应于初始推理结果矩阵的阴影部分。
步骤S122,在GPGPU的共享内存内,对激活矩阵块的每一列进行切分,得到若干激活切分块;并将若干激活切分块以及与激活切分块对应的激活量化校正系数向量块中的元素,分批依次读入CUDA Core的寄存器;其中,激活切分块的大小为激活矩阵块一列数据的第一预设百分比;对权重矩阵块每一行进行切分,得到若干权重切分块;并将若干权重切分块以及与权重切分块对应的量化后的综合校正系数向量块中的元素,分批依次读入CUDACore的寄存器;其中,权重切分块的大小为权重矩阵块一行数据的第二预设百分比;
继续参见图3,对激活矩阵块进行切分得到的阴影部分的数据即为激活切分块,激活量化校正系数向量块中的阴影部分即为与激活切分块的列索引对应的激活量化校正系数向量块中的元素。对权重矩阵块进行切分得到的阴影部分的数据即为权重切分块,量化后的综合校正系数向量块中的阴影部分即为与权重切分块的行索引对应的量化后的综合校正系数向量块中的元素。其中,激活切分块与激活矩阵块一列数据的比例,即第一预设百分比可以根据实际需求进行调节,具体可以是50%。权重切分块与权重矩阵块一行数据的比例,即第二预设百分比可以根据实际需求进行调节,具体可以是25%。
图3中的第一矩阵是从矩阵大小方面对第一矩阵的示意,可以预想的是,将激活切分块以及与激活切分块对应的激活量化校正系数向量块中的元素、权重切分块以及与权重切分块对应的量化后的综合校正系数向量块中的元素进行矩阵相乘,得到的矩阵的位置对应于第一矩阵的阴影部分。
步骤S123,针对读入CUDA Core的寄存器中的数据,从激活切分块中取出不超过第一预设数据长度的数据作为列激活矩阵;以及从权重切分块中取出不超过第一预设数据长度的数据作为行权重矩阵;将列激活矩阵和行权重矩阵分配给一个线程,并将与列激活矩阵对应的量化后的综合校正系数向量块中的元素以及与行权重矩阵对应的量化后的综合校正系数向量块中的元素,分配给同一个线程,直至将所有激活切分块中的数据以及所有权重切分块中的数据分配给所有线程;
继续参见图3,列激活矩阵、与列激活矩阵对应的量化后的综合校正系数向量块中的元素、行权重矩阵、与行权重矩阵对应的量化后的综合校正系数向量块中的元素对应于图3中第二个箭头下方各阴影部分。其中,第一预设数据长度可以根据CUDA Core的寄存器的线程数量进行确定,如果线程数量足够多,为了使各个线程中的计算更加简便,则第一预设数据长度可以适量减小。通常,CUDA Core的寄存器的线程数量有32个,第一预设数据长度通常取值4至8。
步骤S124,在每个线程中,将列激活矩阵及与其对应的量化后的综合校正系数向量块中的元素的乘积、与行权重矩阵对应的量化后的综合校正系数向量块中的元素以及行权重矩阵进行矩阵相乘,得到每个线程的初始推理结果矩阵块;
参见图3,由于每个线程中的列激活矩阵和行权重矩阵的数据长度不超过第一预设数据长度,则可以快速地得到每个线程的初始推理结果矩阵块。
作为其中一种实施方式,图4为本申请提供的Transformer大模型的推理方法的另一流程示意图,如图4所示,为了进一步提高CUDA Core的寄存器的线程的并行化处理效率,针对读入CUDA Core的寄存器中的数据,从激活切分块中取出两份不超过第一预设数据长度的数据作为两个列激活矩阵;以及从权重切分块中取出两份不超过第一预设数据长度的数据作为两个行权重矩阵;将两个列激活矩阵和两个行权重矩阵分配给一个线程,并将与列激活矩阵对应的量化后的综合校正系数向量块中的元素以及与行权重矩阵对应的量化后的综合校正系数向量块中的元素,分配给同一个线程,直至将所有激活切分块中的数据以及所有权重切分块中的数据分配给所有线程;在每个线程中,将列激活矩阵及与其对应的量化后的综合校正系数向量块中的元素的乘积、与行权重矩阵对应的量化后的综合校正系数向量块中的元素以及行权重矩阵进行矩阵相乘,得到每个线程的初始推理结果矩阵块。由于每个线程对应有两个列激活矩阵和两个行权重矩阵,则每个线程可以得到四个初始推理结果矩阵块。
步骤S125,将每个线程的初始推理结果矩阵块的数据填充在初始推理结果矩阵对应位置,得到初始推理结果矩阵;
步骤S126,基于第一量化参数标量、第二量化参数标量以及第三量化参数标量对初始推理结果矩阵块进行反量化,得到实际推理结果矩阵。
通过上述步骤S121至S126,通过对实际输入激活矩阵以及权重矩阵进行一步步切分,将大型矩阵乘法运算分配到CUDA Core的寄存器的多个线程中,每个线程只需要进行小型矩阵乘法计算,进一步有效提高计算机处理速度。
图5是根据本发明实施例中Transformer大模型的推理装置20的示意图,Transformer大模型的推理装置20包括量化模块21和推理模块22:
量化模块21,用于在使用在GPU中部署的Transformer大模型进行实际推理之前,将测试数据集输入到Transformer大模型中进行前向推理,针对Transformer大模型中的所有Transformer结构中的线性层,获取测试输入激活矩阵中的激活校正系数向量和权重矩阵的权重校正系数向量,并对激活校正系数向量和权重校正系数向量相乘得到的向量中的每个元素求倒数,得到综合校正系数向量;其中,激活校正系数向量由每一列激活的激活校正系数组成;权重校正系数向量由每一行权重的权重校正系数组成;各个激活校正系数用于将对应整列的激活的最大值压制到第一预设值;各个权重校正系数用于将对应整行权重的最大值压制到第二预设值;利用激活校正系数向量对测试输入激活矩阵进行校正,得到激活校正矩阵,并利用权重校正系数向量对权重矩阵进行校正,得到权重校正矩阵;获取将激活校正矩阵量化到低比特整型需采用的第一量化参数标量;基于第二量化参数标量,对权重校正矩阵进行低比特整型量化,得到校正量化后的权重矩阵;基于第三量化参数标量,对综合校正系数向量进行低比特整型量化,得到量化后的综合校正系数向量;
推理模块22,用于在使用Transformer大模型进行实际推理时,针对Transformer大模型中的所有Transformer结构中的线性层,将实际输入激活矩阵与激活量化校正系数向量的乘积、量化后的综合校正系数向量以及校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;激活量化校正系数向量为将激活校正系数向量中各元素除以第一量化参数标量得到的向量;基于第一量化参数标量、第二量化参数标量以及第三量化参数标量,对初始推理结果矩阵进行反量化,得到实际推理结果矩阵。
上述Transformer大模型的推理装置20,在使用在GPU中部署的Transformer大模型进行实际推理之前,通过利用权重校正系数向量将权重矩阵进行校正,将权重矩阵中各数值的差异进行压制,进而将权重校正矩阵进行低比特整型量化,使权重矩阵从数值差异大的浮点型矩阵变为数值差异小的整型数值矩阵,有效节省在GPU中部署所占用的显存资源。进一步地,在利用Transformer大模型进行实际推理时,结合激活校正系数向量、第一量化参数标量、量化后的综合校正系数向量以及校正量化后的权重矩阵,使输入激活矩阵与权重矩阵的矩阵乘法由大型的浮点型矩阵乘法变为低比特整型矩阵乘法,计算更简便,有效提高计算机处理速度。
在其中一个实施例中,推理模块22还用于在GPGPU的全局内存内,将实际输入激活矩阵进行分块,得到若干激活矩阵块;并将若干激活矩阵块以及与激活矩阵块对应的激活量化校正系数向量块,分批依次读入GPGPU的共享内存;其中,实际输入激活矩阵的每一列与激活量化校正系数向量的每个元素一一对应;将校正量化后的权重矩阵进行分块,得到若干权重矩阵块;并将若干权重矩阵块以及与权重矩阵块对应的量化后的综合校正系数向量块,分批依次读入GPGPU的共享内存;其中,权重矩阵块的行数等于激活矩阵块的列数相等;校正量化后的权重矩阵的每一行与量化后的综合校正系数向量的每个元素一一对应;在GPGPU的共享内存内,对激活矩阵块的每一列进行切分,得到若干激活切分块;并将若干激活切分块以及与激活切分块对应的激活量化校正系数向量块中的元素,分批依次读入CUDA Core的寄存器;其中,激活切分块的大小为激活矩阵块一列数据的第一预设百分比;对权重矩阵块每一行进行切分,得到若干权重切分块;并将若干权重切分块以及与权重切分块对应的量化后的综合校正系数向量块中的元素,分批依次读入CUDA Core的寄存器;其中,权重切分块的大小为权重矩阵块一行数据的第二预设百分比; 针对读入CUDA Core的寄存器中的数据,从激活切分块中取出不超过第一预设数据长度的数据作为列激活矩阵;以及从权重切分块中取出不超过第一预设数据长度的数据作为行权重矩阵;将列激活矩阵和行权重矩阵分配给一个线程,并将与列激活矩阵对应的量化后的综合校正系数向量块中的元素以及与行权重矩阵对应的量化后的综合校正系数向量块中的元素,分配给同一个线程,直至将所有激活切分块中的数据以及所有权重切分块中的数据分配给所有线程;在每个线程中,将列激活矩阵及与其对应的量化后的综合校正系数向量块中的元素的乘积、与行权重矩阵对应的量化后的综合校正系数向量块中的元素以及行权重矩阵进行矩阵相乘,得到每个线程的初始推理结果矩阵块;将每个线程的初始推理结果矩阵块的数据填充在初始推理结果矩阵对应位置,得到初始推理结果矩阵;基于第一量化参数标量、第二量化参数标量以及第三量化参数标量对每个线程的初始推理结果矩阵进行反量化,得到每个线程的实际推理结果矩阵。
在其中一个实施例中,量化模块21还用于确定测试输入激活矩阵中的每一列激活的最大值,将测试输入激活矩阵中的每一列激活的最大值的倒数作为每一列激活的激活校正系数,所有激活校正系数组成激活校正系数向量;确定权重矩阵中的每一行权重的最大值,将权重矩阵中的每一行权重的最大值的倒数作为每一行权重的权重校正系数,所有权重校正系数组成权重校正系数向量。
在其中一个实施例中,测试数据集采用的Colossal Clean Crawled Corpus数据集。
在其中一个实施例中,低比特整型量化为4比特量化或8比特量化。
在其中一个实施例中,第一预设百分比为50%,第二预设百分比为25%。
需要说明地是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件实现,也可以通过硬件来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设配置信息集合。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现Transformer大模型的推理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种Transformer大模型的推理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种Transformer大模型的推理方法,其特征在于,所述方法包括以下步骤:
在使用在GPU中部署的所述Transformer大模型进行实际推理之前,将测试数据集输入到所述Transformer大模型中进行前向推理,针对所述Transformer大模型中的所有Transformer结构中的线性层,获取测试输入激活矩阵中的激活校正系数向量和权重矩阵的权重校正系数向量,并对所述激活校正系数向量和所述权重校正系数向量相乘得到的向量中的每个元素求倒数,得到综合校正系数向量;其中,所述激活校正系数向量由每一列激活的激活校正系数组成;所述权重校正系数向量由每一行权重的权重校正系数组成;各个所述激活校正系数用于将对应整列的激活的最大值压制到第一预设值;各个所述权重校正系数用于将对应整行权重的最大值压制到第二预设值;利用所述激活校正系数向量对所述测试输入激活矩阵进行校正,得到激活校正矩阵,并利用所述权重校正系数向量对所述权重矩阵进行校正,得到权重校正矩阵;获取将所述激活校正矩阵量化到低比特整型需采用的第一量化参数标量;基于第二量化参数标量,对所述权重校正矩阵进行低比特整型量化,得到校正量化后的权重矩阵;基于第三量化参数标量,对所述综合校正系数向量进行低比特整型量化,得到量化后的综合校正系数向量;
在使用所述Transformer大模型进行实际推理时,针对所述Transformer大模型中的所有Transformer结构中的线性层,将实际输入激活矩阵与激活量化校正系数向量的乘积、所述量化后的综合校正系数向量以及所述校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;所述激活量化校正系数向量为将所述激活校正系数向量中各元素除以所述第一量化参数标量得到的向量;基于所述第一量化参数标量、所述第二量化参数标量以及所述第三量化参数标量,对所述初始推理结果矩阵进行反量化,得到实际推理结果矩阵。
2.根据权利要求1所述的Transformer大模型的推理方法,其特征在于,所述将实际输入激活矩阵与激活量化校正系数向量的乘积、所述量化后的综合校正系数向量以及所述校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;基于所述第一量化参数标量、所述第二量化参数标量以及第三量化参数标量对所述初始推理结果矩阵进行反量化,得到实际推理结果矩阵,在GPGPU上基于CUDA Core实现,包括以下步骤:
在所述GPGPU的全局内存内,将所述实际输入激活矩阵进行分块,得到若干激活矩阵块;并将若干所述激活矩阵块以及与所述激活矩阵块对应的激活量化校正系数向量块,分批依次读入所述GPGPU的共享内存;其中,所述实际输入激活矩阵的每一列与所述激活量化校正系数向量的每个元素一一对应;将所述校正量化后的权重矩阵进行分块,得到若干权重矩阵块;并将若干所述权重矩阵块以及与所述权重矩阵块对应的量化后的综合校正系数向量块,分批依次读入所述GPGPU的共享内存;其中,所述权重矩阵块的行数等于所述激活矩阵块的列数相等;所述校正量化后的权重矩阵的每一行与所述量化后的综合校正系数向量的每个元素一一对应;
在所述GPGPU的共享内存内,对所述激活矩阵块的每一列进行切分,得到若干激活切分块;并将若干所述激活切分块以及与所述激活切分块对应的激活量化校正系数向量块中的元素,分批依次读入所述CUDA Core的寄存器;其中,所述激活切分块的大小为所述激活矩阵块一列数据的第一预设百分比;对所述权重矩阵块每一行进行切分,得到若干权重切分块;并将若干所述权重切分块以及与所述权重切分块对应的量化后的综合校正系数向量块中的元素,分批依次读入所述CUDA Core的寄存器;其中,所述权重切分块的大小为所述权重矩阵块一行数据的第二预设百分比;
针对读入所述CUDA Core的寄存器中的数据,从所述激活切分块中取出不超过第一预设数据长度的数据作为列激活矩阵;以及从所述权重切分块中取出不超过所述第一预设数据长度的数据作为行权重矩阵;将所述列激活矩阵和行权重矩阵分配给一个线程,并将与所述列激活矩阵对应的量化后的综合校正系数向量块中的元素以及与所述行权重矩阵对应的量化后的综合校正系数向量块中的元素,分配给同一个线程,直至将所有所述激活切分块中的数据以及所有所述权重切分块中的数据分配给所有线程;
在每个线程中,将所述列激活矩阵及与其对应的量化后的综合校正系数向量块中的元素的乘积、与所述行权重矩阵对应的量化后的综合校正系数向量块中的元素以及所述行权重矩阵进行矩阵相乘,得到每个线程的初始推理结果矩阵块;
将每个线程的初始推理结果矩阵块的数据填充在所述初始推理结果矩阵对应位置,得到所述初始推理结果矩阵;
基于所述第一量化参数标量、所述第二量化参数标量以及第三量化参数标量对每个线程的所述初始推理结果矩阵进行反量化,得到每个线程的实际推理结果矩阵。
3.根据权利要求1所述的Transformer大模型的推理方法,其特征在于,所述获取由测试输入激活矩阵中的每一列激活的激活校正系数组成的激活校正系数向量以及由权重矩阵中的每一行权重的权重校正系数组成的权重校正系数向量,包括以下步骤:
确定所述测试输入激活矩阵中的每一列激活的最大值,将所述测试输入激活矩阵中的每一列激活的最大值的倒数作为每一列激活的激活校正系数,所有所述激活校正系数组成所述激活校正系数向量;
确定所述权重矩阵中的每一行权重的最大值,将所述权重矩阵中的每一行权重的最大值的倒数作为每一行权重的权重校正系数,所有所述权重校正系数组成所述权重校正系数向量。
4.根据权利要求1所述的Transformer大模型的推理方法,其特征在于,所述测试数据集采用的Colossal Clean Crawled Corpus数据集。
5.根据权利要求1所述的Transformer大模型的推理方法,其特征在于,所述低比特整型量化为int4量化或int8量化。
6.根据权利要求2所述的Transformer大模型的推理方法,其特征在于,所述第一预设百分比为50%,所述第二预设百分比为25%。
7.一种Transformer大模型的推理装置,其特征在于,所述装置包括量化模块和推理模块;
所述量化模块,用于在使用在GPU中部署的所述Transformer大模型进行实际推理之前,将测试数据集输入到所述Transformer大模型中进行前向推理,针对所述Transformer大模型中的所有Transformer结构中的线性层,获取测试输入激活矩阵中的激活校正系数向量和权重矩阵的权重校正系数向量,并对所述激活校正系数向量和所述权重校正系数向量相乘得到的向量中的每个元素求倒数,得到综合校正系数向量;其中,所述激活校正系数向量由每一列激活的激活校正系数组成;所述权重校正系数向量由每一行权重的权重校正系数组成;各个所述激活校正系数用于将对应整列的激活的最大值压制到第一预设值;各个所述权重校正系数用于将对应整行权重的最大值压制到第二预设值;利用所述激活校正系数向量对所述测试输入激活矩阵进行校正,得到激活校正矩阵,并利用所述权重校正系数向量对所述权重矩阵进行校正,得到权重校正矩阵;获取将所述激活校正矩阵量化到低比特整型需采用的第一量化参数标量;基于第二量化参数标量,对所述权重校正矩阵进行低比特整型量化,得到校正量化后的权重矩阵;基于第三量化参数标量,对所述综合校正系数向量进行低比特整型量化,得到量化后的综合校正系数向量;
所述推理模块,用于在使用所述Transformer大模型进行实际推理时,针对所述Transformer大模型中的所有Transformer结构中的线性层,将实际输入激活矩阵与激活量化校正系数向量的乘积、所述量化后的综合校正系数向量以及所述校正量化后的权重矩阵进行矩阵相乘,得到初始推理结果矩阵;所述激活量化校正系数向量为将所述激活校正系数向量中各元素除以所述第一量化参数标量得到的向量;基于所述第一量化参数标量、所述第二量化参数标量以及所述第三量化参数标量,对所述初始推理结果矩阵进行反量化,得到实际推理结果矩阵。
8.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至权利要求6中任一项所述的Transformer大模型的推理方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求6中任一项所述的Transformer大模型的推理方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至权利要求6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311259769.0A CN116992965B (zh) | 2023-09-27 | 2023-09-27 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311259769.0A CN116992965B (zh) | 2023-09-27 | 2023-09-27 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116992965A true CN116992965A (zh) | 2023-11-03 |
CN116992965B CN116992965B (zh) | 2024-01-09 |
Family
ID=88534212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311259769.0A Active CN116992965B (zh) | 2023-09-27 | 2023-09-27 | Transformer大模型的推理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116992965B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992578A (zh) * | 2024-04-02 | 2024-05-07 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901422B1 (en) * | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
CN112381205A (zh) * | 2020-09-29 | 2021-02-19 | 北京清微智能科技有限公司 | 一种神经网络低比特量化方法 |
CN112529189A (zh) * | 2020-11-10 | 2021-03-19 | 北京百度网讯科技有限公司 | 模型压缩方法、装置、电子设备及存储介质 |
CN113486298A (zh) * | 2021-06-28 | 2021-10-08 | 南京大学 | 基于Transformer神经网络的模型压缩方法、矩阵乘法模块 |
WO2021217772A1 (zh) * | 2020-04-26 | 2021-11-04 | 平安科技(深圳)有限公司 | 基于ai的面试语料分类方法、装置、计算机设备和介质 |
CN113869517A (zh) * | 2020-06-30 | 2021-12-31 | 阿里巴巴集团控股有限公司 | 一种基于深度学习模型的推理方法 |
US20220188380A1 (en) * | 2020-12-14 | 2022-06-16 | Alibaba Group Holding Limited | Data processing method and apparatus applied to graphics processing unit, and electronic device |
CN114970822A (zh) * | 2022-05-31 | 2022-08-30 | 浪潮电子信息产业股份有限公司 | 一种神经网络模型量化方法、系统、设备及计算机介质 |
CN115393633A (zh) * | 2022-08-05 | 2022-11-25 | 北京迈格威科技有限公司 | 数据处理方法、电子设备、存储介质及程序产品 |
CN115424323A (zh) * | 2022-08-29 | 2022-12-02 | 华能国际电力开发公司吉林通榆风电分公司 | 风电场权限管理系统及其方法 |
WO2023134030A1 (zh) * | 2022-01-11 | 2023-07-20 | 浙江大学 | 一种基于流模型的pet系统衰减校正方法 |
-
2023
- 2023-09-27 CN CN202311259769.0A patent/CN116992965B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901422B1 (en) * | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
WO2021217772A1 (zh) * | 2020-04-26 | 2021-11-04 | 平安科技(深圳)有限公司 | 基于ai的面试语料分类方法、装置、计算机设备和介质 |
CN113869517A (zh) * | 2020-06-30 | 2021-12-31 | 阿里巴巴集团控股有限公司 | 一种基于深度学习模型的推理方法 |
CN112381205A (zh) * | 2020-09-29 | 2021-02-19 | 北京清微智能科技有限公司 | 一种神经网络低比特量化方法 |
CN112529189A (zh) * | 2020-11-10 | 2021-03-19 | 北京百度网讯科技有限公司 | 模型压缩方法、装置、电子设备及存储介质 |
US20220188380A1 (en) * | 2020-12-14 | 2022-06-16 | Alibaba Group Holding Limited | Data processing method and apparatus applied to graphics processing unit, and electronic device |
CN113486298A (zh) * | 2021-06-28 | 2021-10-08 | 南京大学 | 基于Transformer神经网络的模型压缩方法、矩阵乘法模块 |
WO2023134030A1 (zh) * | 2022-01-11 | 2023-07-20 | 浙江大学 | 一种基于流模型的pet系统衰减校正方法 |
CN114970822A (zh) * | 2022-05-31 | 2022-08-30 | 浪潮电子信息产业股份有限公司 | 一种神经网络模型量化方法、系统、设备及计算机介质 |
CN115393633A (zh) * | 2022-08-05 | 2022-11-25 | 北京迈格威科技有限公司 | 数据处理方法、电子设备、存储介质及程序产品 |
CN115424323A (zh) * | 2022-08-29 | 2022-12-02 | 华能国际电力开发公司吉林通榆风电分公司 | 风电场权限管理系统及其方法 |
Non-Patent Citations (4)
Title |
---|
YANG BAI等: "AutoGTCO: Graph and Tensor Co-Optimize for Image Recognition with Transformers on GPU", 2021 IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER AIDED DESIGN (ICCAD) * |
姚志湘;孙增强;粟晖;袁洪福;: "通过向量角转换校正拉曼光谱中乘性干扰", 光谱学与光谱分析, no. 02 * |
杨云;王全;: "层聚合的对抗机器翻译模型的方法研究", 陕西科技大学学报, no. 01 * |
苏畅;付忠良;谭雨辰;: "一种在GPU上高精度大型矩阵快速运算的实现", 计算机应用, no. 04 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992578A (zh) * | 2024-04-02 | 2024-05-07 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116992965B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109543816B (zh) | 一种基于权重捏合的卷积神经网络计算方法和系统 | |
CN106951962B (zh) | 用于神经网络的复合运算单元、方法和电子设备 | |
JP7325158B2 (ja) | ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現 | |
CN116992965B (zh) | Transformer大模型的推理方法、装置、计算机设备和存储介质 | |
CN112508125A (zh) | 一种图像检测模型的高效全整数量化方法 | |
JP7414930B2 (ja) | 情報処理装置、情報処理方法 | |
CN112200300A (zh) | 卷积神经网络运算方法及装置 | |
JP2019128806A (ja) | データ圧縮装置、データ圧縮方法およびデータ圧縮プログラム | |
US20200394516A1 (en) | Filter processing device and method of performing convolution operation at filter processing device | |
CN112529165A (zh) | 深度神经网络剪枝方法、装置、终端及存储介质 | |
US20230077270A1 (en) | Processing Matrix Operations for Rate Limited Systems | |
Qi et al. | Learning low resource consumption cnn through pruning and quantization | |
Sakr et al. | Memory-efficient CMSIS-NN with replacement strategy | |
CN113850365A (zh) | 卷积神经网络的压缩和移植方法、装置、设备及存储介质 | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN115310596A (zh) | 卷积运算方法、装置、存储介质及电子设备 | |
Gao et al. | Revisiting thread configuration of SpMV kernels on GPU: A machine learning based approach | |
CN113779498A (zh) | 离散傅里叶矩阵重构方法、装置、设备和存储介质 | |
CN114692824A (zh) | 一种神经网络模型的量化训练方法、装置和设备 | |
CN113902928A (zh) | 图像特征的提取方法、装置及电子设备 | |
CN111243086A (zh) | 模型顶点的并行处理方法、系统、求解器、芯片和介质 | |
CN113888390A (zh) | 特征图处理方法、装置、电子设备和计算机可读介质 | |
CN113469333B (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
US20240086719A1 (en) | Sparse encoding and decoding at mixture-of-experts layer | |
CN116781484B (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 |