CN117574970A - 用于大规模语言模型的推理加速方法、系统、终端及介质 - Google Patents
用于大规模语言模型的推理加速方法、系统、终端及介质 Download PDFInfo
- Publication number
- CN117574970A CN117574970A CN202311436719.5A CN202311436719A CN117574970A CN 117574970 A CN117574970 A CN 117574970A CN 202311436719 A CN202311436719 A CN 202311436719A CN 117574970 A CN117574970 A CN 117574970A
- Authority
- CN
- China
- Prior art keywords
- model
- language model
- reasoning
- vector
- function
- 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 75
- 230000001133 acceleration Effects 0.000 title claims abstract description 28
- 239000013598 vector Substances 0.000 claims abstract description 58
- 230000000903 blocking effect Effects 0.000 claims abstract description 17
- 238000005516 engineering process Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 36
- 238000013139 quantization Methods 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 28
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000007667 floating Methods 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 claims description 13
- 238000005457 optimization Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000000638 solvent extraction Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 17
- 230000004044 response Effects 0.000 abstract description 8
- 238000012549 training Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000013138 pruning Methods 0.000 description 5
- 238000004821 distillation Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- 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
- G06N5/041—Abduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于大规模语言模型的推理加速方法,包括:获取用户输入的待处理数据;将待处理数据转换为向量;采用FlashAttention技术对向量进行分块处理得到处理结果,将处理结果送SRAM中;将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示。该方法提高了大规模语言模型的推理速度,即使面对庞大的模型结构和参数量,也能迅速地完成推理过程,为用户提供实时响应。提高了大规模语言模型推理的适应性,能够处理各种复杂场景下的推理请求。提高了大规模语言模型推理的效率,不仅仅是在单次推理上,在高并发、大数据量的场景下,模型推理的整体效率得到显著提升。
Description
技术领域
本发明涉及计算机软件技术领域,具体涉及一种用于大规模语言模型的推理加速方法、系统、终端及介质。
背景技术
大规模语言模型(如GPT系列)在各种自然语言处理任务中表现出色,广泛应用于问答系统、聊天机器人、文本生成等领域。然而,随着模型规模的增加,模型的推理时间和计算资源成本也随之增加,给实际应用带来挑战。例如,当用户希望在实时场景中快速得到模型的回复或分析结果时,过长的推理时间可能导致用户体验下降。
当前主要的解决方法可归结为以下三类:模型剪枝、模型蒸馏和算法优化。
模型剪枝:模型剪枝方法通过去除模型中的一些不重要的参数或神经元,从而减小模型规模和推理时间。这类方法主要关注于找到那些对模型输出影响较小的参数,并将其删除。优点:能够有效减小模型规模,提高推理速度。缺点:过度剪枝可能导致模型性能下降,需要仔细权衡剪枝的程度。
模型蒸馏:模型蒸馏是一种训练小模型的方法,通过大模型的知识来指导小模型的学习。在此过程中,大模型充当“教师”,小模型充当“学生”。优点:得到的小模型具有较快的推理速度,同时尽量保留了大模型的性能。缺点:需要额外的训练过程,蒸馏的效果可能受到许多因素的影响。
算法优化:算法优化主要关注于改进模型的计算过程,提高计算效率。例如,利用更快的矩阵乘法算法或并行计算技术来加速模型的推理。优点:直接针对模型的计算过程,可以在不改变模型结构的前提下提高推理速度。缺点:对于某些模型或应用场景,优化的空间可能有限。
尽管现有技术在一定程度上加速了大规模语言模型的推理,但由于实际应用中的多样性和挑战性,研究和开发一种新的推理加速方法和系统仍然十分必要。
发明内容
针对现有技术中的缺陷,本发明提供的一种用于大规模语言模型的推理加速方法和系统,能提高大规模语言模型的推理速度、适应性和效率。
第一方面,本发明实施例提供的一种用于大规模语言模型的推理加速方法,包括:
获取用户输入的待处理数据;
将待处理数据转换为向量;
采用FlashAttention技术对所述向量进行分块处理得到处理结果,将所述处理结果送SRAM中;
将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示。
可选地,所述采用FlashAttention技术对所述向量进行分块处理得到处理结果的具体方法包括:
将向量进行分块;
分别计算出每块向量的最大值;
将指数项与所述最大值逐元素相减得到第一函数;
把相减后得到的向量进行求和得到第二函数;
将第一函数除以第二函数得到子向量的归一化指数函数;
进行迭代计算,用子向量的归一化指数函数更新全局归一化指数函数,得到完整的向量计算结果。
可选地,将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示的具体方法包括:
采用Lazy Batch-Updates的方法对计算和内存访问进行平衡,将大规模语言模型权重的更新操作进行分块,每次处理一组权重。
第二方面,本发明实施例提供的一种用于大规模语言模型的推理加速系统,包括:数据获取模块、数据转换模块、注意力机制优化模块和模型量化模块,所述数据获取模块用于获取用户输入的待处理数据;
所述数据转换模块用于将待处理数据转换为向量;
所述注意力机制优化模块采用FlashAttention技术对所述向量进行分块处理得到处理结果,将所述处理结果送SRAM中;
所述模型量化模块用于将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示。
可选地,注意力机制优化模块包括分块单元和计算单元,所述分块单元用于将向量进行分块;
所述计算单元用于分别计算出每块向量的最大值,将指数项与所述最大值逐元素相减得到第一函数,把相减后得到的向量进行求和得到第二函数,将第一函数除以第二函数得到子向量的归一化指数函数,进行迭代计算,用子向量的归一化指数函数更新全局归一化指数函数,得到完整的向量计算结果。
可选地,模型量化模块包括平衡单元和分组处理单元,所述平衡单元采用LazyBatch-Updates的方法对计算和内存访问进行平衡;
所述分组处理单元用于将大规模语言模型权重的更新操作进行分块,每次处理一组权重。
第三方面,本发明实施例提供的一种智能终端,包括处理器、输入设备、输出设备和存储器,所述处理器分别与输入设备、输出设备和存储器连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述实施例描述的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述实施例描述的方法。
本发明的有益效果:
本发明实施例提供的一种用于大规模语言模型的推理加速方法,提高了大规模语言模型的推理速度,即使面对庞大的模型结构和参数量,也能迅速地完成推理过程,为用户提供实时响应。提高了大规模语言模型推理的适应性,能够处理各种复杂场景下的推理请求,包括在特定的硬件环境或资源限制下进行的推理。提高了大规模语言模型推理的效率,不仅仅是在单次推理上,在高并发、大数据量的场景下,模型推理的整体效率得到显著提升。
本发明实施例提供一种用于大规模语言模型的推理加速系统、终端和介质,与上述一种用于大规模语言模型的推理加速方法出于相同的发明构思,具有相同的有益效果。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1示出了本发明第一实施例所提供的一种用于大规模语言模型的推理加速方法的流程图;
图2示出了本发明第一实施例采用FlashAttention技术对所述向量进行分块处理的方法的流程图;
图3示出了本发明另一实施例所提供的一种用于大规模语言模型的推理加速系统的结构框图;
图4示出了本发明另一实施例所提供的一种智能终端的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
如图1所示,示出了本发明第一实施例所提供的一种用于大规模语言模型的推理加速方法的流程图,适用于用于大规模语言模型的推理加速系统,该方法包括以下步骤:
S1:获取用户输入的待处理数据;
S2:将待处理数据转换为向量;
S3:采用flashattention技术对所述向量进行分块处理得到处理结果,将所述处理结果送SRAM中;
S4:将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示。
在实际工作中用于大规模语言模型的推理加速方法通过按照上述步骤S1~S4的顺序执行,每一步的结果都会作为下一步的输入,从而实现整个推理加速的过程,实现对大规模语言模型的高效推理加速。步骤S3主要是通过对注意力机制进行优化,提高其在GPU设备上进行计算的计算效率,对硬件设备进行高效的使用。步骤S4则是对大规模语言模型的参数进行量化处理。模型的参数是浮点数格式,而量化是将这些浮点数参数转化为定点数或低位数的表示,如8位或16位整数。这样可以大幅减少模型的存储和计算需求,从而加速推理过程,同时也可以节省存储空间和计算资源。
具体地,以A100(40G HBM)的GPU为例,SRAM内存分布在108个流式多处理器上,大小为20M,读写速度为19TB/s。HBM单元的大小是40G,读写速度是1.5TB/s。可以看到SRAM的速度比HBM快的多,但是其大小远小于HBM。在GPU的计算过程中,输入从HBM加载到寄存器和SRAM上,计算后再写回HBM。SRAM(Static Random-Access Memory)和HBM(High BandwidthMemory)都是计算机和其他数字设备中使用的内存技术,但它们有不同的用途和特点。SRAM速度更快,电路结构更加简单,通常用六个晶体管来存储一个位的数据。HBM是一种堆叠的DRAM技术,其带宽更高,但是速度较慢。
在Transformer模型中,大量的矩阵运算存在于self-attention模块中,self-attention的计算方式如下公式(1):
其中QKV分别是三个矩阵,其形状是N*d,N表示序列的长度,d表示维度。
将公式(1)拆解为公式(2)、(3)、(4):
S=QKT∈R(N×N) (2)
P=softmax(S)∈R(N×N) (3)
O=PV∈R(N×d) (4)
其中,S和P的空间复杂度都是O(N2),在上述计算过程中,数据在HBM和SRAM之间传输的过程可以总结为:
a)从HBM上加载Q和K,计算公式(2),然后将S写入HBM。
b)从HBM读取S,计算公式(3),然后将P写入HBM。
c)从HBM上加载P和V,计算公式(4),然后将O写入HBM。
从上述过程中可以看到为了计算公式(1),需要涉及到对HBM单元的多次读写操作,又因为HBM单元读写速度较慢导致公式(1)的计算时间较长。为了降低该问题,我们使用FlashAttention技术,将参与计算的矩阵进行分块后送入SRAM,从而可以有效利用SRAM的高速计算的特点,并减少了HBM的读写次数。
如图2所示,示出了步骤S3采用FlashAttention技术对所述向量进行分块处理方法的流程图。采用FlashAttention技术对所述向量进行分块处理得到处理结果的具体方法包括:
将向量进行分块;
分别计算出每块向量的最大值;
将指数项与所述最大值逐元素相减得到第一函数;
把相减后得到的向量进行求和得到第二函数;
将第一函数除以第二函数得到子向量的归一化指数函数;
进行迭代计算,用子向量的归一化指数函数更新全局归一化指数函数,得到完整的向量计算结果。
具体地,对self-attention分块计算的难点在于对softmax的分块计算,因为softmax中需要计算所有元素的求和,如公式(5)为向量的softmax的计算方法。
公式(5)中存在指数项当其中的xi较大时,指数项的值也较大,容易出现数值溢出的现象,所以通常使用下述方式来计算
m(x)=max([x1,x2,...,xB]) (6)
其中xi是向量x的第i个分量,m(x)是向量x中的最大值。
f(x)是一个新的向量,每一项是在公式(6)的基础上,在指数项中减去一个最大值m(x)。防止在计算过程中出现益处的现象。
l(x)=∑if(x)i (8)
l(x)是softmax分母中的求和项。至此,原始的softmax公式可以转换为如下格式:
接下来介绍如何对softmax进行分块计算的核心思想。假设一个大小为2B的向量把它分为两块,则得到x=[x(1),x(2)],其中/>此时首先计算x(1)部分,将x(1)带入上述公式,得到局部softmax。
l(x(1))=∑if(x(1))i (12)
由于公式(7)中减去最大值的目标是整个向量x的最大值,而公式(11)中减去最大值是x(1)分量对应的最大值,所以这里成为局部softmax。同理,公式(12)中的求和也是局部操作。
至此,依据相同的过程,分别对向量x的每个分量x(i)都进行上述计算迭代,最终可得到完整的向量x的计算结果。
量化是将浮点数模型参数和计算转换为低位宽度的整数表示的过程。这种转换可以显著减少模型的存储需求和计算复杂性,从而使模型更适合在资源受限的设备上部署。量化的动机包括:
1)存储节省:通过减少每个参数的位数,可以显著减少模型的大小。2)计算加速:低位宽度的操作通常比浮点操作更快。3)能耗降低:在许多硬件上,整数运算比浮点运算消耗更少的能量。常用的量化方法包括:1)静态量化:在模型训练完成后进行量化。这不需要访问数据,只需要模型的权重。2)动态量化:在模型的推理阶段进行量化,通常涉及到权重和激活的量化。3)量化训练(Quantization Aware Training,QAT):在训练过程中模拟量化的效果,使模型对量化操作更加鲁棒。模型量化也面临这诸多挑战:首先是精度损失:量化可能会导致模型精度的轻微下降,尤其是当使用非常低的位宽度时。其次是实现复杂性:量化可能需要特定的硬件和软件支持。
在本实施例中使用GPTQ的方法对模型进行量化,GPTQ采用了一种直接量化策略,避免了模型的再次训练,从而在时间效率上表现出色。此方法能迅速地将大型GPT模型(例如GPT-3-175B)的参数降低到较小的位宽,从而降低了存储需求。虽然GPTQ利用了量化方法,但它成功地将参数位宽降至3或4位,同时几乎不损失模型的准确度。这确保了压缩后的模型与原始模型在性能上保持接近,这对于众多应用场景来说至关重要。GPTQ在深度量化场景下也展现了优异的性能,例如将权重降至2位或三值(ternary)表示。这表明它不仅可以处理较低的位宽,而且在更深度的位宽压缩下也能保持良好的准确性。
在传统的量化方法中,每次更新权重都会涉及到大量的计算,但是内存访问往往很低。所以这类操作无法充分利用现代GPU的大规模计算能力。本实施例采用了LazyBatch-Updates的方法对计算和内存访问进行平衡。将大规模语言模型权重的更新操作进行分块,每次处理一组权重。这种方法可以将计算操作和内存访问更有效的平衡起来,减少内存的访问频率。同时批量操作可以提升GPU的利用率。
表1中是模型经过不同精度的量化后的磁盘占用空间,以及分别在CPU和GPU上的推理速度,单位是ms/token。
表1
本发明实施例提供的一种大规模语言模型推理加速方法,提高了大规模语言模型的推理速度,即使面对庞大的模型结构和参数量,也能迅速地完成推理过程,为用户提供实时响应。提高了大规模语言模型推理的适应性,能够处理各种复杂场景下的推理请求,包括在特定的硬件环境或资源限制下进行的推理。提高了大规模语言模型推理的效率,不仅仅是在单次推理上,在高并发、大数据量的场景下,模型推理的整体效率得到显著提升。
在上述的第一实施例中,提供了一种用于大规模语言模型的推理加速方法,与之相对应的,本申请还提供一种用于大规模语言模型的推理加速系统。请参考图3,其为本发明第二实施例提供的一种用于大规模语言模型的推理加速系统的结构框图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
如图3所示,示出了一种用于大规模语言模型的推理加速系统的结构框图,系统包括:数据获取模块、数据转换模块、注意力机制优化模块和模型量化模块,数据获取模块用于获取用户输入的待处理数据;数据转换模块用于将待处理数据转换为向量;注意力机制优化模块采用FlashAttention技术对所述向量进行分块处理得到处理结果,将处理结果送SRAM中;模型量化模块用于将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示。系统:数据获取模块、数据转换模块、注意力机制优化模块以及模型量化模块。这四个模块共同协作,实现对大规模语言模型的高效推理加速。下面简单介绍各个模块的功能以及各模块间的交互方式。
1.数据获取模块:用于获取用户输入的待处理数据。
2.数据转换模块:用于将待处理数据转换为向量。
3.注意力机制优化模块:
这个模块的主要任务是通过对注意力机制的计算方法进行优化,提高其在GPU设备上进行计算的计算效率,对硬件设备进行高效的使用。
4.模型量化模块:
模型量化模块则是针对模型的参数进行量化处理。通常,模型的参数是浮点数格式,而量化是将这些浮点数参数转化为定点数或低位数的表示,如8位或16位整数。这样可以大幅减少模型的存储和计算需求,从而加速推理过程,同时也可以节省存储空间和计算资源。
这四个模块相互协作,共同构成了本发明实施例的系统架构。在实际工作中,会按照数据获取-数据转换-模型格式转化-模型量化的流程依次进行。每一步的结果都会作为下一步的输入,从而实现整个推理加速的过程。
注意力机制优化模块包括分块单元和计算单元,所述分块单元用于将向量进行分块;计算单元用于分别计算出每块向量的最大值,将指数项与所述最大值逐元素相减得到第一函数,把相减后得到的向量进行求和得到第二函数,将第一函数除以第二函数得到子向量的归一化指数函数,进行迭代计算,用子向量的归一化指数函数更新全局归一化指数函数,得到完整的向量计算结果。
模型量化模块包括平衡单元和分组处理单元,平衡单元采用Lazy Batch-Updates的方法对计算和内存访问进行平衡;分组处理单元用于将大规模语言模型权重的更新操作进行分块,每次处理一组权重。
本发明实施例提供的一种大规模语言模型推理加速系统,提高了大规模语言模型的推理速度,即使面对庞大的模型结构和参数量,也能迅速地完成推理过程,为用户提供实时响应。提高了大规模语言模型推理的适应性,能够处理各种复杂场景下的推理请求,包括在特定的硬件环境或资源限制下进行的推理。提高了大规模语言模型推理的效率,不仅仅是在单次推理上,在高并发、大数据量的场景下,模型推理的整体效率得到显著提升。
如图4所示,示出了本发明另一实施例的智能终端的结构框图,该终端包括处理器、输入设备、输出设备和存储器,所述处理器分别与输入设备、输出设备和存储器连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述实施例描述的方法。
应当理解,在本发明实施例中,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备可以包括显示器(LCD等)、扬声器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器、输入设备、输出设备可执行本发明实施例提供的方法实施例所描述的实现方式,也可执行本发明实施例所描述的系统实施例的实现方式,在此不再赘述。
在本发明还提供一种计算机可读存储介质的实施例,计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,程序指令当被处理器执行时使所述处理器执行上述实施例描述的方法。
所述计算机可读存储介质可以是前述实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (8)
1.一种用于大规模语言模型的推理加速方法,其特征在于,包括:
获取用户输入的待处理数据;
将待处理数据转换为向量;
采用FlashAttention技术对所述向量进行分块处理得到处理结果,将所述处理结果送SRAM中;
将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示。
2.如权利要求1所述的方法,其特征在于,所述采用FlashAttention技术对所述向量进行分块处理得到处理结果的具体方法包括:
将向量进行分块;
分别计算出每块向量的最大值;
将指数项与所述最大值逐元素相减得到第一函数;
把相减后得到的向量进行求和得到第二函数;
将第一函数除以第二函数得到子向量的归一化指数函数;
进行迭代计算,用子向量的归一化指数函数更新全局归一化指数函数,得到完整的向量计算结果。
3.如权利要求1所述的方法,其特征在于,所述将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示的具体方法包括:
采用Lazy Batch-Updates的方法对计算和内存访问进行平衡,将大规模语言模型权重的更新操作进行分块,每次处理一组权重。
4.一种用于大规模语言模型的推理加速系统,其特征在于,包括:数据获取模块、数据转换模块、注意力机制优化模块和模型量化模块,所述数据获取模块用于获取用户输入的待处理数据;
所述数据转换模块用于将待处理数据转换为向量;
所述注意力机制优化模块采用FlashAttention技术对所述向量进行分块处理得到处理结果,将所述处理结果送SRAM中;
所述模型量化模块用于将大规模语言模型的浮点数模型参数转化为定点数或低位宽度的整数表示。
5.如权利要求4所述的系统,其特征在于,所述注意力机制优化模块包括分块单元和计算单元,所述分块单元用于将向量进行分块;
所述计算单元用于分别计算出每块向量的最大值,将指数项与所述最大值逐元素相减得到第一函数,把相减后得到的向量进行求和得到第二函数,将第一函数除以第二函数得到子向量的归一化指数函数,进行迭代计算,用子向量的归一化指数函数更新全局归一化指数函数,得到完整的向量计算结果。
6.如权利要求4所述的系统,其特征在于,所述模型量化模块包括平衡单元和分组处理单元,所述平衡单元采用Lazy Batch-Updates的方法对计算和内存访问进行平衡;
所述分组处理单元用于将大规模语言模型权重的更新操作进行分块,每次处理一组权重。
7.一种智能终端,包括处理器、输入设备、输出设备和存储器,所述处理器分别与输入设备、输出设备和存储器连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,其特征在于,所述处理器被配置用于调用所述程序指令,执行如权利要求1-3任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311436719.5A CN117574970A (zh) | 2023-10-31 | 2023-10-31 | 用于大规模语言模型的推理加速方法、系统、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311436719.5A CN117574970A (zh) | 2023-10-31 | 2023-10-31 | 用于大规模语言模型的推理加速方法、系统、终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117574970A true CN117574970A (zh) | 2024-02-20 |
Family
ID=89883406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311436719.5A Pending CN117574970A (zh) | 2023-10-31 | 2023-10-31 | 用于大规模语言模型的推理加速方法、系统、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117574970A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992578A (zh) * | 2024-04-02 | 2024-05-07 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
CN118095373A (zh) * | 2024-03-27 | 2024-05-28 | 荣耀终端有限公司 | 大语言模型的量化方法、电子设备、芯片系统及存储介质 |
CN118113481A (zh) * | 2024-04-25 | 2024-05-31 | 苏州元脑智能科技有限公司 | 一种大语言模型的运行方法、系统、产品、设备及介质 |
CN118377911A (zh) * | 2024-06-21 | 2024-07-23 | 深圳市九天睿芯科技有限公司 | 用于大语言模型的softmax计算方法、装置及存储介质 |
-
2023
- 2023-10-31 CN CN202311436719.5A patent/CN117574970A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118095373A (zh) * | 2024-03-27 | 2024-05-28 | 荣耀终端有限公司 | 大语言模型的量化方法、电子设备、芯片系统及存储介质 |
CN118095373B (zh) * | 2024-03-27 | 2024-09-13 | 荣耀终端有限公司 | 大语言模型的量化方法、电子设备、芯片系统及存储介质 |
CN117992578A (zh) * | 2024-04-02 | 2024-05-07 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
CN117992578B (zh) * | 2024-04-02 | 2024-07-02 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
CN118113481A (zh) * | 2024-04-25 | 2024-05-31 | 苏州元脑智能科技有限公司 | 一种大语言模型的运行方法、系统、产品、设备及介质 |
CN118377911A (zh) * | 2024-06-21 | 2024-07-23 | 深圳市九天睿芯科技有限公司 | 用于大语言模型的softmax计算方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210357736A1 (en) | Deep neural network hardware accelerator based on power exponential quantization | |
CN117574970A (zh) | 用于大规模语言模型的推理加速方法、系统、终端及介质 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
EP3657398A1 (en) | Weight quantization method for a neural network and accelerating device therefor | |
CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
US11593628B2 (en) | Dynamic variable bit width neural processor | |
US20210287074A1 (en) | Neural network weight encoding | |
WO2022111002A1 (zh) | 用于训练神经网络的方法、设备和计算机可读存储介质 | |
CN113205818B (zh) | 用于优化语音识别过程的方法、设备和存储介质 | |
TWI775210B (zh) | 用於卷積運算的資料劃分方法及處理器 | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN118132156B (zh) | 一种算子执行方法、设备、存储介质及程序产品 | |
WO2021081854A1 (zh) | 一种卷积运算电路和卷积运算方法 | |
CN111587441B (zh) | 使用以比特值为条件的回归神经网络生成输出示例 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
TWI768516B (zh) | 運算裝置和運算方法 | |
CN109697509B (zh) | 处理方法及装置、运算方法及装置 | |
CN112183744A (zh) | 一种神经网络剪枝方法及装置 | |
CN112418388A (zh) | 一种实现深度卷积神经网络处理的方法及装置 | |
CN114546489A (zh) | 基于一种面向risc-v的编译器设计实现方法 | |
CN112905954A (zh) | 一种利用fpga bram的cnn模型卷积运算加速计算方法 | |
CN113570053A (zh) | 一种神经网络模型的训练方法、装置以及计算设备 | |
TWI798591B (zh) | 卷積神經網路運算方法及裝置 | |
CN113849592B (zh) | 文本情感分类方法及装置、电子设备、存储介质 | |
CN113377546B (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 |