数据处理方法技术

技术编号:39591635 阅读:12 留言:0更新日期:2023-12-03 19:46
本发明专利技术提供一种数据处理方法

【技术实现步骤摘要】
数据处理方法、计算设备和存储介质


[0001]本专利技术涉及数据处理
,尤其涉及一种数据处理方法

计算设备和存储介质


技术介绍

[0002]目前的大语言模型
(Large Language Model

LLM)
发展迅猛,作为其中的代表,
(Generative Pre

trained Transformer

GPT)
类模型包含了大量的前馈神经网络
(FeedForward Neural Network

FFN)
运算及注意力
attention
运算,需要消耗大量的计算资源

[0003]目前在进行
GPT
推理时,通常采用集束搜索
(beam search)
机制,以提高推理结果的准确度

如图1所示,对于词元
(token)
推理时的任意一个序列,每个时间步
(time step)
会产生一个新的
token
的预测,
beam search
机制中对于这些预测会选择其中数量为
N(N
表示集束数量
beam size
,可以是用户预设的
)

token
,进入下一个时间步的
token
推理

因此除了第一个时间步以外,其实对于批量处理的一个
batch(
规模为
M

M
为一批次处理的批处理数量
batch size)
中的任意一个提示都会进行
N
个分支的
token
推理,一个
batch
中的整体
token
推理的分支数量即为
M
×
N
,即为
batch size
×
beam size。
为了保持整体过程的统一性,一般会在推理的提示推理阶段就将
batch
中的每个提示按照
beam size
倍作了复制扩充,以便后面每步处理的提示分支总数都保持一致
(
即为
batch size
×
beam size)。
但是上述方案中推理任务变多了很多

这些推理的分支之间在
token
推理部分的注意力
(attention)
计算时,由于每个分支有各自的
k_cache、v_cache
,其中,
k_cache

v_cache
分别表示
attention
机制中的键
(Key)
矩阵对应的缓存和值
(Value)
矩阵对应的缓存,因此其中的提示对应的查询
(query)
矩阵与
k_cache

v_cache
的运算都各自做矩阵向量乘,相比于矩阵乘运算效率较低,而且由于每个分支的
k_cache、v_cache
都要在显存空间中保存,重复占用的显存空间较大,造成了很大的资源浪费


技术实现思路

[0004]本专利技术提供一种数据处理方法

计算设备和存储介质,用以解决现有技术中运算效率低以及占用显存空间较大的缺陷,实现一种运算效率较高而且占用存储空间较小的数据处理方法

[0005]本专利技术提供一种数据处理方法,应用于计算设备,所述计算设备包括计算单元和显存单元,所述显存单元中存储一份第一矩阵的第一子矩阵,一份第二矩阵的第一子矩阵,
N
份所述第一矩阵的第二子矩阵,以及
N
份所述第二矩阵的第二子矩阵,
N
为大于0的整数,所述第一子矩阵的宽度为提示长度,所述第二子矩阵的宽度为推理生成的词元个数,所述方法包括:
[0006]针对同一个提示的
N
个提示推理子任务,所述计算单元将第三矩阵与所述第一矩阵中第一子矩阵进行矩阵乘积运算,得到第一中间矩阵;所述第三矩阵为基于
N
个第一向量
组合得到的;
[0007]所述计算单元基于所述第一中间矩阵和所述第二矩阵中第一子矩阵,进行矩阵乘积运算,得到第二中间矩阵;
[0008]针对所述提示的
N
个词元推理子任务中任一所述词元推理子任务,以及该词元推理子任务对应的
N
个第一向量中的一个第一向量,所述计算单元将所述第一向量与所述第一矩阵的
N
个第二子矩阵中一个第二子矩阵进行乘积运算,得到第二向量,并基于所述第二向量和所述第二矩阵中第二子矩阵,得到第三向量;
[0009]所述计算单元将
N
个所述第三向量堆叠得到的第三中间矩阵,与所述第二中间矩阵进行叠加运算,得到结果矩阵

[0010]根据本专利技术提供的一种数据处理方法,所述计算单元基于所述第一中间矩阵和所述第二矩阵中第一子矩阵,进行矩阵乘积运算,得到第二中间矩阵,包括:
[0011]所述计算单元基于所述第一中间矩阵中各行的最大值,更新所述第一中间矩阵中每个元素;
[0012]所述计算单元将更新后的第一中间矩阵和所述第二矩阵中第一子矩阵,进行矩阵乘积运算,得到所述第二中间矩阵

[0013]根据本专利技术提供的一种数据处理方法,所述计算单元基于所述第二向量和所述第二矩阵中第二子矩阵,得到第三向量,包括:
[0014]所述计算单元基于所述第二向量中的最大值对所述第二向量的每个元素进行更新,得到更新后的第二向量;
[0015]所述计算单元将更新后的第二向量和所述第二矩阵中第二子矩阵,进行乘积运算,得到所述第三向量

[0016]根据本专利技术提供的一种数据处理方法,所述方法还包括:
[0017]所述计算单元将更新后的第一中间矩阵中每行的元素之和,以及所述第一中间矩阵中每行的最大值,缓存在所述计算单元的本地;
[0018]所述计算单元将所述
N
个词元推理子任务中每个词元推理子任务对应的更新后的第二向量中元素之和,以及所述每个词元推理子任务对应的更新前的第二向量中的最大值,缓存在所述计算单元的本地

[0019]根据本专利技术提供的一种数据处理方法,所述计算单元将
N
个所述第三向量叠加得到的第三中间矩阵,与所述第二中间矩阵进行叠加运算,得到结果矩阵,包括:
[0020]所述计算单元将所述第三中间矩阵与所述第二中间矩阵进行缩放处理,并对缩放处理后的两个中间矩阵进行叠加运算,得到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种数据处理方法,其特征在于,应用于计算设备,所述计算设备包括计算单元和显存单元,所述显存单元中存储一份第一矩阵的第一子矩阵,一份第二矩阵的第一子矩阵,
N
份所述第一矩阵的第二子矩阵,以及
N
份所述第二矩阵的第二子矩阵,
N
为大于0的整数,所述第一子矩阵的宽度为提示长度,所述第二子矩阵的宽度为推理生成的词元个数,所述方法包括:针对同一个提示的
N
个提示推理子任务,所述计算单元将第三矩阵与所述第一矩阵中第一子矩阵进行矩阵乘积运算,得到第一中间矩阵;所述第三矩阵为基于
N
个第一向量组合得到的;所述计算单元基于所述第一中间矩阵和所述第二矩阵中第一子矩阵,进行矩阵乘积运算,得到第二中间矩阵;针对所述提示的
N
个词元推理子任务中任一所述词元推理子任务,以及该词元推理子任务对应的
N
个第一向量中的一个第一向量,所述计算单元将所述第一向量与所述第一矩阵的
N
个第二子矩阵中一个第二子矩阵进行乘积运算,得到第二向量,并基于所述第二向量和所述第二矩阵中第二子矩阵,得到第三向量;所述计算单元将
N
个所述第三向量堆叠得到的第三中间矩阵,与所述第二中间矩阵进行叠加运算,得到结果矩阵
。2.
根据权利要求1所述的数据处理方法,其特征在于,所述计算单元基于所述第一中间矩阵和所述第二矩阵中第一子矩阵,进行矩阵乘积运算,得到第二中间矩阵,包括:所述计算单元基于所述第一中间矩阵中各行的最大值,更新所述第一中间矩阵中每个元素;所述计算单元将更新后的第一中间矩阵和所述第二矩阵中第一子矩阵,进行矩阵乘积运算,得到所述第二中间矩阵
。3.
根据权利要求1或2所述的数据处理方法,其特征在于,所述计算单元基于所述第二向量和所述第二矩阵中第二子矩阵,得到第三向量,包括:所述计算单元基于所述第二向量中的最大值对所述第二向量的每个元素进行更新,得到更新后的第二向量;所述计算单元将更新后的第二向量和所述第二矩阵中第二子矩阵,进行乘积运算,得到所述第三向量
。4.
根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:所述计算单元将更新后的第一中间矩阵中每行的元素之和,以及所述第一中间矩阵中每行的最大值,缓存在所述计算单元的本地;所述计算单元将所述
N
个词元推理子任务中每个词元推理子任务对应的更新后的第二向量中元素之和,以及所述每个词元推理子任务对应的更新前的第二向量中的最大值,缓存在所述计算单元的本地
。5.
根据权利要求2所述的数据处理方法,其特征在于,所述计算单元将
N
个所述第三向量堆叠得到的第三中间矩阵,与所述第二中间矩阵进行叠加运算,得到结果矩阵,包括:所述计算单元将所述第三中间矩阵与所述第二中间矩阵进行缩放处理,并对缩放处理后的两个中间矩阵进行叠加运算,得到第四中间矩阵;所述计算单元将第四向量和第五向量进行缩放处理,并对缩放处理后得到的两个向量
进行按位叠加运算,得到第六向量;所述第四向量为所述更新后的第一中间矩阵中每行的元素之和形成的向量,所述第五向量为所述
N
个词元推理子任务中每个词元推理子任务对应的更新后的第二向量中元素之和形成的向量;针对所述第四中间矩阵中的每一行,所述计算单元将所述第四中间矩阵中每一行的每个元素分别除以所述第六向量中对应位置的元素,得到所述结果矩阵
。6.
根据权利要求5所述的数据处理方法,其特征在于,所述将所述第三中间矩阵与所述第二中间矩阵进行缩放处理,包括:针对所述第二中间矩阵的任一行以及所述第三中间矩阵中的对应行,若所述第一中间矩阵中第
i1
行的最大值,小于第七向量中第
i1
个元素,则基于所述第一中间矩阵中第
i1
行的最大值,以及所述第七向量中第
i1
个元素,对所述第二中间矩阵中所述第
i1
行的每个元素进行缩放处理;所述第七向量为所述
N
个词元推理子任务中每个词元推理子任务对应的更新前的第二向量中的最大值形成的向量;
i1
的取值范围为从1到
N
;若所述第一中间矩阵中第
i1
行的最大值,大于第七向量中第
i1
个元素,则基于所述第一中间矩阵中第
i1
行的最大值,以及所述第七向量中第
i1
个元素,对所述第三中间矩阵中所述第
i1
行的每个元素进行缩放处理;所述将第四向量和第五向量进行缩放处理,包括:针对所述第四向量中任一元素,以及第五向量中对应位置的元素,若所述第一中间矩阵中第
i1
行的最大值,小于第七向量中第
...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:上海壁仞智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1