CN117194056A - 大语言模型推理优化方法、装置、计算机设备及存储介质 - Google Patents

大语言模型推理优化方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN117194056A
CN117194056A CN202311472174.3A CN202311472174A CN117194056A CN 117194056 A CN117194056 A CN 117194056A CN 202311472174 A CN202311472174 A CN 202311472174A CN 117194056 A CN117194056 A CN 117194056A
Authority
CN
China
Prior art keywords
basic information
language model
information unit
value
large language
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
Application number
CN202311472174.3A
Other languages
English (en)
Other versions
CN117194056B (zh
Inventor
王鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311472174.3A priority Critical patent/CN117194056B/zh
Publication of CN117194056A publication Critical patent/CN117194056A/zh
Application granted granted Critical
Publication of CN117194056B publication Critical patent/CN117194056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Machine Translation (AREA)

Abstract

本申请涉及一种大语言模型推理优化方法、装置、计算机设备及存储介质,所属领域为深度学习技术领域,所述方法包括:基于深度学习机制构建大语言模型;将用户输入请求转化为基本信息单元,并输入至大语言模型;对基本信息单元进行预填充,得到基本信息单元对应的矩阵值;根据动态矩阵值缓存机制,确定基本信息单元对应的矩阵值的缓存结果;基于缓存结果,对至少一个基本信息单元进行推理解码,实现大语言模型的推理优化。本申请可以高效利用设备内存,避免设备的内存浪费,使用动态矩阵值缓存机制确定是否进行矩阵值的缓存,可以减少总的推理时间,避免内存超负荷,进一步提高计算设备的利用效率。

Description

大语言模型推理优化方法、装置、计算机设备及存储介质
技术领域
本申请涉及深度学习技术领域,特别是涉及一种大语言模型推理优化大语言模型推理优化方法、装置、计算机设备及存储介质。
背景技术
目前在使用LLM(大语言模型)做大模型推理时,使用的方案为:(1)将模型参数加载到GPU(显卡)显存,通过推理引擎把模型部署成推理服务;(2)部署推理服务时确定一个最大的并发数S,以及最长的序列长度L,按照这两个参数预先开辟显存空间,给用户的每条请求的每个token(基本的单元,用于表示文本或语音中的一个词或短语)来存储KV值;(3)用户请求到达时,可以在不超过最大并发数S的前提下合并请求,进行并发推理;(4)推理时先对用户的prompt(提示词)进行并行预填充,并行预填充要求把所有用户的请求padding(填充)到统一长度;(5)预填充结束后将prompt中的每个token的KV值存储到预先开辟的显存空间;(6)然后逐token进行推理的解码过程,每次解码一个token时,加载模型和KVcache(指在推理过程中把将产生的KV矩阵值缓存到计算设备或存储器中)到计算设备的core(计算核心),然后对于每个模型参数最多完成2*S次浮点运算后,完成当前token的解码过程,直至最后序列结束。
现有推理方案会按照并发数以及序列长度L预先开辟空间,用来存储KVcache,这部分空间是连续空间,一直到当前所有请求的序列完成推理后才会释放,另外并不是每一个用户请求都会产生最长序列长度L个token,很多序列预先开辟的cache空间都有浪费掉的,用户请求到达时需要KVcache和模型参数加载进入计算core,解码的计算过程开始,实际上模型加载模型参数的过程只有当前的token在做计算,而当KVcache很大时,加载KVcache也需要较长时间,这两部分时间无法进行重合。
因此,亟需提出一种能够提高设备利用效率、提高推理速度、避免内存超负荷的大语言模型推理优化方法、装置、计算机设备及存储介质。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高设备利用效率、提高推理速度、避免内存超负荷的大语言模型推理优化方法、装置、计算机设备及存储介质。
一方面,提供一种大语言模型推理优化方法,所述方法包括:基于深度学习机制构建大语言模型;响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
可选的,所述基于深度学习机制构建大语言模型包括:基于自注意力机制,构建初始大语言模型,所述大语言模型包括至少一个自注意力神经网络模块,所述自注意力神经网络模块至少包括多头注意力模型和前馈神经网络;对所述初始大语言模型进行训练;响应于检测到训练精度达到预设目标时,输出最终的大语言模型。
可选的,所述响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型包括:获取所述用户输入请求;基于分词器,将所述用户输入请求转化为所述基本信息单元,并确定所述基本信息单元的数量s;将所述基本信息单元输入至所述大语言模型。
可选的,所述基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值包括:基于输入层,将s个所述基本信息单元转化为第一嵌入向量,并确定所述第一嵌入向量的第一向量维度为s*h,其中,h表示单个基本信息单元的向量维度;对每个所述基本信息单元添加位置编码信息,得到第二嵌入向量;
将所述第二嵌入向量转化为第一目标向量,所述第一目标向量至少包括第一向量Q、第二向量K和第三向量V;将所述第一目标向量逐个经过目标个数的自注意力神经网络模块,得到所述基本信息单元对应的矩阵值。
可选的,所述将所述第一目标向量逐个经过目标个数的自注意力神经网络模块,得到所述基本信息单元对应的矩阵值包括:基于目标自注意力神经网络模块对所述第一目标向量进行处理包括,基于多头注意力模型,确定所述第一目标向量对应的第二目标向量;拼接多个所述第二目标向量,并将拼接结果进行一次线性映射,得到第一输出结果;基于归一化层和自相加层,确定所述第一输出结果对应的第二输出结果;基于前馈神经网络层,确定所述第二输出结果对应的第三输出结果;将所述第三输出结果逐个经过目标个数的自注意力神经网络模块,得到第四输出结果,即所述基本信息单元对应的矩阵值。
可选的,所述基于多头注意力模型,确定所述第一目标向量对应的第二目标向量包括:基于注意力头的个数a,确定每个注意力头所需处理的当前位置以及历史位置对应的第一目标向量的第二向量维度为h/a;基于所述第二向量维度,利用第一预设函数对当前位置以及历史位置对应的第一目标向量进行处理,所述第一预设函数包括:,其中,d K 表示单个基本信息单元的向量维度,T表示矩阵转置,Attention(Q,K,V)表示自注意力操作输出值,/>表示归一化函数,N表示当前序列长度;基于所述自注意力操作输出值,确定所述第一目标向量对应的第二目标向量。
可选的,所述拼接多个所述第二目标向量,并将拼接结果进行一次线性映射,得到第一输出结果包括:获取所有注意力头对应的第二目标向量,并进行拼接;利用第二预设函数对拼接结果进行一次线性映射,所述第二预设函数包括:
,其中,/>表示一次线性映射输出值,/>表示拼接函数,W 0 表示参数矩阵,/>表示第二目标向量;基于所述一次线性映射输出值,确定所述第一输出结果。
可选的,所述根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果包括:获取第一时间值和第二时间值;基于所述第一时间值和第二时间值,确定是否对所述基本信息单元对应的矩阵值进行缓存。
可选的,所述第一时间值为大语言模型对基本信息单元进行一次推理时间,所述第一时间值的获取方法包括:利用第三预设函数计算所述第一时间值,所述第三预设函数包括:,其中,T 1 表示第一时间值,E表示计算量,U表示理论峰值。
可选的,所述第二时间值为单个基本信息单元由存储器加载到计算核心的时间,所述第二时间值的获取方法包括:利用第四预设函数计算所述第二时间值,所述第四预设函数包括:,其中,T 2 表示第二时间值,D表示理论带宽,/>表示大语言模型层数。
可选的,所述基于所述第一时间值和第二时间值,确定是否对所述基本信息单元对应的矩阵值进行缓存包括:获取并发序列中总的基本信息单元个数N;基于所述第二时间值和所述基本信息单元个数N,计算确定第一数据值,所述第一数据值的计算公式包括Y=N ×T 2 ,其中,Y表示第一数据值;响应于检测到所述第一数据值大于或等于所述第一时间值时,对所述基本信息单元对应的矩阵值不进行缓存;响应于检测到所述第一数据值小于所述第一时间值时,对所述基本信息单元对应的矩阵值进行缓存,并基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数。
可选的,所述基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数包括:响应于检测到存储设备的存储空间小于第一预设值时,去除每条序列中个基本信息单元对应的矩阵值,其中,A=ceil{N-(T 1 /T 2 )/U}U表示序列个数,ceil{•}表示向上取整函数。
可选的,所述基于所述缓存结果,对至少一个所述基本信息单元进行推理解码包括:获取第四输出结果,将所述第四输出结果转化第三嵌入向量,并添加位置编码信息;将添加位置编码信息后的第三嵌入向量逐个经过目标个数的自注意力神经网络模块,得到第五输出结果;将所述第五输出结果映射为预设词表中每个基本信息单元的概率值,将概率值最大的基本信息单元作为当前序列的下一个输入值。
另一方面,提供了一种大语言模型推理优化装置,所述装置包括:模型构建模块,用于基于深度学习机制构建大语言模型;转化模块,用于在检测到用户输入请求时,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;预填充模块,用于基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;动态缓存模块,用于根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;推理解码模块,用于基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:基于深度学习机制构建大语言模型;响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:基于深度学习机制构建大语言模型;响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
上述大语言模型推理优化方法、装置、计算机设备及存储介质,所述方法包括:基于深度学习机制构建大语言模型;响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化,本申请通过精确的基本信息单元级别的矩阵值缓存管理,可以高效利用设备内存,避免设备的内存浪费,使用动态矩阵值缓存机制确定是否进行矩阵值的缓存,可以减少总的推理时间,避免内存超负荷,进一步提高计算设备的利用效率。
附图说明
图1为具体实施方式中的block结构示意图;
图2为具体实施方式中的大语言模型推理解码过程示意图;
图3为一个实施例中大语言模型推理优化方法的应用环境图;
图4为一个实施例中大语言模型推理优化步骤的流程示意图;
图5为一个实施例中大语言模型推理优化方法的transformer结构示意图;
图6为一个实施例中大语言模型推理优化装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,在本申请的描述中,除非上下文明确要求,否则整个说明书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
还应当理解,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
需要注意的是,术语“S1”、“S2”等仅用于步骤的描述目的,并非特别指称次序或顺位的意思,亦非用以限定本申请,其仅仅是为了方便描述本申请的方法,而不能理解为指示步骤的先后顺序。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
大语言模型(LLM)是当今人工智能技术的热点,当前的语言大模型是指参数量超过百亿甚至千亿,以transformer(自注意力神经网络)结构为主的大模型,近期被我们熟悉的chatGPT(ChatGenerativePre-trainedTransforme,人工智能技术驱动的自然语言处理工具)属于LLM的范畴,LLM(chatGPT)的出现和使用有非常重要的意义,LLM预训练、微调、推理及部署是应用到生产环境的必要步骤。
LLM模型结构是由多个transformerblocks(自注意力神经网络模块)组成,每一个block包含MHA(Maskedmulti-head-attention,多头注意力)和FFN(feed-forward,前馈神经网络),其结构如图1所示,MHA和FFN之前或者之后会有一个LN(layerNormalization,层规范化)和一个跳跃连接(residualconnection),LLM推理的计算过程主要就是多次重复block中的子单元操作,为方便表述,transformerblock层组成的一些参数表示做如下说明,hidden-size维度为h,注意力头个数为a,序列长度为s,transformer层数为l,词表长度为V,推理所使用的批大小为b。
在实际的LLM推理时包含两个步骤:预填充和解码。预填充是指模型接受来自用户的输入作为生成内容前的prompt(预训练),该部分处理可以并行计算,通过添加mask(掩码),可以确保当前token(基本信息单元)只关注历史数据;解码是指一条序列生成当前token的过程,解码过程需要逐token计算无法进行单序列上的并行执行,因此如果只有单条样本做推理时其计算密度(计算FLOPS(每秒浮点运算次数)/数据模型加载传输)在解码时会很低,约为2,意味着每个参数在搬入计算核心后只进行两次浮点计算,便完成使用,然后卸载到内存。
LLM推理的解码过程的计算量和计算流程(MHA和FFN)参见图2,在MHA中,计算当前token的QKV的计算量为6*l*h2,Q*KT的计算量和当前序列长度s相关为2*l*s*h,上步骤得到的score与V加权的计算量也与当前序列长度s相关为2*l*s*h,线性映射的计算量为2*l*h2;MLP中计算当前token的计算量为16*l*h2,则每个block中的当前token计算量为24*l*h2+4*l*s*h,总的LLM计算量为l*(24*l*h2+4*l*s*h),transformer模型总的参数量约为l*(12h2+13h)+V*h,忽略掉h的一次方项,则每个token前向推理的计算量约为参数的2倍。
上述LLM推理的解码过程,在进行计算量评估时做了一个非常重要的假设就是KV(矩阵值)做了缓存即(KVcache),KV的尺寸在s长度的序列中为l*s*h,Q的尺寸为l*l*h,每次计算attention(注意力头)得分矩阵以及与V点乘时都需要s-l序列KV的值,但在上述的计算中,只计算了当前token位置的KV计算量,如果不缓存KV则每一次推理时都需要重新计算一遍,如果序列总长度为s则相对于KVcache的方案增加的计算量约为4*l*h2*(l+s-l)*(s-l)/2=2*h2*s2(l-l/s)。
对于LLM推理中的内存占用分析如下,假设输入序列的长度为sl,输出序列的长度为nl,KVcache峰值显存占用大小为l*(sl+nl)h∗l∗2∗2=4*l*l*h∗(sl+nl),这里第一个2表示K/Vcache,第二个2表示float16占2个bytes,LLM的模型参数量约为l*(l2h2+l3h)+V*h,当序列长度较长或batchsize(批量大小)增加时KVcache将需要更多的内存占用。
结合背景技术可知,现有技术存在以下问题:(1)当模型尺寸很大或者并发请求较多时,KVcache的空间占用问题;(2)计算设备带宽限制,模型参数和KVcache加载到设备的时间占用较长的问题。
为解决上述技术问题,本申请提供了大语言模型推理优化方法、装置、计算机设备和存储介质,基于动态KVcache机制,在序列长度较短、并发数量相对较少时选择使用基于token的cache方法,用存储换取计算,当序列长度较长、并发数量相对较大时使用tokencacheabandon的方案,用计算换取带宽,从而提高设备利用效率、提高推理速度、避免内存超负荷。
本申请提供的大语言模型推理优化方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与设置于服务器104上的数据处理平台进行通信,其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
实施例1:在一个实施例中,如图4所示,提供了一种大语言模型推理优化方法,以该方法应用于图3中的终端为例进行说明,包括以下步骤:S1:基于深度学习机制构建大语言模型。
需要说明的是,大语言模型指的是LLM,是以transformer(深度神经网络结构)架构为代表的大语言模型。
基于自注意力机制,构建初始大语言模型,所述大语言模型包括至少一个自注意力神经网络模块,所述自注意力神经网络模块至少包括多头注意力模型和前馈神经网络,还可以包括归一化层、自相加层等;对所述初始大语言模型进行训练;响应于检测到训练精度达到预设目标时,输出最终的大语言模型,其中,预设目标即为训练精度达到预设值,该预设值可以根据实际需求设定;具体的,如图5所示,为transformer结构,文本信息(即用户请求信息)输入到encoder(编码)结构,最终得到每一个token(基本信息单元)的嵌入向量,文本信息即一系列token的初始嵌入向量,encoder结构包含多层transformerblock(自注意力神经网络层),每一个transformerblock包含一个多头注意力(MHA)和前馈神经网络(FFN)。Encoder结构将得到的嵌入向量传入到decoder(解码)结构,decoder目标是根据输入的嵌入向量和初始token,逐个生成下一个token,Decoder结构包含多层transformerblock,每一个transformerblock包含一个Masked多头注意力(MHA)和前馈神经网络(FFN)以及cross–attention(交叉注意)来整和嵌入向量信息。
当前的LLM以transformerdecoder结构为主体,在transformerblock中去掉其中的cross-attention,仅保留一个Masked多头注意力(MHA)和前馈神经网络(FFN),然后堆叠多层transformerblock使用语言模型的建模目标,训练得到一个transformer结构的LLM,其中,使用语言建模目标训练得到一个LLM为常用手段,在此不再赘述。
在上述实施方式中,通过构建大语言模型,以对后续用户输入请求进行处理。
S2:响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型。
需要说明的是,用户输入请求指的是文本信息,如输入一段话,基本信息单元指的是token,在计算机身份认证中为令牌(临时),在词法分析中为标记。
具体的,获取所述用户输入请求;基于分词器(tokenizer),将所述用户输入请求转化为所述基本信息单元token,并确定所述基本信息单元的数量s;将所述基本信息单元输入至所述大语言模型。
在上述实施方式中,基于tokenizer可以将文本信息转换成独立的token列表,进而转换成输入的向量成为计算机可以理解的输入形式,以确保对用户输入请求进行后续的推理。
S3:基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值。
需要说明的是,基本信息单元对应的矩阵值即为KV值。
具体的,基于大语言模型得输入层,将s个所述基本信息单元转化为第一嵌入向量(即第一embedding),并确定所述第一嵌入向量的第一向量维度为s*h,其中,h表示单个基本信息单元的向量维度,即一个token的向量维度,第一向量维度指的是由多个token组成的序列的向量维度;对每个所述基本信息单元添加位置编码信息,得到第二嵌入向量(即第二embedding),此时,向量维度不变,为h,第二嵌入向量即为单个token对应的向量;通过大语言模型基本参数,可以将所述第二嵌入向量转化为第一目标向量,所述第一目标向量至少包括三个向量,分别为第一向量Q、第二向量K和第三向量V,此时,向量维度依然为h,整个序列的维度为s*h;将所述第一目标向量逐个经过目标个数的自注意力神经网络模块,得到所述基本信息单元对应的矩阵值,其中,自注意力神经网络模块即为transformerblock,每层transformerblock里包含多个注意力模型(attention),即多个注意力头。具体的:基于目标自注意力神经网络模块对所述第一目标向量进行处理,其中,此处的目标自注意力神经网络模块即为第一个transformerblock,包括:基于多头注意力模型,确定所述第一目标向量对应的第二目标向量。具体的:根据注意力头的个数a,确定每个注意力头所需处理的当前位置以及历史位置对应的第一目标向量的第二向量维度为h/a,即每一个attention在处理token对应的向量时,会处理当前位置token和历史位置token的(h/a)维度的第一目标向量;基于所述第二向量维度,利用第一预设函数对当前位置以及历史位置对应的第一目标向量进行处理,所述第一预设函数包括:
,其中,d K 表示单个基本信息单元的向量维度,T表示矩阵转置,Attention(Q,K,V)表示自注意力操作输出值,表示归一化函数,N表示当前序列长度,其中,通过加入当前序列长度这个维度可以提高推理精度;基于所述自注意力操作输出值,确定所述第一目标向量对应的第二目标向量,第二目标向量即为Attention(Q,K,V);上述公式处理可获得单个attention头对应的第二目标向量,其向量维度为s*(h/a),将多个attention头处理得到的多个所述第二目标向量进行拼接,并将拼接结果进行一次线性映射,得到第一输出结果,包括:获取所有注意力头对应的第二目标向量,并进行拼接;利用第二预设函数对拼接结果进行一次线性映射,所述第二预设函数包括:/>,其中,/>表示一次线性映射输出值,/>表示拼接函数,W 0 表示参数矩阵,/>表示第二目标向量,即为每个注意力头对应的输出向量;基于所述一次线性映射输出值,确定所述第一输出结果,第一输出结果的向量维度为s*h,其中,在进行softmax时,会对QK T 的结果进行mask(掩码),防止当前位置的token能够看到未来位置的token。
将第一输出结果输入至第一个自注意力神经网络模块中的归一化层(layernorm)和自相加层(residualconnection),得到新的输出,即为所述第一输出结果对应的第二输出结果,其向量维度仍为s*h;进一步的,将第二输出结果输入至第一个自注意力神经网络模块中的前馈神经网络层(FFN层),FFN层先用一个MLP(多层感知机)把每个第二输出结果的h向量维度变换到4*h,然后再用一个MLP把4h变换回h,最终得到的输出维度仍为s*h,该输出即为所述第二输出结果对应的第三输出结果;再将所述第三输出结果逐个输入至目标个数L的自注意力神经网络模块,即将token逐层经过L层transfomerblock,每一层的处理方法与上述过程相同,在此不再赘述,最后可以预测得到第四输出结果,即所述基本信息单元对应的矩阵值,即token的KV值,其中,每一层的block中都会生成2*s*h(KV的向量维度之和)的缓存向量,避免推理的解码阶段再次计算这些KV值。
在上述实施方式中,利用大语言模型预测token的KV值,用于后续基于动态矩阵值缓存机制确定是否进行缓存,以完成推理解码,提高推理效率,避免内存超负荷。
S4:根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果。
需要说明的是,动态矩阵值缓存机制为KVcache机制,KVcache指的是将每个token产生KV值并保存的过程,本申请中不会依据KVcache的峰值,预先开辟显存;而是将KVcache的粒度从之前的整条序列变为每个token,即每个token所占用的空间作为一个开辟单位,即L*h*4,这样就能避免由KVcache提前开辟的空间浪费问题,另外,LLM推理时,如果遇到长序列或者多并发,即使使用token级别的KVcache,仍然面临cache占用空间特别大的问题,因此,本申请采用一种动态KVcache机制来解决此问题。
具体的,获取第一时间值和第二时间值,其中,所述第一时间值为大语言模型对基本信息单元进行一次推理时间,即每一个token解码生成的时间,所述第二时间值为单个基本信息单元由存储器加载到计算核心的时间,所述第一时间值的获取方法包括:
利用第三预设函数计算所述第一时间值,所述第三预设函数包括:,其中,T 1 表示第一时间值,E表示计算量,U表示理论峰值,其中,计算量指的是基于大语言模型参数推算出的处理一个token所需的浮点计算量,约为4倍参数量,理论峰值即为计算核心对应的浮点数峰值性能理论值;所述第二时间值的获取方法包括:利用第四预设函数计算所述第二时间值,所述第四预设函数包括:/>,其中,表示第二时间值,D表示理论带宽,/>表示大语言模型层数,其中,理论带宽即为token传输通道对应的带宽理论值;基于所述第一时间值和第二时间值,确定是否对所述基本信息单元对应的矩阵值进行缓存,包括:获取并发序列中总的基本信息单元个数N,即总的序列数和序列长度的乘积为;基于所述第二时间值和所述基本信息单元个数N,计算确定第一数据值,所述第一数据值的计算公式包括Y=N×T 2 ,其中,Y表示第一数据值;响应于检测到所述第一数据值大于或等于所述第一时间值时,对所述基本信息单元对应的矩阵值不进行缓存,即后续解码过程中可以直接加载KV值,无需从存储器中进行加载,当推理解码需要前A个tokenKV时,在加载剩余KVcache的同时,并行的处理每一条序列前A个tokenKV并得到当前cache,用于推理;响应于检测到所述第一数据值小于所述第一时间值时,对所述基本信息单元对应的矩阵值进行缓存,所缓存的存储器可以是显存等,并基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数,以用于后续从预存于显存中的tokenKV;其中,基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数包括:响应于检测到存储设备的存储空间小于第一预设值时,去除每条序列中A个基本信息单元对应的矩阵值,其中,第一预设值可以根据需求进行设置,A个基本信息单元对应的矩阵值可以是每一条序列前A个token对应的矩阵值,也可以是每一条序列后A个token对应的矩阵值,其中,A=ceil{N-(T 1 / T 2 )/U}U表示序列个数,ceil{•}表示向上取整函数。
在上述实施方式中,基于动态矩阵值缓存机制,可以按照带宽加载时间和KV值生成时间来比较,然后确定是否需要对tokenKV进行缓存,进一步的,还可以使用计算设备内存感知策略,当设备显存不充足时,确定去除序列之前的tokenKV的数量,另外对于丢弃的KVcache,也可以选择每条序列最后的A个tokenKV,这样就可以和将要新生成的tokenKV并行完成推理解码,在推理解码阶段,可以灵活地选择是由token计算得到KV值,还是从预先存储到显存的tokenKVcache里加载到得到,从而避免设备的内存浪费及内存超负荷,进一步提高推理效率。
S5:基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
需要说明的是,该步骤具体包括:获取第四输出结果,将所述第四输出结果转化第三嵌入向量,并添加位置编码信息;将添加位置编码信息后的第三嵌入向量逐个经过目标个数的自注意力神经网络模块,得到第五输出结果;将所述第五输出结果映射为预设词表中每个基本信息单元的概率值,将概率值最大的基本信息单元作为当前序列的下一个输入值。
具体的,基于预填充获得的token的KV值,将当前位置token变为嵌入向量(embedding),即第三嵌入向量,并再添加位置编码后送入到trasformerblock,在trasformerblock中的处理过程和预填充是一样的,在此不再赘述,但是在处理过程中,Q的维度由原来的s变为1,则对应的每一个transformerblock得到的输出向量维度变为1*h,进一步的,当前位置的token在每一层transformerblock中也会产生KV向量,这些KV向量仍然会保存下来,以供后面的token生成来使用,最后一层trasformerblock产生的h向量将映射为词表中每个token的概率值,选取概率值最大的作为当前序列的下一个token。
上述大语言模型推理优化方法中,所述方法包括:基于深度学习机制构建大语言模型;响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化,本申请基于上述方法对应的有益效果具体为:
(1)通过使用该申请可以避免设备的内存浪费,通过精确的token级别的KVcache管理,更加有助于高效利用设备内存。
(2)该申请可以提高推理效率,使用动态矩阵值缓存机制可以决定是否进行KV的缓存,其一个重要准则就是计算换传输IO,当计算时间小于KVcache的传输时间时则去除一部分toekn的KVcache,使用该机制可以减少总的推理时间,以提高推理效率。
(3)该申请可以避免内存超负荷,使用动态矩阵值缓存机制的另一个判别调度的重要准则就是计算换取存储,当内存不足以支撑推理做KVcache时,直接把token产生的cache丢弃,正常完成推理解码。
(4)该申请可以提高计算设备的利用效率,使用动态矩阵值缓存机制,可以利用计算设备的浮点运算能力换取KVcache的带宽IO,降低推理延迟,在这个过程中计算设备的浮点运算能力得到有效发挥,从而进一步提高计算设备的利用效率。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例2:在一个实施例中,如图6所示,提供了一种大语言模型推理优化装置,包括:模型构建模块、转化模块、预填充模块、动态缓存模块和推理解码模块,其中:模型构建模块,用于基于深度学习机制构建大语言模型;转化模块,用于在检测到用户输入请求时,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;预填充模块,用于基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;动态缓存模块,用于根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;推理解码模块,用于基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
作为一种较优的实施方式,本发明实施例中,所述模型构建模块具体用于:基于自注意力机制,构建初始大语言模型,所述大语言模型包括至少一个自注意力神经网络模块,所述自注意力神经网络模块至少包括多头注意力模型和前馈神经网络;对所述初始大语言模型进行训练;响应于检测到训练精度达到预设目标时,输出最终的大语言模型。
作为一种较优的实施方式,本发明实施例中,所述转化模块具体用于:获取所述用户输入请求;基于分词器,将所述用户输入请求转化为所述基本信息单元,并确定所述基本信息单元的数量s;将所述基本信息单元输入至所述大语言模型。
作为一种较优的实施方式,本发明实施例中,所述预填充模块具体用于:基于输入层,将s个所述基本信息单元转化为第一嵌入向量,并确定所述第一嵌入向量的第一向量维度为s*h,其中,h表示单个基本信息单元的向量维度;对每个所述基本信息单元添加位置编码信息,得到第二嵌入向量;将所述第二嵌入向量转化为第一目标向量,所述第一目标向量至少包括第一向量Q、第二向量K和第三向量V;将所述第一目标向量逐个经过目标个数的自注意力神经网络模块,得到所述基本信息单元对应的矩阵值。
作为一种较优的实施方式,本发明实施例中,所述预填充模块具体还用于:基于目标自注意力神经网络模块对所述第一目标向量进行处理包括:基于多头注意力模型,确定所述第一目标向量对应的第二目标向量;拼接多个所述第二目标向量,并将拼接结果进行一次线性映射,得到第一输出结果;基于归一化层和自相加层,确定所述第一输出结果对应的第二输出结果;基于前馈神经网络层,确定所述第二输出结果对应的第三输出结果;将所述第三输出结果逐个经过目标个数的自注意力神经网络模块,得到第四输出结果,即所述基本信息单元对应的矩阵值。
作为一种较优的实施方式,本发明实施例中,所述预填充模块具体还用于:基于注意力头的个数a,确定每个注意力头所需处理的当前位置以及历史位置对应的第一目标向量的第二向量维度为h/a;基于所述第二向量维度,利用第一预设函数对当前位置以及历史位置对应的第一目标向量进行处理,所述第一预设函数包括:
,其中,d K 表示单个基本信息单元的向量维度,T表示矩阵转置,Attention(Q,K,V)表示自注意力操作输出值,表示归一化函数,N表示当前序列长度;基于所述自注意力操作输出值,确定所述第一目标向量对应的第二目标向量。
作为一种较优的实施方式,本发明实施例中,所述预填充模块具体还用于:获取所有注意力头对应的第二目标向量,并进行拼接;利用第二预设函数对拼接结果进行一次线性映射,所述第二预设函数包括:,其中,/>表示一次线性映射输出值,/>表示拼接函数,W 0 表示参数矩阵,/>表示第二目标向量;基于所述一次线性映射输出值,确定所述第一输出结果。
作为一种较优的实施方式,本发明实施例中,所述动态缓存模块具体用于:获取第一时间值和第二时间值;基于所述第一时间值和第二时间值,确定是否对所述基本信息单元对应的矩阵值进行缓存。
作为一种较优的实施方式,本发明实施例中,所述动态缓存模块具体还用于:所述第一时间值为大语言模型对基本信息单元进行一次推理时间,所述第一时间值的获取方法包括:利用第三预设函数计算所述第一时间值,所述第三预设函数包括:,其中,T 1 表示第一时间值,E表示计算量,U表示理论峰值。
作为一种较优的实施方式,本发明实施例中,所述动态缓存模块具体还用于:所述第二时间值为单个基本信息单元由存储器加载到计算核心的时间,所述第二时间值的获取方法包括:利用第四预设函数计算所述第二时间值,所述第四预设函数包括:,其中,表示第二时间值,D表示理论带宽,/>表示大语言模型层数。
作为一种较优的实施方式,本发明实施例中,所述动态缓存模块具体还用于:获取并发序列中总的基本信息单元个数;基于所述第二时间值和所述基本信息单元个数,计算确定第一数据值,所述第一数据值的计算公式包括Y=N×T 2 ,其中,Y表示第一数据值;响应于检测到所述第一数据值大于或等于所述第一时间值时,对所述基本信息单元对应的矩阵值不进行缓存;响应于检测到所述第一数据值小于所述第一时间值时,对所述基本信息单元对应的矩阵值进行缓存,并基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数。
作为一种较优的实施方式,本发明实施例中,所述动态缓存模块具体还用于:响应于检测到存储设备的存储空间小于第一预设值时,去除每条序列中A个基本信息单元对应的矩阵值,其中,A=ceil{N-(T 1 /T 2 )/U}U表示序列个数,ceil{•}表示向上取整函数。
作为一种较优的实施方式,本发明实施例中,所述推理解码模块具体用于:获取第四输出结果,将所述第四输出结果转化第三嵌入向量,并添加位置编码信息;将添加位置编码信息后的第三嵌入向量逐个经过目标个数的自注意力神经网络模块,得到第五输出结果;将所述第五输出结果映射为预设词表中每个基本信息单元的概率值,将概率值最大的基本信息单元作为当前序列的下一个输入值。
关于大语言模型推理优化装置的具体限定可以参见上文中对于大语言模型推理优化方法的限定,在此不再赘述。上述大语言模型推理优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
实施例3:在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种大语言模型推理优化方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:S1:基于深度学习机制构建大语言模型;S2:响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;S3:基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;S4:根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;S5:基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于自注意力机制,构建初始大语言模型,所述大语言模型包括至少一个自注意力神经网络模块,所述自注意力神经网络模块至少包括多头注意力模型和前馈神经网络;对所述初始大语言模型进行训练;响应于检测到训练精度达到预设目标时,输出最终的大语言模型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所述用户输入请求;基于分词器,将所述用户输入请求转化为所述基本信息单元,并确定所述基本信息单元的数量s;将所述基本信息单元输入至所述大语言模型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于输入层,将s个所述基本信息单元转化为第一嵌入向量,并确定所述第一嵌入向量的第一向量维度为s*h,其中,h表示单个基本信息单元的向量维度;对每个所述基本信息单元添加位置编码信息,得到第二嵌入向量;将所述第二嵌入向量转化为第一目标向量,所述第一目标向量至少包括第一向量Q、第二向量K和第三向量V;将所述第一目标向量逐个经过目标个数的自注意力神经网络模块,得到所述基本信息单元对应的矩阵值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于目标自注意力神经网络模块对所述第一目标向量进行处理包括:基于多头注意力模型,确定所述第一目标向量对应的第二目标向量;拼接多个所述第二目标向量,并将拼接结果进行一次线性映射,得到第一输出结果;基于归一化层和自相加层,确定所述第一输出结果对应的第二输出结果;基于前馈神经网络层,确定所述第二输出结果对应的第三输出结果;将所述第三输出结果逐个经过目标个数的自注意力神经网络模块,得到第四输出结果,即所述基本信息单元对应的矩阵值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于注意力头的个数a,确定每个注意力头所需处理的当前位置以及历史位置对应的第一目标向量的第二向量维度为h/a;基于所述第二向量维度,利用第一预设函数对当前位置以及历史位置对应的第一目标向量进行处理,所述第一预设函数包括:
,其中,d K 表示单个基本信息单元的向量维度,T表示矩阵转置,Attention(Q,K,V)表示自注意力操作输出值,表示归一化函数,N表示当前序列长度;基于所述自注意力操作输出值,确定所述第一目标向量对应的第二目标向量。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所有注意力头对应的第二目标向量,并进行拼接;利用第二预设函数对拼接结果进行一次线性映射,所述第二预设函数包括:,其中,表示一次线性映射输出值,/>表示拼接函数,W 0 表示参数矩阵,/>表示第二目标向量;基于所述一次线性映射输出值,确定所述第一输出结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第一时间值和第二时间值;基于所述第一时间值和第二时间值,确定是否对所述基本信息单元对应的矩阵值进行缓存。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述第一时间值为大语言模型对基本信息单元进行一次推理时间,所述第一时间值的获取方法包括:利用第三预设函数计算所述第一时间值,所述第三预设函数包括:,其中,T 1 表示第一时间值,E表示计算量,U表示理论峰值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述第二时间值为单个基本信息单元由存储器加载到计算核心的时间,所述第二时间值的获取方法包括:利用第四预设函数计算所述第二时间值,所述第四预设函数包括:,其中,表示第二时间值,D表示理论带宽,/>表示大语言模型层数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取并发序列中总的基本信息单元个数N;基于所述第二时间值和所述基本信息单元个数N,计算确定第一数据值,所述第一数据值的计算公式包括Y=N×T 2 ,其中,Y表示第一数据值;响应于检测到所述第一数据值大于或等于所述第一时间值时,对所述基本信息单元对应的矩阵值不进行缓存;响应于检测到所述第一数据值小于所述第一时间值时,对所述基本信息单元对应的矩阵值进行缓存,并基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:响应于检测到存储设备的存储空间小于第一预设值时,去除每条序列中A个基本信息单元对应的矩阵值,其中,A=ceil{N-(T 1 /T 2 )/U}U表示序列个数,ceil{•}表示向上取整函数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第四输出结果,将所述第四输出结果转化第三嵌入向量,并添加位置编码信息;将添加位置编码信息后的第三嵌入向量逐个经过目标个数的自注意力神经网络模块,得到第五输出结果;将所述第五输出结果映射为预设词表中每个基本信息单元的概率值,将概率值最大的基本信息单元作为当前序列的下一个输入值。
实施例4:在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:S1:基于深度学习机制构建大语言模型;S2:响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;S3:基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;S4:根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;S5:基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于自注意力机制,构建初始大语言模型,所述大语言模型包括至少一个自注意力神经网络模块,所述自注意力神经网络模块至少包括多头注意力模型和前馈神经网络;对所述初始大语言模型进行训练;响应于检测到训练精度达到预设目标时,输出最终的大语言模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所述用户输入请求;基于分词器,将所述用户输入请求转化为所述基本信息单元,并确定所述基本信息单元的数量s;将所述基本信息单元输入至所述大语言模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于输入层,将s个所述基本信息单元转化为第一嵌入向量,并确定所述第一嵌入向量的第一向量维度为s*h,其中,h表示单个基本信息单元的向量维度;对每个所述基本信息单元添加位置编码信息,得到第二嵌入向量;将所述第二嵌入向量转化为第一目标向量,所述第一目标向量至少包括第一向量Q、第二向量K和第三向量V;将所述第一目标向量逐个经过目标个数的自注意力神经网络模块,得到所述基本信息单元对应的矩阵值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于目标自注意力神经网络模块对所述第一目标向量进行处理包括:基于多头注意力模型,确定所述第一目标向量对应的第二目标向量;拼接多个所述第二目标向量,并将拼接结果进行一次线性映射,得到第一输出结果;基于归一化层和自相加层,确定所述第一输出结果对应的第二输出结果;基于前馈神经网络层,确定所述第二输出结果对应的第三输出结果;将所述第三输出结果逐个经过目标个数的自注意力神经网络模块,得到第四输出结果,即所述基本信息单元对应的矩阵值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于注意力头的个数a,确定每个注意力头所需处理的当前位置以及历史位置对应的第一目标向量的第二向量维度为h/a;基于所述第二向量维度,利用第一预设函数对当前位置以及历史位置对应的第一目标向量进行处理,所述第一预设函数包括:
,其中,d K 表示单个基本信息单元的向量维度,T表示矩阵转置,Attention(Q,K,V)表示自注意力操作输出值,表示归一化函数,N表示当前序列长度;基于所述自注意力操作输出值,确定所述第一目标向量对应的第二目标向量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所有注意力头对应的第二目标向量,并进行拼接;利用第二预设函数对拼接结果进行一次线性映射,所述第二预设函数包括:,其中,/>表示一次线性映射输出值,/>表示拼接函数,W 0 表示参数矩阵,/>表示第二目标向量;基于所述一次线性映射输出值,确定所述第一输出结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取第一时间值和第二时间值;基于所述第一时间值和第二时间值,确定是否对所述基本信息单元对应的矩阵值进行缓存。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述第一时间值为大语言模型对基本信息单元进行一次推理时间,所述第一时间值的获取方法包括:利用第三预设函数计算所述第一时间值,所述第三预设函数包括:,其中,T 1 表示第一时间值,E表示计算量,U表示理论峰值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述第二时间值为单个基本信息单元由存储器加载到计算核心的时间,所述第二时间值的获取方法包括:利用第四预设函数计算所述第二时间值,所述第四预设函数包括:,其中,表示第二时间值,D表示理论带宽,/>表示大语言模型层数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取并发序列中总的基本信息单元个数N;基于所述第二时间值和所述基本信息单元个数N,计算确定第一数据值,所述第一数据值的计算公式包括Y=N×T 2 ,其中,Y表示第一数据值;
响应于检测到所述第一数据值大于或等于所述第一时间值时,对所述基本信息单元对应的矩阵值不进行缓存;响应于检测到所述第一数据值小于所述第一时间值时,对所述基本信息单元对应的矩阵值进行缓存,并基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:响应于检测到存储设备的存储空间小于第一预设值时,去除每条序列中A个基本信息单元对应的矩阵值,其中,A=ceil{N-(T 1 /T 2 )/U}U表示序列个数,ceil{•}表示向上取整函数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取第四输出结果,将所述第四输出结果转化第三嵌入向量,并添加位置编码信息;将添加位置编码信息后的第三嵌入向量逐个经过目标个数的自注意力神经网络模块,得到第五输出结果;将所述第五输出结果映射为预设词表中每个基本信息单元的概率值,将概率值最大的基本信息单元作为当前序列的下一个输入值。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。

Claims (16)

1.一种大语言模型推理优化方法,其特征在于,所述方法包括:
基于深度学习机制构建大语言模型;
响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;
基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;
根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;
基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
2.根据权利要求1所述的大语言模型推理优化方法,其特征在于,所述基于深度学习机制构建大语言模型包括:
基于自注意力机制,构建初始大语言模型,所述大语言模型包括至少一个自注意力神经网络模块,所述自注意力神经网络模块至少包括多头注意力模型和前馈神经网络;
对所述初始大语言模型进行训练;
响应于检测到训练精度达到预设目标时,输出最终的大语言模型。
3.根据权利要求1所述的大语言模型推理优化方法,其特征在于,所述响应于检测到用户输入请求,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型包括:
获取所述用户输入请求;
基于分词器,将所述用户输入请求转化为所述基本信息单元,并确定所述基本信息单元的数量s;
将所述基本信息单元输入至所述大语言模型。
4.根据权利要求1所述的大语言模型推理优化方法,其特征在于,所述基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值包括:
基于输入层,将s个所述基本信息单元转化为第一嵌入向量,并确定所述第一嵌入向量的第一向量维度为s*h,其中,h表示单个基本信息单元的向量维度;
对每个所述基本信息单元添加位置编码信息,得到第二嵌入向量;
将所述第二嵌入向量转化为第一目标向量,所述第一目标向量至少包括第一向量Q、第二向量K和第三向量V;
将所述第一目标向量逐个经过目标个数的自注意力神经网络模块,得到所述基本信息单元对应的矩阵值。
5.根据权利要求4所述的大语言模型推理优化方法,其特征在于,所述将所述第一目标向量逐个经过目标个数的自注意力神经网络模块,得到所述基本信息单元对应的矩阵值包括:
基于目标自注意力神经网络模块对所述第一目标向量进行处理包括:
基于多头注意力模型,确定所述第一目标向量对应的第二目标向量;
拼接多个所述第二目标向量,并将拼接结果进行一次线性映射,得到第一输出结果;
基于归一化层和自相加层,确定所述第一输出结果对应的第二输出结果;
基于前馈神经网络层,确定所述第二输出结果对应的第三输出结果;
将所述第三输出结果逐个经过目标个数的自注意力神经网络模块,得到第四输出结果,即所述基本信息单元对应的矩阵值。
6.根据权利要求5所述的大语言模型推理优化方法,其特征在于,所述基于多头注意力模型,确定所述第一目标向量对应的第二目标向量包括:
基于注意力头的个数a,确定每个注意力头所需处理的当前位置以及历史位置对应的第一目标向量的第二向量维度为h/a;
基于所述第二向量维度,利用第一预设函数对当前位置以及历史位置对应的第一目标向量进行处理,所述第一预设函数包括:,其中,表示单个基本信息单元的向量维度,/>表示矩阵转置,/>表示自注意力操作输出值,/>表示归一化函数,/>表示当前序列长度;
基于所述自注意力操作输出值,确定所述第一目标向量对应的第二目标向量。
7.根据权利要求5所述的大语言模型推理优化方法,其特征在于,所述拼接多个所述第二目标向量,并将拼接结果进行一次线性映射,得到第一输出结果包括:
获取所有注意力头对应的第二目标向量,并进行拼接;
利用第二预设函数对拼接结果进行一次线性映射,所述第二预设函数包括:,其中,/>表示一次线性映射输出值,/>表示拼接函数,/>表示参数矩阵,/>表示第二目标向量;
基于所述一次线性映射输出值,确定所述第一输出结果。
8.根据权利要求1所述的大语言模型推理优化方法,其特征在于,所述根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果包括:
获取第一时间值和第二时间值;
基于所述第一时间值和第二时间值,确定是否对所述基本信息单元对应的矩阵值进行缓存。
9.根据权利要求8所述的大语言模型推理优化方法,其特征在于,所述第一时间值为大语言模型对基本信息单元进行一次推理时间,所述第一时间值的获取方法包括:
利用第三预设函数计算所述第一时间值,所述第三预设函数包括:,其中,表示第一时间值,/>表示计算量,/>表示理论峰值。
10.根据权利要求8所述的大语言模型推理优化方法,其特征在于,所述第二时间值为单个基本信息单元由存储器加载到计算核心的时间,所述第二时间值的获取方法包括:
利用第四预设函数计算所述第二时间值,所述第四预设函数包括:,其中,表示第二时间值,/>表示理论带宽,/>表示大语言模型层数。
11.根据权利要求8所述的大语言模型推理优化方法,其特征在于,所述基于所述第一时间值和第二时间值,确定是否对所述基本信息单元对应的矩阵值进行缓存包括:
获取并发序列中总的基本信息单元个数
基于所述第二时间值和所述基本信息单元个数,计算确定第一数据值,所述第一数据值的计算公式包括/>,其中,/>表示第一数据值;
响应于检测到所述第一数据值大于或等于所述第一时间值时,对所述基本信息单元对应的矩阵值不进行缓存;
响应于检测到所述第一数据值小于所述第一时间值时,对所述基本信息单元对应的矩阵值进行缓存,并基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数。
12.根据权利要求3所述的大语言模型推理优化方法,其特征在于,基于内存感知策略确定不需要进行缓存的基本信息单元对应的矩阵值的个数包括:
响应于检测到存储设备的存储空间小于第一预设值时,去除每条序列中个基本信息单元对应的矩阵值,其中,/>,/>表示序列个数,ceil{•}表示向上取整函数。
13.根据权利要求3所述的大语言模型推理优化方法,其特征在于,所述基于所述缓存结果,对至少一个所述基本信息单元进行推理解码包括:
获取第四输出结果,将所述第四输出结果转化第三嵌入向量,并添加位置编码信息;
将添加位置编码信息后的第三嵌入向量逐个经过目标个数的自注意力神经网络模块,得到第五输出结果;
将所述第五输出结果映射为预设词表中每个基本信息单元的概率值,将概率值最大的基本信息单元作为当前序列的下一个输入值。
14.一种大语言模型推理优化装置,其特征在于,所述装置包括:
模型构建模块,用于基于深度学习机制构建大语言模型;
转化模块,用于在检测到用户输入请求时,将所述用户输入请求转化为基本信息单元,并输入至所述大语言模型;
预填充模块,用于基于所述大语言模型,对所述基本信息单元进行预填充,得到所述基本信息单元对应的矩阵值;
动态缓存模块,用于根据动态矩阵值缓存机制,确定所述基本信息单元对应的矩阵值的缓存结果;
推理解码模块,用于基于所述缓存结果,对至少一个所述基本信息单元进行推理解码,实现大语言模型的推理优化。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法。
CN202311472174.3A 2023-11-07 2023-11-07 大语言模型推理优化方法、装置、计算机设备及存储介质 Active CN117194056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311472174.3A CN117194056B (zh) 2023-11-07 2023-11-07 大语言模型推理优化方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311472174.3A CN117194056B (zh) 2023-11-07 2023-11-07 大语言模型推理优化方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN117194056A true CN117194056A (zh) 2023-12-08
CN117194056B CN117194056B (zh) 2024-02-23

Family

ID=88990976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311472174.3A Active CN117194056B (zh) 2023-11-07 2023-11-07 大语言模型推理优化方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117194056B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117910576A (zh) * 2023-12-29 2024-04-19 暗物质(北京)智能科技有限公司 一种用于认知模型问答预测的加速推理方法及系统
CN118094037A (zh) * 2024-04-12 2024-05-28 清华大学 大语言模型的显存管理方法、装置、电子设备及存储介质
CN118113481A (zh) * 2024-04-25 2024-05-31 苏州元脑智能科技有限公司 一种大语言模型的运行方法、系统、产品、设备及介质
CN118246413A (zh) * 2024-05-28 2024-06-25 上海后摩集成电路有限公司 基于注意力机制的文本生成方法、装置和模型
CN118396128A (zh) * 2024-06-28 2024-07-26 苏州元脑智能科技有限公司 语言模型推理优化方法、电子设备、存储介质及程序产品
CN118446321A (zh) * 2024-05-30 2024-08-06 上海交通大学 智能手机的大语言模型快速推理方法、装置及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156763A1 (en) * 2000-03-22 2002-10-24 Marchisio Giovanni B. Extended functionality for an inverse inference engine based web search
CN114580606A (zh) * 2020-12-02 2022-06-03 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN115774992A (zh) * 2021-09-07 2023-03-10 北京三星通信技术研究有限公司 信息处理方法、装置、电子设备、存储介质及程序产品
CN116541492A (zh) * 2023-03-30 2023-08-04 华为技术有限公司 一种数据处理方法及相关设备
CN116720004A (zh) * 2023-08-09 2023-09-08 腾讯科技(深圳)有限公司 推荐理由生成方法、装置、设备及存储介质
CN116820429A (zh) * 2023-08-28 2023-09-29 腾讯科技(深圳)有限公司 代码处理模型的训练方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156763A1 (en) * 2000-03-22 2002-10-24 Marchisio Giovanni B. Extended functionality for an inverse inference engine based web search
CN114580606A (zh) * 2020-12-02 2022-06-03 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN115774992A (zh) * 2021-09-07 2023-03-10 北京三星通信技术研究有限公司 信息处理方法、装置、电子设备、存储介质及程序产品
CN116541492A (zh) * 2023-03-30 2023-08-04 华为技术有限公司 一种数据处理方法及相关设备
CN116720004A (zh) * 2023-08-09 2023-09-08 腾讯科技(深圳)有限公司 推荐理由生成方法、装置、设备及存储介质
CN116820429A (zh) * 2023-08-28 2023-09-29 腾讯科技(深圳)有限公司 代码处理模型的训练方法、装置、电子设备及存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117910576A (zh) * 2023-12-29 2024-04-19 暗物质(北京)智能科技有限公司 一种用于认知模型问答预测的加速推理方法及系统
CN118094037A (zh) * 2024-04-12 2024-05-28 清华大学 大语言模型的显存管理方法、装置、电子设备及存储介质
CN118094037B (zh) * 2024-04-12 2024-06-25 清华大学 大语言模型的显存管理方法、装置、电子设备及存储介质
CN118113481A (zh) * 2024-04-25 2024-05-31 苏州元脑智能科技有限公司 一种大语言模型的运行方法、系统、产品、设备及介质
CN118113481B (zh) * 2024-04-25 2024-08-02 苏州元脑智能科技有限公司 一种大语言模型的运行方法、系统、产品、设备及介质
CN118246413A (zh) * 2024-05-28 2024-06-25 上海后摩集成电路有限公司 基于注意力机制的文本生成方法、装置和模型
CN118446321A (zh) * 2024-05-30 2024-08-06 上海交通大学 智能手机的大语言模型快速推理方法、装置及系统
CN118396128A (zh) * 2024-06-28 2024-07-26 苏州元脑智能科技有限公司 语言模型推理优化方法、电子设备、存储介质及程序产品
CN118396128B (zh) * 2024-06-28 2024-09-24 苏州元脑智能科技有限公司 语言模型推理优化方法、电子设备、存储介质及程序产品

Also Published As

Publication number Publication date
CN117194056B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN117194056B (zh) 大语言模型推理优化方法、装置、计算机设备及存储介质
WO2021047286A1 (zh) 文本处理模型的训练方法、文本处理方法及装置
CN111460807B (zh) 序列标注方法、装置、计算机设备和存储介质
WO2021139344A1 (zh) 基于人工智能的文本生成方法、装置、计算机设备和介质
WO2021143021A1 (zh) 基于大数据的答案位置获取方法、装置、设备及介质
US11836520B2 (en) Dynamic batching for inference system for transformer-based generation tasks
CN110598210B (zh) 实体识别模型训练、实体识别方法、装置、设备及介质
JP2023529801A (ja) スパースアテンションメカニズムを備えたアテンションニューラルネットワーク
WO2020240709A1 (ja) 対話処理装置、学習装置、対話処理方法、学習方法及びプログラム
CN113362804A (zh) 一种合成语音的方法、装置、终端及存储介质
CN112232052A (zh) 文本拼接方法、装置、计算机设备及存储介质
CN112837673B (zh) 基于人工智能的语音合成方法、装置、计算机设备和介质
CN113987162A (zh) 文本摘要的生成方法、装置及计算机设备
CN117217318B (zh) 基于Transformer网络模型的文本生成方法和装置
CN112735377B (zh) 语音合成方法、装置、终端设备及存储介质
WO2021151324A1 (zh) 基于迁移学习的医疗数据处理方法、装置、设备及介质
CN112183744A (zh) 一种神经网络剪枝方法及装置
CN113420869B (zh) 基于全方向注意力的翻译方法及其相关设备
JP2021033994A (ja) テキスト処理方法、装置、デバイス及びコンピュータ読み取り可能な記憶媒体
CN116168666A (zh) 乐曲推断装置、乐曲推断方法以及模型生成装置
WO2021238289A1 (zh) 序列处理的方法与装置
CN112509559B (zh) 音频识别方法、模型训练方法、装置、设备及存储介质
CN110780850B (zh) 需求用例辅助生成方法、装置、计算机设备及存储介质
CN113434652A (zh) 智能问答方法、智能问答装置、设备及存储介质
TWI853254B (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