CN117574976B - 一种大语言模型软硬件协同量化加速计算方法及系统 - Google Patents
一种大语言模型软硬件协同量化加速计算方法及系统 Download PDFInfo
- Publication number
- CN117574976B CN117574976B CN202410058901.XA CN202410058901A CN117574976B CN 117574976 B CN117574976 B CN 117574976B CN 202410058901 A CN202410058901 A CN 202410058901A CN 117574976 B CN117574976 B CN 117574976B
- Authority
- CN
- China
- Prior art keywords
- channel
- data
- outlier
- quantization
- language model
- 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.)
- Active
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 72
- 238000004364 calculation method Methods 0.000 title claims abstract description 35
- 230000001133 acceleration Effects 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000009825 accumulation Methods 0.000 claims abstract description 18
- 238000005457 optimization Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims abstract description 11
- 239000010410 layer Substances 0.000 claims description 103
- 230000004913 activation Effects 0.000 claims description 92
- 238000001994 activation Methods 0.000 claims description 92
- 230000008707 rearrangement Effects 0.000 claims description 34
- 239000011159 matrix material Substances 0.000 claims description 23
- 239000002243 precursor Substances 0.000 claims description 13
- 239000011229 interlayer Substances 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 claims description 5
- 230000004927 fusion Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 230000010349 pulsation Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims description 2
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 108091006146 Channels Proteins 0.000 description 78
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008447 perception Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2433—Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
-
- 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/042—Knowledge-based neural networks; Logical representations of neural 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公布了一种大语言模型软硬件协同量化加速计算方法及系统,采用以通道为粒度处理大语言模型中的离群值,将存在大量离群值的通道整体以高精度进行存储,通过自适应量化过程、编译优化过程和硬件实现过程,实现大语言模型软硬件协同推理加速,保证了数据编码的灵活性和规整性,同时易于在系统和硬件上进行实现和部署;可重构加速器系统包括:运算模块、累加模块、解码模块、控制模块、片上缓存和主存。采用本发明,既能够有效保持量化后模型的精度,又能实现硬件高效的推理计算。
Description
技术领域
本发明涉及大语言模型计算技术,具体涉及一种离群值感知的大语言模型软硬件协同量化加速计算方法及系统,是一种针对大语言模型的推理计算优化技术,通过神经网络量化压缩技术降低计算系统的内存需求,并实现以更快的计算速度完成用户的推理需求。
背景技术
近年来,基于Transformer架构的大语言模型在多个领域显示出卓越的性能。这些模型具有超大的参数规模,能够很好地理解和生成自然语言,适用于多种下游应用场景,如机器翻译、内容摘要、情感分析等。大语言模型的推理过程有着极高的存储、带宽和算力需求,限制了服务商同时可服务的用户规模。
神经网络量化可以有效降低大语言模型推理成本。这类技术将模型权重和激活值从高位宽浮点数量化为低位宽整数,可以显著减少对内存大小和带宽的需求。量化后的模型可以利用效率更高的低位宽整型运算单元,使计算密集型算子得到加速。
传统的神经网络量化方案在大语言模型上存在以下不足之处:
(1)大语言模型中的线性层中间激活中存在离群值。这些离群值占比很小,但具有较大的数值范围,并与模型的准确率高度相关。传统的均匀量化算法使用同种方式对正常/离群激活值进行量化,会对正常值产生较大的舍入误差,或对离群值产生较大的截断误差,从而极大地损害模型精度。
(2)现有的离群值感知的量化方案将离群值采用高精度存储,并使用定制化的数据通路进行计算。然而,传统的离群值感知量化方案缺乏针对大语言模型的离群值分布分析,难以兼顾离群值表示的灵活性和硬件实现的高效性。
综上所述,现有的神经网络量化技术方案在大语言模型上的应用,难以兼顾模型精度和硬件高效实现。
发明内容
为了克服上述现有技术的不足,本发明提供了一种离群值感知的大语言模型软硬件协同量化加速计算方法及系统,既能够有效保持量化后模型的精度,又能做到硬件高效的推理计算。
本发明利用了大语言模型中离群值聚集在特定通道的性质,提出以通道为粒度处理离群值,将存在大量离群值的通道整体以高精度进行存储。这一方案保证了数据编码的灵活性和规整性,同时易于在系统和硬件上进行实现和部署。
本发明提供了量化算法-编译优化-硬件实现的全栈式协同推理加速方案。具体来说,本方案包括以下方法步骤:
1)给定基于Transformer的大语言模型,通过设计并使用自适应量化算法,对大语言模型离群值显著的线性层进行混合精度量化,并保证混合精度量化引起的额外存储开销达到所设定的目标存储开销要求;包括:
11)从大语言模型训练时使用的开源文本数据集(称为校准数据集语料数据)中随机抽取少量文本输入到大语言模型中进行推理计算,并统计各线性层中每个激活通道的幅度,即通道上激活值的最大值和最小值之差;
12)对于大语言模型的每个线性层,设定用于辨别离群通道的阈值,将幅度超过所设定阈值的激活通道分类为离群通道,将其他通道分类为正常通道。
对于同一个通道,不同的词在通道上的激活值大小不同。初始情况下,阈值按照“3倍标准差”法则确定,即将阈值设定为当前线性层各激活通道的幅度平均值加上3倍的幅度标准差。
13)对于大语言模型的每个线性层,设定离群通道和正常通道的数据精度。初始情况下,离群通道的激活值使用8位浮点数表示,正常通道的激活值使用4位整数表示。
14)基于全体线性层离群通道集合和离群通道精度,求出当前在计算系统(或称可重构加速器)的主存上引起的额外存储开销;
15)若当前的额外存储开销与目标存储开销不同,则尝试调整全体线性层的离群通道量化超参数,即离群通道辨别阈值和离群通道数据精度,从而达到目标存储开销,即当前的额外存储开销与目标存储开销相同;
16)对于每个线性层,可以采取的离群通道量化超参数调整方案包括:按一定百分比增大或减小离群通道辨别阈值,以及将离群通道的数据精度设置为更高或更低的浮点数。
17)各个线性层的离群通道量化超参数调整方案相互组合,构成模型级离群通道量化超参数调整方案空间。若该空间规模过大,无法完全评估其中每种方案,从中随机采样出部分调整方案作为本次的离群通道量化超参数调整方案集合。
18)对于每种离群通道量化超参数调整方案,评估各个线性层激活张量量化的均方误差,将量化误差最小的调整方案作为本轮调整的结果;
19)若调整后仍未达到目标存储开销,则回到步骤15),在当前方案的基础上进一步迭代优化,直到达到目标存储开销。
2)大语言模型的线性层权重、输入激活和输出激活均以张量的格式存储,即线性层权重张量、线性层输入激活张量和线性层输出激活张量。大语言模型中各个层间输入输出依赖关系构成算子图。
线性层计算即矩阵乘法Y=WX,其中,W矩阵是权重矩阵,X是输入激活矩阵,Y是输出激活矩阵。矩阵是一种维度为2的张量。基于步骤1)搜索到的混合精度量化的配置,对大语言模型的每个线性层的输入激活张量进行分块间离群通道均衡的混合精度张量数据编码,并对大语言模型的各层进行算子图级层间协同数据流优化,得到在计算系统上运行速度最快的执行方案;
进行数据编码包括:
21)将线性层权重张量、输入激活张量和输出激活张量拆分为多个包含相同通道数的数据分块,作为计算系统主存与加速器片上缓存的基本数据交互单位;
22)给定数据分块大小,在当前线性层计算开始前预先对输入激活张量的通道维度进行重排,使得每个数据分块中具有相同数量的离群通道,且将所有离群通道都放置在数据块的起始部分。此时,输入激活张量数据分块包括两部分,分别是离群输入激活通道子数据分块,和正常输入激活通道子数据分块。得到输入激活张量通道维度重排方案;
23)给定输入激活张量通道维度重排方案,将线性层权重张量的输入通道维度,按照相同的顺序,在当前线性层计算开始前进行重排;
24)对所有可能的权重张量、输入激活张量和输出激活张量数据分块大小的组合进行评估,选择在目标加速器计算系统架构上执行效率最高的数据分块大小组合方案,对各个张量进行分块,并确定激活张量通道维度重排顺序;
对算子图进行数据流优化包括:
对于每个线性层,在算子图中输入边上显式插入激活数据重排算子,并基于以下方法进行重排算子融合:(1)将重排算子与前驱线性层融合,预重排前驱线性层权重张量的输出通道维度;(2)将重排算子与除重排算子类型之外的其他类型前驱算子融合,预重排前驱算子的输出激活写回主存的地址;(3)如果重排算子的前一层为逐元素算子,则可将重排算子进一步与更前面的算子(前一层的前一层)进行融合。
3)在计算系统上部署,进行模型推理计算;
计算系统包括:运算模块、累加模块、控制模块、解码模块、片上缓存以及主存;
计算系统工作时,包括:
31)读计算系统的主存:从计算系统的主存读入当前线性层权重和输入激活张量数据分块,存储到片上缓存中;
32)进行预加载:将当前线性层的权重张量数据分块从片上缓存预加载到计算系统的运算模块;
33)进行矩阵乘法运算:将正常输入激活通道子数据分块从缓存加载到运算模块,将离群输入激活通道子数据分块从缓存加载到解码模块,由计算系统的解码模块将解码后的数据输入运算模块,运算模块进行矩阵乘法,将输出激活张量数据分块结果由累加单元累加到片上缓存的对应位置;
34)写计算系统的片外存储:将输出激活张量数据分块从片上缓存写回主存。
以上步骤按照流水线的方式依次执行。
通过上述步骤,实现离群值感知的大语言模型软硬件协同量化加速计算。
本发明还提供一种离群值感知的大语言模型软硬件协同量化计算加速系统(计算系统),包括:运算模块、累加模块、解码模块、控制模块、片上缓存和主存。
运算模块负责执行矩阵乘法运算。运算模块基于脉动阵列实现,并包含两个子阵列;其中,能效子阵列用于处理低精度激活,灵活子阵列用于处理高精度激活;两个子阵列按照输出激活的流动方向顺序连接。运算模块需要读取权重数据分块和激活数据分块,以进行矩阵乘法运算;其中,权重数据分块从片上缓存直接读入,能效子阵列的激活数据分块从片上缓存读入,灵活子阵列的激活数据分块从解码模块读入。运算模块将矩阵乘法的运算结果传递给累加模块,进行后续操作。
累加模块负责读入运算模块提供的矩阵乘法结果,并将结果累加至片上缓存的对应位置。
解码模块负责从片上缓存读入不同精度和存储格式的高精度数据,解码成统一的数据格式,输入到运算模块。
控制模块负责向其他各个模块发送指令,以管理整个计算系统的计算流程。对于运算模块,控制模块发送访存指令,决定哪些权重数据分块将从片上缓存读入运算模块;对于解码模块,控制模块发送模式选择指令,决定其对高精度数据的解码方式。对于累加模块,控制模块发送访存指令,决定运算结果累加到的片上缓存的位置。
片上缓存负责临时存储数据。片上缓存以分块为粒度,从计算系统的主存读入权重和输入激活,并向其写回矩阵乘法得到的输出激活。
主存负责存储整个系统中所有的数据,包括模型权重,中间激活。
与现有技术相比,本发明具有以下的技术效果:
本发明提出一种大语言模型软硬件协同量化加速计算方法及系统,其中设计的自适应量化算法能够自动适应大语言模型不同线性层离群值的分布差异。在基于Transformer的大语言模型中,通过算子融合,可以消除所有的显式重排操作,在不引起额外访存开销的情况下实现规则访存。对硬件而言,现有的量化计算加速技术将更多的通道表示为高精度会增加计算和存储需求;本发明算法能够在给定硬件开销下,尽可能将最关键的通道采用高精度表示,以保持模型精度。因此,本发明提供的计算系统架构既能够支持不同比例和精度的混合精度计算,又兼顾了硬件实现的高效性。
附图说明
图1为本发明提出的分块间离群通道均衡的混合精度张量数据编码示意图。
图2为本发明在基于Transformer架构的大语言模型中进行数据流优化的优化结果示意图。
图3为本发明实施例提供的计算系统硬件整体设计结构框图。
图4为本发明实施例提供的计算系统中的解码单元结构设计示意图。
图5为本发明实施例提供的计算系统中能效计算单元和灵活计算单元结构设计示意图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种大语言模型软硬件协同量化加速计算方法及系统,针对大语言模型的推理计算进行优化,通过神经网络量化压缩技术降低计算系统的内存需求,并实现以更快的计算速度完成用户的推理需求。包括以下组成部分:
1. 给定模型各层中的通道范围统计数据和目标存储开销,通过本发明提出的自适应量化算法进行启发式搜索,将离群通道采用高精度表示,得到量化误差小的混合精度量化配置。
自适应量化算法能够启发式地搜索量化误差较小的混合量化配置,给定大语言模型各线性层中的通道数据范围统计结果和在主和在主存上用于存储高精度数据的目标的存储开销/> ,能够搜索出各层的离群通道集合和每层离群通道的精度/>。
对于层,自适应量化算法通过比较每个通道的数据范围和阈值/>的相对大小来确定其离群通道集合/>。基于全体层离群通道集合/>和离群通道精度/> ,可求出当前的存储开销/>。若 />与目标开销/>不一致,则自适应量化算法会调整全体层的阈值 />和离群通道精度 />,并选取与目标开销更接近且量化误差尽可能小的调整方案。算法不断迭代优化 />和/> ,直到达到目标存储开销。
2. 基于搜索到的混合精度量化配置,对大语言模型的每个线性层的激活张量进行分块间离群通道均衡的混合精度张量数据编码,对大语言模型的各层进行算子图级层间协同数据流优化:
本发明提出分块间离群通道均衡的混合精度张量数据编码,以保证计算和访存的规整性。对于大语言模型的每个线性层,其在推理过程中生成的中间激活张量会被拆分为多个包含相同通道数的数据分块,作为主存与加速器片上缓存的基本数据交互单位。对于给定得数据分块大小,张量的通道维度会在线性层计算开始前预先进行重排,以保证每个数据分块中具有相同数量的离群通道,并且所有离群通道都被放置在数据块的起始部分。给定激活张量通道维度重排方案,将线性层权重张量的输入通道维度,按照相同的顺序,在当前线性层计算开始前进行重排。激活张量数据分块结构的一致性,保证了计算系统与主存间数据交互的规整性和高效性。对于所有可能的激活张量分块大小及对应的数据重排方式,即激活张量的数据编码方案,使用性能仿真器得到在目标加速器架构上的执行效率,从中选择执行效率最高的激活张量的数据编码方案。
本发明基于大语言模型架构进行了算子图级层间协同数据流优化,使得各个线性层激活张量数据重排引起的额外开销被降低到最小。大语言模型中各个层间输入输出依赖关系构成了算子图,在算子图中各个线性层前显式插入重排算子,使得每个线性层的激活张量在计算开始前就完成了分块间离群通道均衡的混合精度张量数据编码。进行重排算子融合,方法包括:(1)若重排算子前一层亦为线性层,则可以预先重排该线性层权重张量的输出通道顺序;(2)若重排算子前一层为其他类型算子(如归一化层),则可在每个通道的结果写回主存时调整写回地址;(3)如果重排算子的前一层为逐元素算子,则可将重排算子进一步与更前面的算子进行融合。
3. 计算系统架构设计:
计算系统包含如下组成部分:运算模块、片上缓存、累加模块、控制模块以及解码模块。与常规的神经网络加速器不同,本发明的核心创新点为:可动态配置的运算模块设计、及相应的解码模块和控制模块设计。
运算模块为权重固定的脉动阵列,由两个包含不同运算单元的子阵列组成。能效子阵列的每个计算单元只能读入4比特整型数据,并执行相应的乘累加运算。灵活子阵列的每个计算单元支持读入整数-指数对表示的激活值,并进行乘累加运算,其中整数部分为4比特,指数部分为5比特。灵活子阵列的一个计算单元或多个组合计算单元组合后,可以支持高精度的浮点运算。例如,一个5位指数域、2位尾数域的8比特浮点数激活值,可以转换成一个整数-指数对,由一个灵活子阵列的计算单元完成相应的乘累加计算;一个5位指数域、6位尾数域的12比特浮点数激活值,可以转换成两个整数-指数对,由两个灵活子阵列的计算单元配合完成相应的乘累加计算。
为了配合运算模块的动态可配置性,本发明还协同设计了解码模块和控制模块。解码模块可以将不同的数据格式统一转换成整数-指数对,并输入到灵活子阵列当中对应位置进行计算。具体的解码方式在预加载阶段由控制模块发送相应的控制指令确定。此外,控制模块在预加载阶段还需要向运算模块发送访存指令,在读入权重数据分块时,保证协同参与同一个激活值对应的乘累加运算的灵活子阵列运算单元,能够读入相同的权重值。
本发明的实施例具体包含以下步骤:
1)对于给定的基于Transformer的大语言模型,使用自适应量化算法进行混合精度量化。
1a)初始情况下,每个线性层的离群通道的判别阈值/>被设置为该层各通道基于校准语料文本数据采集的激活范围的标准差的3倍,离群通道的精度/> 被设置为 />。其余正常通道用4比特整数量化。
1b)迭代优化混合精度的存储开销 ,直到达到预期的存储开销/>。在每轮循环中,构建所有可能的混合精度量化配置集合 />,对各层尝试不同的离群通道判别阈值和精度选择,从中选取一个更优的配置。
1c)对于每种候选配置,评估其量化误差和存储开销/> ,从中选择相比原配置提升最大的。具体来说,提升幅度/> 。
上述过程的伪代码如下:
2)基于搜索到的混合精度量化配置,进行数据流优化。
2a)首先对单个线性层算子的激活张量进行数据编码对于给定数据分块大小和离群通道集合的张量,假设其输入张量已经采用例图1展示的分块间离群通道均衡的混合精度张量数据编码。其中,张量被切分为多个数据分块(例图1中,展示了一个2分块的例子);每个分块中,离群通道被放置在分块的最前面,正常通道被放置在离群通道之后。离群通道的每个数据采用高精度(8或12比特)表示,正常通道的每个数据采用低精度(4比特)表示。对于所有可能的数据编码方案,评估其映射到目标加速器上的执行效率,从中选择性能最好的数据编码方案。
2b)其次对算子图进行数据流优化,如图2所示。对于每个线性层,我们在算子图中插入显式的数据重排算子,并基于以下规则进行重排算子融合:(1)预重排前驱线性层权重张量;(2)预重排前驱层的主存写回地址,如图2中所示情形,这四个线性层对应的重排算子,与前驱的归一化层进行了算子融合,由于/>层具有相同的结构,它们共享同一种重排序方式;(3)利用逐元素算子和重排算子的可交换性,将重排算子与逐元素算子前驱层基于规则(1)和(2)融合,如图中/>所示情形,这两个线性层分别与矩阵乘和激活函数的前驱线性层,基于规则(1)进行了算子融合。
3)在计算系统上部署模型。加速器的框架如例图3所示,负责执行量化后的矩阵乘法,其整体工作方式按如下四阶段流水线进行:
3a)读片外存储:片上缓存从主存读入权重和输入激活张量的数据分块。
3b)预加载:权重从片上缓存预加载到运算模块中。控制模块向解码模块发送控制指令,调整解码模式。实施例中的解码单元的电路实现如例图4所示。解码模块由多个解码单元组成,包括4比特整型解码器、8比特浮点解码器和12比特解码器。一个解码单元对应两个灵活子阵列的运算单元,将读入的数据解码成两个整数-指数对。每个解码单元可以独立配置不同的解码模式,该模式由控制模块发送解码指令进行配置。每个解码单元支持以下三种解码模式:
i.读入1字节的数据,并使用4比特整型解码器解码出2个4比特整数,将指数位置0;
ii. 读入2字节的数据,使用8比特浮点解码器解码其中的2个8比特浮点数,得到两个整数-指数对。;
iii. 读入2字节的数据,使用12比特浮点解码器解码其中的1个12比特浮点数。解码出的两个整数-指数对共同参与该浮点数的乘累加运算;一个权重需要由两个灵活子阵列运算单元预加载,完成后续的计算。
3c)矩阵乘法:基于脉动阵列的运算模块进行矩阵乘法,输入从片上缓存和解码模块读入,中间结果在阵列中进行乘累加运算,输出结果进入累加模块,由累加模块累加到缓存的对应位置。其中,能效子阵列从片上缓存读入整数表示的激活值,灵活子阵列从解码模块读入整数-指数对表示的激活值。能效/灵活子阵列的计算单元实现如例图5所示。两种运算单元将输入激活中的整数部分和权重做乘法,灵活子阵列运算单元还会根据指数做移位操作,乘法的运算结果和部分和累加,传递给后续的运算单元。
3d)写片外存储:将输出数据分块从片上缓存写回主存。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的范围内,各种替换和修改都是可能的,包括但不限于:判别阈值的初始值设置,提升幅度/>的计算方式,单层数据流搜索方法,解码器支持的浮点精度等。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (8)
1.一种大语言模型软硬件协同量化加速计算方法,其特征是,采用以通道为粒度处理大语言模型中的离群值,将存在大量离群值的通道整体以高精度进行存储,通过自适应量化过程、编译优化过程和硬件实现过程,实现大语言模型软硬件协同推理加速;包括:
1)设计自适应量化算法,针对校准数据集语料文本数据,对大语言模型离群值显著的线性层进行混合精度量化,并使得混合精度量化引起的额外存储开销达到设定的目标存储开销;包括:
11)从校准数据集语料文本数据中随机抽取文本输入到大语言模型中进行推理计算,得到大语言模型各线性层中每个激活通道的激活值的幅度;
12)对于大语言模型的每个线性层,设定用于辨别离群通道的阈值,将幅度超过所设定阈值的激活通道分类为离群通道,将其他通道分类为正常通道;
13)对于大语言模型的每个线性层,设定离群通道和正常通道的数据精度;
14)基于全体线性层离群通道集合和离群通道精度,求出当前在计算系统主存上引起的额外存储开销;
15)若当前的额外存储开销与目标存储开销不同,则通过调整全体线性层的离群通道量化超参数,即调整离群通道辨别阈值和离群通道数据精度,从而达到目标存储开销,即当前的额外存储开销与目标存储开销相同;
2)大语言模型的线性层权重、输入激活和输出激活均以张量的格式存储,即线性层权重张量、线性层输入激活张量和线性层输出激活张量;大语言模型中各个层间输入输出依赖关系构成算子图;基于混合精度量化,对大语言模型的每个线性层的输入激活张量进行分块间离群通道均衡的混合精度张量数据编码,并对大语言模型的各层进行算子图级层间协同数据流优化,得到在计算系统上运行速度最快的执行方案;
进行数据编码包括:
21)将线性层权重张量、输入激活张量和输出激活张量拆分为多个包含相同通道数的数据分块,作为计算系统主存与加速器片上缓存的基本数据交互单位;
22)给定数据分块大小,在当前线性层计算开始前,预先对输入激活张量的通道维度进行重排,使得每个数据分块中具有相同数量的离群通道,且将所有离群通道都放置在数据块的起始部分;即输入激活张量数据分块包括离群输入激活通道子数据分块和正常输入激活通道子数据分块;从而得到输入激活张量通道维度重排方案;
23)给定输入激活张量通道维度重排方案,将线性层权重张量的输入通道维度,按照相同的顺序,在当前线性层计算开始前进行重排;
24)对所有的权重张量、输入激活张量和输出激活张量数据分块大小的组合进行评估,选择在目标计算系统上执行效率最高的数据分块大小组合方案,对各个张量进行分块,并确定激活张量通道维度重排顺序;
3)在计算系统上部署,进行模型推理计算;包括:
31)从计算系统的主存读入当前线性层权重和输入激活张量数据分块,存储到计算系统的片上缓存中;
32)将模型当前线性层的权重张量数据分块从片上缓存预加载到计算系统的运算模块;
33)将正常输入激活通道子数据分块从缓存加载到运算模块,将离群输入激活通道子数据分块从缓存加载到解码模块,由计算系统的解码模块将解码后的数据输入运算模块,进行矩阵乘法运算,将输出激活张量数据分块结果由累加单元累加到片上缓存的对应位置;
34)将输出激活张量数据分块从计算系统的片上缓存写回主存;
以上步骤按照流水线的方式依次执行,即实现大语言模型软硬件协同量化加速计算。
2.如权利要求1所述的大语言模型软硬件协同量化加速计算方法,其特征是,所述大语言模型为基于Transformer的大语言模型。
3.如权利要求1所述的大语言模型软硬件协同量化加速计算方法,其特征是,步骤1)中,在初始情况下,用于辨别离群通道的阈值设定为当前线性层各激活通道的幅度平均值加上3倍的幅度标准差;离群通道的激活值使用8位浮点数表示,正常通道的激活值使用4位整数表示。
4.如权利要求1所述的大语言模型软硬件协同量化加速计算方法,其特征是,步骤15)中,离群通道量化超参数调整方案包括:
16)对于每个线性层,按百分比增大或减小离群通道辨别阈值,并设置离群通道的数据精度;
17)各个线性层的离群通道量化超参数调整方案组合后构成模型级离群通道量化超参数调整方案空间;
18)对于每种离群通道量化超参数调整方案,评估各个线性层激活张量量化的均方误差,将量化误差最小的调整方案作为本轮调整的结果;
若调整后仍未达到目标存储开销,循环执行步骤16)~18)进行迭代优化,直到达到目标存储开销。
5.如权利要求1所述的大语言模型软硬件协同量化加速计算方法,其特征是,步骤1)中,所述自适应量化算法启发式地搜索量化误差小的混合量化配置,具体过程包括:
给定大语言模型各线性层中的通道数据范围统计结果 和在主存上用于存储高精度数据的目标存储开销/>,搜索出各层的离群通道集合和每层离群通道的精度/>;
对于层,通过比较每个通道的数据范围和阈值/>的大小确定离群通道集合/>;
基于全体层离群通道集合和离群通道精度/>,求出当前存储开销/>;
若当前存储开销与目标存储开销/>不一致,则调整全体层的阈值/>和离群通道精度/>;
不断迭代优化和/>,直到选取与目标存储开销相等且量化误差最小的调整方案。
6.如权利要求1所述的大语言模型软硬件协同量化加速计算方法,其特征是,步骤2)中对大语言模型的各层进行算子图级层间协同数据流优化,具体是对于每个线性层,在算子图中输入边上插入激活数据重排算子,并进行重排算子融合:包括:
241)将重排算子与前驱线性层融合,预重排前驱线性层权重张量的输出通道维度;
242)将重排算子与除重排算子类型之外的其他类型前驱算子融合,预重排前驱算子的输出激活写回主存的地址;
243)如果重排算子的前一层为逐元素算子,则将重排算子与前面的前面算子进行融合。
7.一种实现权利要求1所述的大语言模型软硬件协同量化加速计算方法的计算系统,其特征是,包括:运算模块、累加模块、解码模块、控制模块、片上缓存和主存;其中,
运算模块用于执行矩阵乘法运算;运算模块基于脉动阵列实现,包含能效子阵列和灵活子阵列;运算模块中的能效子阵列用于处理低精度激活,灵活子阵列用于处理高精度激活;两个子阵列按照输出激活的流动方向顺序连接;运算模块读取权重数据分块和激活数据分块,以进行矩阵乘法运算;其中,权重数据分块从片上缓存直接读入,能效子阵列的激活数据分块从片上缓存读入,灵活子阵列的激活数据分块从解码模块读入;运算模块将矩阵乘法的运算结果传递给累加模块;
累加模块用于读入运算模块提供的矩阵乘法运算结果,并将结果累加至片上缓存的对应位置;
解码模块用于从片上缓存读入不同精度和存储格式数据,解码成统一的数据格式,输入到运算模块;
控制模块用于向其他各个模块发送指令,以管理可重构加速器的计算流程;
片上缓存用于临时存储数据;片上缓存以分块为粒度,从可重构加速器的主存读入权重和输入激活,并向其写回矩阵乘法得到的输出激活;
主存用于存储系统中所有的数据,包括模型权重和中间激活。
8.如权利要求7所述的计算系统,其特征是,控制模块管理可重构加速器的计算流程包括:
对于运算模块,控制模块发送访存指令,决定从片上缓存读入运算模块的权重数据分块;对于解码模块,控制模块发送模式选择指令,决定对高精度数据的解码方式;
对于累加模块,控制模块发送访存指令,决定运算结果累加到片上缓存的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410058901.XA CN117574976B (zh) | 2024-01-16 | 2024-01-16 | 一种大语言模型软硬件协同量化加速计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410058901.XA CN117574976B (zh) | 2024-01-16 | 2024-01-16 | 一种大语言模型软硬件协同量化加速计算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117574976A CN117574976A (zh) | 2024-02-20 |
CN117574976B true CN117574976B (zh) | 2024-04-30 |
Family
ID=89862860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410058901.XA Active CN117574976B (zh) | 2024-01-16 | 2024-01-16 | 一种大语言模型软硬件协同量化加速计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117574976B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992578B (zh) * | 2024-04-02 | 2024-07-02 | 淘宝(中国)软件有限公司 | 基于大语言模型处理数据的方法、大语言模型及电子设备 |
CN118036661B (zh) * | 2024-04-11 | 2024-07-30 | 清华大学 | 大语言模型混合精度量化方法、装置、电子设备及介质 |
CN118035628B (zh) * | 2024-04-11 | 2024-06-11 | 清华大学 | 支持混合比特量化的矩阵向量乘算子实现方法及装置 |
CN118093143B (zh) * | 2024-04-12 | 2024-07-02 | 清华大学 | 大语言模型解码阶段的数据调度方法和装置 |
CN118333128B (zh) * | 2024-06-17 | 2024-08-16 | 时擎智能科技(上海)有限公司 | 一种大型语言模型的权重压缩处理系统及装置 |
CN118378005A (zh) * | 2024-06-19 | 2024-07-23 | 阿里云飞天(杭州)云计算技术有限公司 | 混合精度权重的处理方法、装置、设备及计算机程序产品 |
CN118485044B (zh) * | 2024-07-12 | 2024-09-20 | 星凡星启(成都)科技有限公司 | 一种大语言模型的低比特量化方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113298237A (zh) * | 2021-06-23 | 2021-08-24 | 东南大学 | 一种基于fpga的卷积神经网络片上训练加速器 |
CN114118406A (zh) * | 2021-10-28 | 2022-03-01 | 哈尔滨工业大学 | 一种卷积神经网络的量化压缩方法 |
CN114626516A (zh) * | 2022-03-24 | 2022-06-14 | 南京大学 | 一种基于对数块浮点量化的神经网络加速系统 |
CN114781632A (zh) * | 2022-05-20 | 2022-07-22 | 重庆科技学院 | 基于动态可重构脉动张量运算引擎的深度神经网络加速器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11676003B2 (en) * | 2018-12-18 | 2023-06-13 | Microsoft Technology Licensing, Llc | Training neural network accelerators using mixed precision data formats |
-
2024
- 2024-01-16 CN CN202410058901.XA patent/CN117574976B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113298237A (zh) * | 2021-06-23 | 2021-08-24 | 东南大学 | 一种基于fpga的卷积神经网络片上训练加速器 |
CN114118406A (zh) * | 2021-10-28 | 2022-03-01 | 哈尔滨工业大学 | 一种卷积神经网络的量化压缩方法 |
CN114626516A (zh) * | 2022-03-24 | 2022-06-14 | 南京大学 | 一种基于对数块浮点量化的神经网络加速系统 |
CN114781632A (zh) * | 2022-05-20 | 2022-07-22 | 重庆科技学院 | 基于动态可重构脉动张量运算引擎的深度神经网络加速器 |
Non-Patent Citations (1)
Title |
---|
"双曲正切非线性函数和加均值量化算法对BP神经网络图像压缩处理的影响";张丽峰 等;《工程图学学报》;20060228(第01期);第110-115页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117574976A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117574976B (zh) | 一种大语言模型软硬件协同量化加速计算方法及系统 | |
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
Gondimalla et al. | SparTen: A sparse tensor accelerator for convolutional neural networks | |
Sohoni et al. | Low-memory neural network training: A technical report | |
US11531469B2 (en) | Arrangements for storing more data in memory | |
US9563851B2 (en) | Programmable probability processing | |
CN108268283A (zh) | 用于利用约简操作来支持数据并行循环的计算引擎架构 | |
JP7372347B2 (ja) | データ圧縮方法およびコンピューティングデバイス | |
KR101629111B1 (ko) | 프로그래밍 가능한 특용 확률 프로세서 및 추론 태스크의 하드웨어 가속화된 연산들을 수행하기 위한 방법 | |
CN112329910B (zh) | 一种面向结构剪枝结合量化的深度卷积神经网络压缩方法 | |
Filgueira et al. | Adaptive-compi: Enhancing mpi-based applications’ performance and scalability by using adaptive compression | |
CN112598129A (zh) | 基于ReRAM神经网络加速器的可调硬件感知的剪枝和映射框架 | |
US8515882B2 (en) | Efficient storage of individuals for optimization simulation | |
Volf | Weighting techniques in data compression: Theory and algorithms | |
KR20230104037A (ko) | 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치 | |
Kim et al. | V-LSTM: An efficient LSTM accelerator using fixed nonzero-ratio viterbi-based pruning | |
CN113852443B (zh) | Scma系统中一种低复杂度多用户检测方法 | |
Kung et al. | Peregrine: A flexible hardware accelerator for LSTM with limited synaptic connection patterns | |
KR102657904B1 (ko) | 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치 | |
US11342933B2 (en) | Lossy significance compression with lossy restoration | |
Krishnan et al. | A universal parallel two-pass MDL context tree compression algorithm | |
Briffa | A GPU implementation of a MAP decoder for synchronization error correcting codes | |
Choi et al. | A deep neural network training architecture with inference-aware heterogeneous data-type | |
US12001237B2 (en) | Pattern-based cache block compression | |
US20240119254A1 (en) | Mapping neural networks to hardware |
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 |