大语言模型数据管理方法、装置、电子设备及存储介质与流程
- 国知局
- 2024-10-09 15:20:47
本技术涉及神经网络领域,具体而言,涉及一种大语言模型数据管理方法、装置、电子设备及存储介质。
背景技术:
1、大语言模型(llm,large language model)在推理过程中,会先将输入文本转换为多个token(模型输入的基本单元),模型会通过多个token预测下一个token。
2、大语言模型在推理过程中,会将基于注意力机制计算的key(键向量)和value(值向量)进行缓存,得到kv-cache(键向量和值向量的缓存)。在下一次推理过程中会根据前一次预测输出的token、kv-cache中的key和value预测下一个token,并更新kv-cache中的key和value,更新时,是在原key和value的基础上累加新的数据。
3、kv-cache存储在存储器中,随着推理次数的增加,kv-cache中的key和value在不断推理的过程中累加的数据量大小增加,使得存储量增加,以及使得对存储器中的kv-cache的数据带宽增加,影响设备运行大语言模型的效率与设备的性能。
技术实现思路
1、有鉴于此,本技术旨在提供一种大语言数据管理方法、装置、电子设备及存储介质,以减少存储器缓存大语言模型缓存数据所需的数据带宽。
2、第一方面,本技术实施例提供一种大语言模型数据管理方法,应用于电子设备的处理器,所述处理器配置有包括注意力层的大语言模型,所述电子设备还包括存储单元,所述大语言模型数据管理方法包括:在所述注意力层进行非首轮推理的情况下,将目标矩阵输出至所述注意力层,以使所述注意力层基于所述目标矩阵计算前一轮推理生成的键向量和值向量;其中:所述目标矩阵存储在所述存储单元内,所述目标矩阵包括初始向量和n个累加向量,n=m-2,m为所述注意力层当前的推理轮次,且m大于或等于2;所述初始向量为所述大语言模型在首轮推理过程中基于输入的文本产生的、用于推理键向量和值向量的中间数据;所述累加向量为所述注意力层非首轮推理的情况下,推理该轮键向量和值向量所需增加的固定数据;在所述注意力层基于所述键向量和所述值向量完成当前轮次的推理后,基于所述累加向量对所述存储单元内的目标矩阵进行累加。
3、在大语言模型中,非首轮推理的键向量和值向量是通过相同的向量计算得到,也即首轮推理产生的中间数据(初始向量),以及每轮推理对键向量和值向量进行累加所使用的数据(也即累加向量)相同,因此,在本技术实施例中,可以缓存计算得到键向量和值向量所需的初始向量和累加向量,也即缓存目标矩阵,并通过累加向量对目标矩阵进行累加,使得目标矩阵能够推理出前一轮推理所使用的键向量和值向量。相较于分别缓存键向量和值向量,分别缓存键向量和值向量需要两份存储空间,而存储目标矩阵仅需一份存储空间,也即所需缓存目标矩阵所需的存储空间能较现有技术减半,进而可以有效减少存储器缓存推理过程中的向量所需的数据带宽。
4、一实施例中,所述大语言模型还包括位于所述注意力层之前的预设网络层中;所述预设网络层为具有乘累加操作功能,但所述乘累加操作功能未启用的网络层;所述将目标矩阵输出至所述注意力层,包括:将所述目标矩阵输出至所述预设网络层中,以通过所述预设网络层中的乘累加操作功能对所述目标矩阵进行处理得到计算结果;将所述计算结果输出至所述注意力层。
5、乘累加操作功能通过处理器中的硬件计算单元执行,大语言模型中部分网络层未启用乘累加操作功能,这使得该网络层对硬件计算单元资源的使用不充分,本技术实施例中,将目标矩阵输出至具有乘累加操作功能,但乘累加操作功能未启用的预设网络层,可以使得预设网络层基于乘累加操作功能对目标矩阵进行处理得到计算结果,充分利用硬件计算资源,从而使得缓存目标矩阵不会对额外增加过多的计算量和数据读取量。
6、一实施例中,所述预设网络层包括所述注意力层的前一全连接层。
7、大语言模型中,注意力层前一网络层为全连接层,全连接层未启用乘累加操作功能,因此,在本技术实施例中,可以存储未经全连接层计算的目标矩阵,并在推理时将目标矩阵输出至全连接层,以通过全连接层计算输出至注意力层所需的数据。由此,可以对全连接层对应的硬件计算资源充分利用,在不额外影响大语言模型推理效率的情况下,减少所需缓存数据量。
8、一实施例中,所述电子设备还包括数据压缩和解压单元,所述大语言模型数据管理方法还包括:若所述存储单元中存储的所述目标矩阵的大小大于预设阈值,则基于所述数据压缩和解压单元对所述目标矩阵进行压缩,得到压缩数据;以及,所述将目标矩阵输出至所述注意力层之前,所述方法还包括:基于所述数据压缩和解压单元对所述压缩数据进行解压缩,得到所述目标矩阵。
9、本技术实施例中,对目标矩阵进行压缩,可以进一步减少存储目标矩阵所需的存储空间。
10、一实施例中,所述方法还包括:获取首轮推理时,所述注意力层对模型输入的基本单元进行推理产生的输入向量;所述模型输入的基本单元通过对输入所述大语言模型的文本转换得到;将所述输入向量存入所述存储单元作为所述初始向量。
11、在大语言模型的首轮推理中,大语言模型会对文本转换得到模型输入的基本单元,再对模型输入的基本单元进行推理产生输入向量,输入向量用于计算键向量和值向量,本技术实施例中,将输入向量作为初始向量存入存储单元,相较于保存首轮推理产生的值向量和键向量,可以有效减少所需存储的数据量。
12、一实施例中,所述存储单元包括第一存储器和第二存储器,所述第一存储器用于存储所述目标矩阵;所述基于所述累加向量对所述目标矩阵进行累加,包括:向所述第二存储器存入一个所述累加向量;在所述注意力层完成当前轮次的推理后,将所述第二存储器内的所述累加向量存入所述第一存储器,以对所述目标矩阵进行累加。
13、本技术实施例中,通过不同的存储器分别存储目标矩阵和当前轮次需要新增的累加向量,可以使得对目标矩阵的累加有序进行,减少目标矩阵累加出错的可能性,提高大语言模型推理的准确性。
14、一实施例中,所述第二存储器的容量大于预设容值;所述电子设备还包括:gemm(general matrix multiplication,通用矩阵的矩阵乘法)单元和dma(direct memoryaccess,直接内存访问)单元;所述注意力层还用于基于所述gemm单元对所述键向量和所述值向量进行通用矩阵的矩阵乘法;所述将目标矩阵输出至所述注意力层,包括:对所述第一存储器中的所述目标矩阵按预设权重读取数据切片,并将所述数据切片输出至第二存储器;将所述数据切片从所述第二存储器输出至所述注意力层,以使所述注意力层基于所述数据切片推理得到的键向量和值向量,并调用所述gemm单元对该数据切片对应的所述键向量和所述值向量执行矩阵乘法;在所述gemm单元执行矩阵乘法的过程中,基于所述dma单元从所述第一存储器按所述预设权重读出下一数据切片并存入所述第二存储器。
15、大语言模型在推理时,通过调用gemm单元对键向量和值向量进行矩阵乘法运算,而数据读取通过dma单元实现,二者可以独立运行,因此,本技术实施例中,在gemm单元进行运算的时候,通过dma单元将第一存储器中的数据读取至第二存储器,将数据加载和运算同时进行,可以有效隐藏数据读取导致的延迟,提高大语言模型的运算效率。
16、第二方面,本技术实施例提供一种处理器,该处理器配置有包括注意力层的大语言模型;所述处理器用于执行如第一方面任一项所述的大语言模型数据管理方法。
17、第三方面,本技术实施例提供一种电子设备,包括:处理器,配置有包括注意力层的大语言模型;所述处理器用于执行如第一方面任一项所述的大语言模型数据管理方法;存储单元,与所述处理器连接;用于存储所述大语言模型在推理过程中所需的目标矩阵。
18、第四方面,本技术实施例提供一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行为如第一方面任一项所述的大语言模型数据管理方法。
本文地址:https://www.jishuxx.com/zhuanli/20241009/308428.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表