数据处理方法及装置、电子设备、存储介质与流程
未命名
08-14
阅读:89
评论:0
1.本公开的实施例涉及一种数据处理方法、数据处理装置、电子设备以及非瞬时性计算机可读存储介质。背景技术:
::2.人工神经网络(artificialneuralnetworks)也简称为神经网络,是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。不论何种类型的人工神经网络,它们共同的特点是大规模并行处理、分布式存储、弹性拓扑、高度冗余和非线性运算等,具有运算速度、联想能力、适应性、容错能力和自组织能力等方面的能力。这些特点和能力构成了人工神经网络模拟智能活动的技术基础,并在各种
技术领域:
:获得了重要的应用。例如,人工神经网络可以用于数据压缩、数据处理、视频编码、信号处理等方面。技术实现要素:3.本公开至少一实施例提供一种数据处理方法,包括:通过神经网络对待处理数据进行推理操作,所述推理操作包括:利用所述神经网络对所述待处理数据依次进行m轮推理,其中,所述待处理数据包括多批输入数据,每批输入数据包括n1个输入数据元素,在每轮推理中仅完成一批输入数据的全部推理,m和n1为大于1的正整数;所述m轮推理包括依次顺序执行的第i轮推理和第i+1轮推理,i为正整数且小于m,其中,所述第i轮推理的推理过程包括:在所述第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理,在所述第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的所述n1个输入数据元素的全部推理;其中,所述第一阶段早于所述第二阶段,n2大于n1,属于同一批输入数据的所述n1个输入数据元素为所述n2个输入数据元素的子集;所述第i+1轮推理的推理过程包括:结合所述第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述n2-n1个输入数据元素进行推理。4.例如,在本公开至少一实施例提供的一种数据处理方法中,所述神经网络包括第一子网络和第二子网络,所述第一子网络配置为接收输入数据元素,结合自注意力机制提取所述输入数据元素对应的语义特征,其中,所述语义特征包括初始键张量和初始值张量,所述第二子网络配置为基于所述语义特征,结合自回归机制逐个预测所述输入数据元素对应的输出形符序列,其中,在结合自回归机制逐个预测所述输入数据元素对应的输出形符序列的过程中,根据已预测得到的输出形符不断更新所述初始键张量和所述初始值张量,得到更新键张量和更新值张量,所述更新键张量和所述更新值张量的长度和已预测得到的所述输入数据元素对应的输出形符的数量呈正比例关系。5.例如,在本公开至少一实施例提供的一种数据处理方法中,n1由所述神经网络支持的最长输出形符序列的形符个数、所述神经网络支持的输入数据元素的最大长度、以及用于存储所述更新键张量和所述更新值张量的存储空间的大小确定。6.例如,在本公开至少一实施例提供的一种数据处理方法中,在所述第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理,包括:确定x批输入数据作为所述n2个输入数据元素,其中,所述x批输入数据包括第一批输入数据,所述第一批输入数据包括在所述第i轮推理中全部推理完的所述n1个输入数据元素,x为大于1的正整数;以批为单位同时对所述x批输入数据进行推理。7.例如,在本公开至少一实施例提供的一种数据处理方法中,确定x批输入数据作为所述n2个输入数据元素,包括:响应于i等于1,确定x批完全未推理过的输入数据作为所述x批输入数据;响应于i大于1:确定第i-1轮推理中未推理完的x-1批输入数据,以及一批完全未推理过的输入数据,共同作为所述x批输入数据,其中,所述第一批输入数据从所述第i-1轮推理中未推理完的x-1批输入数据中确定。8.例如,在本公开至少一实施例提供的一种数据处理方法中,所述x批输入数据中除所述第一批输入数据以外的x-1批输入数据具有各自对应的推理暂停阈值,以批为单位同时对所述x批输入数据进行推理,包括:对所述x批输入数据同时进行推理,其中,对于所述x-1批输入数据中的任一批输入数据,在所述任一批输入数据已推理得到的输出形符数量达到对应的推理暂停阈值时,暂停所述任一批输入数据的推理。9.例如,在本公开至少一实施例提供的一种数据处理方法中,响应于x=2,推理暂停阈值为(l-2p)/3,其中,p为所述神经网络支持的一批输入数据对应的输入文本最大长度,l为所述神经网络支持的最长输出形符序列的形符个数与p之和,“/”表示除法。10.例如,在本公开至少一实施例提供的一种数据处理方法中,在所述任一批输入数据已推理得到的输出形符数量达到对应的推理暂停阈值时,暂停所述任一批输入数据的推理,包括:暂停所述任一批输入数据的推理;存储所述任一批输入数据已推理得到的输出形符;清空所述任一批输入数据在所述第i轮推理过程中产生的更新键张量和更新值张量。11.例如,在本公开至少一实施例提供的一种数据处理方法中,存储所述任一批输入数据已推理得到的输出形符,包括:将所述任一批输入数据已推理得到的输出形符中的每个输出形符转换为对应的形符索引值;存储所述任一批输入数据已推理得到的输出形符分别对应的形符索引值。12.例如,在本公开至少一实施例提供的一种数据处理方法中,对所述x批输入数据同时进行推理,包括:响应于i大于1,针对所述x批输入数据中除一批完全未推理过的输入数据以外的其它x-1批输入数据:结合第i-1轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述其它x-1批输入数据进行推理。13.例如,在本公开至少一实施例提供的一种数据处理方法中,在所述第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的所述n1个输入数据元素的全部推理,包括:对第一批输入数据继续进行推理,直到完成所述第一批输入数据中全部输入数据元素的推理,其中,所述第一批输入数据包括在所述第i轮推理中全部推理完的所述n1个输入数据元素。14.例如,在本公开至少一实施例提供的一种数据处理方法中,结合所述第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述n2-n1个输入数据元素进行推理,包括:获取在所述第i轮推理中,所述n2-n1个输入数据元素的已推理得到的输出形符,其中,所述n2-n1个输入数据元素的已推理得到的输出形符以形符索引值形式存储在存储空间中;以批为单位,对所述n2-n1个输入数据元素进行推理,其中,针对所述n2-n1个输入数据元素中的每个输入数据元素,将获取的所述输入数据元素已推理得到的输出形符和所述输入数据元素共同输入所述神经网络进行推理。15.例如,在本公开至少一实施例提供的一种数据处理方法中,将获取的所述输入数据元素已推理得到的输出形符和所述输入数据元素共同输入所述神经网络进行推理,包括:将所述输入数据元素已推理得到的输出形符对应的形符索引值和所述输入数据元素对应的形符索引值进行拼接,将拼接结果输入所述神经网络进行推理。16.例如,在本公开至少一实施例提供的一种数据处理方法中,所述神经网络包括用于进行提示推理的第一子网络和用于进行形符推理的第二子网络,在通过所述第一子网络对所述n2-n1个输入数据元素进行提示推理的同时,通过所述第一子网络对一批完全未推理过的输入数据进行提示推理,以及在所述n2-n1个输入数据元素和所述一批完全未推理过的输入数据均完成所述提示推理后,同时开始对所述n2-n1个输入数据元素和所述一批完全未推理过的输入数据通过所述第二子网络进行形符推理。17.例如,在本公开至少一实施例提供的一种数据处理方法中,n2为n1的整数倍。18.本公开至少一实施例提供一种数据处理装置,包括:推理单元,配置为通过神经网络对待处理数据进行推理操作,其中,所述推理操作包括:利用所述神经网络对所述待处理数据依次进行m轮推理,其中,所述待处理数据包括多批输入数据,每批输入数据包括n1个输入数据元素,在每轮推理中仅完成一批输入数据的全部推理,m和n1为大于1的正整数;所述m轮推理包括依次顺序执行的第i轮推理和第i+1轮推理,i为正整数且小于m,其中,所述第i轮推理的推理过程包括:在所述第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理,在所述第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的所述n1个输入数据元素的全部推理;其中,所述第一阶段早于所述第二阶段,n2大于n1,属于同一批输入数据的所述n1个输入数据元素为所述n2个输入数据元素的子集;所述第i+1轮推理的推理过程包括:结合所述第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述n2-n1个输入数据元素进行推理。19.例如,本公开至少一实施例提供的一种数据处理装置还包括存储单元,所述存储单元配置为存储所述神经网络的权重参数和在所述推理操作过程中产生的更新键张量和更新值张量。20.本公开至少一实施例提供一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时实现根据本公开任一实施例所述的数据处理方法。21.本公开至少一实施例提供一种一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据本公开任一实施例所述的数据处理方法。附图说明22.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。23.图1为本公开至少一实施例提供的神经网络的示意性结构图;24.图2为本公开一实施例提供的一种推理操作的流程图;25.图3为本公开一实施例提供的数据处理方法的执行过程示意图;26.图4为本公开至少一实施例提供的一种数据处理装置的示意性框图;27.图5为本公开一实施例提供的一种电子设备的示意性框图;28.图6为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图;29.图7为本公开至少一实施例提供的一种硬件环境的示意图。具体实施方式30.为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。31.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。32.transformer模型是一种经典的基于神经网络的文本处理模型,催生了bert(bidirectionalencoderrepresentationfromtransformers,transformer中的双向编码器表示)、gpt(generativepre-trainedtransformer,生成式预训练transformer)等大幅推进nlp(naturallanguageprocessing,自然语言处理)领域发展的重要模型。33.自注意力机制(self-attentionmechanism)是transformer及基于transformer演进的模型中非常重要的一部分,自注意力机制是在机器学习模型中嵌入的一种特殊结构,用来自动学习和计算输入数据对输出数据的贡献大小,利用自注意力机制可以将输入序列上不同位置的信息联系起来,融入模型对于用来解释某个单词的上下文的相关单词的理解。目前,自注意力机制已经成为深度学习领域,尤其是自然语言处理领域,应用最广泛的“组件”之一。34.自注意力机制中主要使用三个中间缓存张量:查询张量(query)、键张量(key)和值张量(value)。其中,形符(token,自然语言处理中的语言单位,可指单词或单词的一部分)的查询张量被用来和其它形符的键张量相乘,从而得到其它形符相对于该形符的注意力得分;键张量就像是序列中每个形符的标签,用于在搜索相关形符时匹配对象;值张量是形符真正的表征,在计算得到注意力得分后,使用值张量进行加权求和得到能代表当前位置上下文的张量,该张量用于预测输出。35.gpt等模型中还使用自回归机制进行推理或训练,它使用深度学习来生成类似人类表达的文本。经过训练,模型可以根据先前预测的token来预测下一个token是什么。例如,自回归机制可以包括,当前模型输出的token可以添加在之前生成的token序列后面作为模型下一步的新输入,或者,当前模型输出的token可以直接作为模型下一步的新输入,以根据新输入预测下一个token。在推理过程中,模型结合自回归机制逐个向后预测,依次输出预测的形符,最终得到输入对应的输出形符序列。36.在深度学习中,可以以批(batch)为单位对数据进行推理,以在内存效率和内存容量之间寻找最佳平衡。例如,可以将用于推理的待处理数据分成多个batch,每个batch的大小称为批尺寸(batchsize),每批输入数据中包括批尺寸个输入数据元素,每个输入数据元素可以是神经网络处理的最小单元,例如一个输入数据元素可以是用户输入的一句话等形式。一个batch中的数据用于计算一次梯度下降,深度学习每一次参数的更新所需要的损失函数并不是由一个输入数据元素获得的,而是由批尺寸个输入数据元素加权得到的。例如,若批尺寸为32,表示同时可以对32个输入数据元素进行推理,并依据32个输入数据元素的损失值的加权对网络参数进行一次更新。37.在推理过程中,模型会结合自注意力机制得到的键张量和值张量进行计算,例如,模型中设置有编码器或其它结构的子网络用于使用自注意力机制对输入数据元素进行编码,得到输入数据元素对应的语义特征,例如,语义特征包括属于一批输入数据的输入数据元素相应的键张量和值张量,键张量和值张量存储在处理器的存储空间中,用于后续的形符推理,此时的键张量和值张量大小相同,且正比于该批输入数据对应的输入文本最大长度和批尺寸的乘积。38.在第一次进行形符推理时,语义特征包括原始的键张量和值张量,此时键张量和值张量的大小在整个形符推理过程中最小;在得到第一次预测的输出形符后,更新语义特征,更新后的语义特征包括更新后的键张量和值张量,更新后的键张量和值张量中携带了第一次预测的输出形符的信息,以此类推。因此,随着形符推理的不断进行,用于形符推理的键张量和值张量的大小会随着推理长度的逐个递进而相应逐个增长,也即键张量和值张量的长度和已预测得到的输出形符的数量呈正比例关系,其占据的存储空间会越来越大。39.以gpt-3模型为例,其具有1750亿参数和长达2048的输出形符长度,也即其支持的最长输出形符序列的形符个数(推理长度或推理的步数)可以达到2048。该模型高达1750亿的参数会占据约350gb的存储空间(对于fp16格式的参数)。对于一个典型的单或双节点系统,假设其显卡的存储空间总量为512gb,那么除去需要固定保存的350gb权重参数之后大约还剩160gb的存储空间。在推理过程中,键张量和值张量的大小正比于批尺寸*(该批输入数据对应的输入文本最大长度+已预测的形符数量/已执行的推理步数),从而随着推理的进行,键张量和值张量所需要的存储空间会越来越大。40.在推理过程中,通常希望有更大的批尺寸,以更高效地使用处理器中提供的张量计算算子,提高处理器的资源利用率。但是,对于一批输入数据,为了使得该批输入数据推理完毕时存储空间中可以存放的下最后时刻(该批输入数据都推理完成)的键张量和值张量,模型推理的批尺寸需要与最后时刻的推理步数匹配,即批尺寸与最大推理步数(神经网络支持的最长输出形符序列的形符个数与神经网络支持的输入数据元素的最大长度之和)的乘积要小于一个上限。但在推理的前期,已执行的推理步数较小,存储空间中存储的键张量和值张量还未完全占据所有的存储空间,且此时由于批尺寸也较小,无法充分利用系统算力,限制了推理总体过程的算力释放。41.本公开至少一实施例提供一种数据处理方法及装置、电子设备以及非瞬时性存储介质。该数据处理方法包括:通过神经网络对待处理数据进行推理操作,推理操作包括:利用神经网络对待处理数据依次进行m轮推理,其中,待处理数据包括多批输入数据,每批输入数据包括n1个输入数据元素,在每轮推理中仅完成一批输入数据的全部推理,m和n1为大于1的正整数;m轮推理包括依次顺序执行的第i轮推理和第i+1轮推理,i为正整数且小于m,其中,第i轮推理的推理过程包括:在第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理,在第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的n1个输入数据元素的全部推理;其中,第一阶段早于第二阶段,n2大于n1,属于同一批输入数据的n1个输入数据元素为n2个输入数据元素的子集;第i+1轮推理的推理过程包括:结合第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对n2-n1个输入数据元素进行推理。42.本公开至少一实施例提供的数据处理方法引入了批尺寸可变的推理模式,在推理步数较小、键张量和值张量占据存储空间较小的阶段(即第一阶段),采用更大的批尺寸以提高计算效率,充分利用处理器中算子的算力;随着推理不断进行(即第二阶段),键张量和值张量逐步占据更大的存储空间,降低批尺寸以完成推理,从而加速总体推理过程,充分利用系统算力,提高推理效率和算力利用率。43.本公开实施例提供的数据处理方法可应用于本公开实施例提供的数据处理装置,该数据处理装置可被配置于电子设备上。该电子设备可以是个人计算机、移动终端等,该移动终端可以是手机、平板电脑、笔记本电脑等硬件设备。44.下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。45.例如,本公开至少一实施例提供的数据处理方法包括:通过神经网络对待处理数据进行推理操作。46.例如,待处理数据可以是一个数据集,包括神经网络需要处理的所有数据。47.图1为本公开至少一实施例提供的神经网络的示意性结构图。48.如图1所示,用于执行本公开至少一实施例提供的数据处理方法的神经网络100包括第一子网络101和第二子网络102。49.例如,第一子网络101配置为接收输入数据元素,结合自注意力机制提取输入数据元素对应的语义特征,其中,语义特征包括初始键张量(keystack)和初始值张量(valuestack)。50.例如,第二子网络102配置为基于语义特征,结合自回归机制逐个预测输入数据元素对应的输出形符序列(tokensequence)。51.例如,例如,神经网络为gpt网络,相应的,使用该神经网络进行推理时,包括基于第一子网络101进行的提示推理(promptinference),和基于第二子网络102进行的形符推理(tokeninference)。52.在模型推理过程中,需要给定初始文本(输入数据元素)作为提示,然后gpt网络将依据提示继续生成相关文本。例如,初始文本可以是用户输入的文本,如问题、诉求、情感表达、随机闲聊等等类别。53.在提示推理过程中,第一子网络101配置为接收输入数据元素,结合自注意力机制提取输入数据元素对应的语义特征,例如,语义特征包括作为中间缓存的初始键张量和初始值张量。例如,在提示推理过程中,可以将属于同一批输入数据的输入数据元素都输入至第一子网络101,计算后产生相应的初始键张量和初始值张量存储在处理器的存储空间中,用于后续的形符推理。例如,由于在推理时以批为单位进行推理,同一批输入数据元素的长度可能各不相同,在进入神经网络进行处理前,可以将其都填充(padding)至相同的长度,例如在输入数据元素后填充预定义的空白标记(如“《pad》”)使得该输入数据元素的长度达到该批输入数据对应的输入文本最大长度。54.例如,如前所述,对于一批输入数据,通过第一子网络101生成的初始键张量和初始值张量的长度相同,且正比于该批输入数据对应的输入文本最大长度和该批输入数据的批尺寸的乘积。55.之后,在形符推理过程中,第二子网络102配置为基于该语义特征,结合自回归机制逐个预测输入数据元素对应的输出形符序列。例如,第二子网络102配置为将语义特征和已预测的输出形符相结合,逐个预测输出形符。56.如图1所示,第二子网络102包括第一嵌入层、多个解码层以及第二嵌入层。57.第一嵌入层配置为将输入形符转换为对应的形符索引值(tokenindex),并对形符索引值进行编码,得到输入形符对应的输入向量。例如,预先设定包括所有可能形符的映射表,该映射表提供了各个用户输入的形符和与其对应的形符索引值之间的映射关系,形符和其对应的形符索引值之间具有一对多或多对一的映射关系,该对应规则由分词器(tokenizer)确定,形符索引值例如为浮点数或整型。形符索引值与编码得到的输入向量具有一对一的对应关系,该对应关系由词嵌入表(embeddingtable)确定。58.例如,在第一次进行预测时,输入形符为用于指示字符文本开始的标签,例如“《ss》”或“《bos》”,或者,该标签也可以是用于指示上一轮预测的文本内容已结束的标签,例如“《eos》”,或者,该标签也可能是其它视任务而定的标签等,本公开对此不作限制,该标签的目标均是预测下一个位置的形符是什么。59.例如,在预测出第一个输出形符后,输入形符为该预测输出的输出形符。例如,将第一个输出形符作为输入形符输入第二子网络102进行处理,得到预测的第二个输出形符;之后,将预测的第二个输出形符作为输入形符,输入第二子网络102进行识别,得到预测的第三个输出形符,以此类推,直到输出结束标签,例如输出“《eos》”,完成一轮形符推理,得到输入数据元素对应的输出形符序列。60.例如,多个解码层级联,第一个解码层配置为对语义特征和输入形符进行处理,得到处理结果;第二个解码层配置为对语义特征和第一个解码器的处理结果进行处理,得到处理结果;...;第j个解码层配置为对语义特征和第j-1个解码层输出的处理结果进行处理,得到处理结果,这里,l为大于1的正整数,j为大于1且小于等于z的正整数。61.例如,如图1所示,在形符推理过程中,第二子网络102会依据每次推理预测的输出形符不断更新语义特征,从而形符推理过程中使用的语义特征会随着推理长度的逐个递增而相应增长,更新后的语义特征会携带有已预测的形符的信息。62.例如,在第一次进行预测时,语义特征包括来自第一子网络101的初始键张量和初始值张量;在得到第一次预测输出的输出形符后,更新语义特征,更新后的语义特征包括更新键张量和更新值张量,更新键张量和更新值张量中携带了第一次预测输出的输出形符的信息,以此类推。因此,更新键张量和更新值张量的长度和已预测得到的输入数据元素对应的输出形符的数量呈正比例关系,对于一批输入数据,更新键张量和更新值张量的大小正比于该批输入数据的批尺寸*(该批输入数据对应的输入文本最大长度+已预测的输出形符的数量/已执行的推理步数)。63.当然,需要说明的是,图1所示的神经网络为一种示意性结构,本公开所提供的数据处理方法可应用于其它结构的神经网络,例如其它在推理过程中存在用于数据处理的中间缓存的变量随推理不断进行大小会增长的神经网络,本公开对此不作具体限制。64.图2为本公开一实施例提供的一种推理操作的流程图。65.如图2所示,推理操作包括步骤s10,利用神经网络对待处理数据依次进行m轮推理。66.例如,待处理数据(例如是数据集)包括多批输入数据,每批输入数据包括n1个输入数据元素,也即批尺寸为n1,这里m和n1为大于1的正整数。67.例如,如前所述,可以将用于推理的待处理数据分成多个batch,每批输入数据中包括n1个输入数据元素,每个输入数据元素可以是神经网络处理的最小单元,例如一个输入数据元素可以是用户输入的一句话等形式。68.例如,在一轮推理中仅完成一批输入数据的全部推理,也即在一轮推理的最后时刻,完成了一批输入数据包括所有输入数据元素的推理,得到了该批输入数据中所有输入数据元素对应的输出形符序列。因此,在本公开中,一轮推理指完成一批输入数据的全部推理,而并非指通过神经网络对待处理数据全部完成了推理。例如,若待处理数据包括m批输入数据,则可以通过m轮推理完成m批输入数据的全部推理。69.例如,m轮推理包括依次顺序执行的第i轮推理和第i+1轮推理,i为正整数且小于m。例如,第i轮推理执行后紧接着执行第i+1轮推理。70.如图2所示,步骤s10可以包括描述第i轮推理的推理过程的步骤s20和描述第i+1轮推理的推理过程的步骤s30。71.例如,如图2所示,步骤s20可以包括步骤s201和步骤s202。72.步骤s201可以包括:在第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理。73.在步骤s202可以包括:在第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的n1个输入数据元素的全部推理。74.例如,第一阶段早于第二阶段,n2大于n1,属于同一批输入数据的n1个输入数据元素为n2个输入数据元素的子集。75.步骤s30可以包括:结合第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对n2-n1个输入数据元素进行推理。76.例如,n1由神经网络支持的最长输出形符序列的形符个数和用于存储更新键张量和更新值张量的存储空间的大小确定。如前所述,更新键张量和更新值张量的大小正比于批尺寸*(该批输入数据对应的输入文本最大长度+已预测的形符数量/已执行的推理步数),对于一批输入数据,为了使得该批输入数据推理完毕时存储空间中可以存放的下最后时刻(该批输入数据都推理完成)的更新键张量和更新值张量,模型推理的批尺寸需要与最后时刻的推理步数匹配,即n1与神经网络支持的最长输出形符序列的形符个数step_t(例如对于gpt-3,其可以为2048)和该批输入数据对应的输入文本最大长度p之和的乘积要小于一个上限,该上限由存储键张量和值张量的存储空间决定。77.在本公开中,在一轮推理中的第一阶段,例如推理的中前期阶段,对更大批尺寸(如n2)的输入数据进行推理,其中包括对属于同一批输入数据的n1个输入数据元素的推理;在第二阶段,例如推理的后期阶段,降低批尺寸至n1,也即在第二阶段对该n1个输入数据元素进行推理,直至完成该n1个输入数据元素的全部推理,完成一轮推理过程。78.由此,在第一阶段,更大的批尺寸可以使得神经网络中的矩阵乘、映射等计算更高效,提升计算效率,从而此时运算效率比只对n1个输入数据元素进行推理要高,可以充分利用处理器中算子的算力,由于这些计算在整个推理中占据了大部分的运算和权重加载,因此提高这部分的计算速率可以加速总体推理过程,充分利用系统算力,提高推理效率和算力利用率。79.需要说明的是,在本公开中,批尺寸可变是指对于神经网络,同时处理的输入数据元素的数量可变,例如同时对多批输入数据进行处理,或者对一批输入数据进行处理,更大的批尺寸指在推理前期同时对更多的输入数据元素进行推理,而不是指每批输入数据的批尺寸可变。80.下面结合附图具体描述各轮推理的具体推理过程。81.例如,第i轮推理中的步骤s201可以包括:确定x批输入数据作为n2个输入数据元素;以批为单位同时对x批输入数据进行推理。82.例如,x批输入数据包括第一批输入数据batch1,第一批输入数据batch1包括在第i轮推理中全部推理完的n1个输入数据元素,x为大于1的正整数。也就是说,输入数据batch1是在第i轮推理中需要完全推理完的唯一一批输入数据,其它x-1批输入数据在第i轮推理中不会完全推理完。83.例如,x批输入数据中的每批输入数据的批尺寸相同,且均为n1。例如,n2为n1的整数倍,例如n2=x*n1。当然,x批输入数据的批尺寸也可以不同,本公开对此不作具体限制。84.例如,确定x批输入数据作为n2个输入数据元素,可以包括:响应于i等于1,确定x批完全未推理过的输入数据作为x批输入数据;响应于i大于1:确定第i-1轮推理中未推理完的x-1批输入数据,以及一批完全未推理过的输入数据,共同作为x批输入数据,其中,第一批输入数据从第i-1轮推理中未推理完的x-1批输入数据中确定。85.例如,对于第一轮推理,此时所有批输入数据都还未进行推理,从中任意选择x批输入数据作为n2个输入数据元素进行第一阶段的推理。86.例如,对于除第一轮推理以外的其它m-1轮推理,例如对于第二轮推理,假设在第一轮推理中选择了输入数据batch_1、输入数据batch_2至输入数据batch_x共x批输入数据作为在第一轮推理中进行推理的n2个输入数据,其中输入数据batch_1为在第一轮推理中完全推理完的第一批输入数据,选择第1轮推理中未推理完的输入数据batch_2至输入数据batch_x,以及一批未进行过任何推理的输入数据batch_x+1作为第二轮推理中使用的作为n2个输入数据元素的x批输入数据。87.对于第一轮推理,在第一轮推理中完全推理完的第一批输入数据可以选择x批输入数据中的任一批输入数据。88.对于除第一轮推理以外的其它m-1轮推理,第一批输入数据需要从第i-1轮推理中未推理完的x-1批输入数据中确定,例如对于第二轮推理,可以选择输入数据batch_2至输入数据batch_x中的任一批输入数据作为第一批输入数据,在第二轮推理中完全推理完。也就是说,在第二轮推理及之后的推理过程中,每轮全部推理完的n1个输入数据元素需要至少在前一轮推理中已执行了部分推理。89.例如,x批输入数据中除第一批输入数据以外的x-1批输入数据具有各自对应的推理暂停阈值,推理暂停阈值用于表示,在第i轮推理中,若该x-1批输入数据中的任一批输入数据已推理得到的输出形符数量达到对应的推理暂停阈值时,暂停该批输入数据的推理。90.对于第一批输入数据,其没有对应的推理暂停阈值,也即在第一阶段,第一批输入数据会一直进行推理,直到其它x-1批输入数据都达到各自的推理暂停阈值且被暂停后,第一阶段结束。91.例如,在任一批输入数据已推理得到的输出形符数量达到对应的推理暂停阈值时,暂停该任一批输入数据的推理,可以包括:暂停该任一批输入数据的推理;存储该任一批输入数据已推理得到的输出形符;清空该任一批输入数据在第i轮推理过程中产生的更新键张量和更新值张量。92.例如,存储任一批输入数据已推理得到的输出形符,可以包括:将任一批输入数据已推理得到的输出形符中的每个输出形符转换为对应的形符索引值;存储任一批输入数据已推理得到的输出形符分别对应的形符索引值。93.例如,以第一轮推理为例,输入数据batch_2对应推理暂停阈值s2,输入数据batch_3对应推理暂停阈值s3,...,输入数据batch_x对应推理暂停阈值sx。94.例如,在第一轮推理的第一阶段开始时,同时以批为单位分别对输入数据batch_1至输入数据batch_x进行推理,也即在第一阶段,同时进行推理的输入数据元素的数量为x*n1。在输入数据batch_2已推理得到的输出形符数量达到s2时,暂停对输入数据batch_2的继续推理,将输入数据batch_2已推理得到的输出形符转换为形符索引值(tokenindex)形式存储在存储空间中,同时清空在第i轮推理中推理输入数据batch_2产生的更新键张量和更新值张量。由于tokenindex占用的存储空间极小,不会影响后续第二阶段对于输入数据batch_1的继续推理。95.类似的,在输入数据batch_x已推理得到的输出形符数量达到sx时,暂停对输入数据batch_x的继续推理,将输入数据batch_x已推理得到的输出形符转换为形符索引值(tokenindex)形式存储在存储空间中,同时清空在第i轮推理中推理输入数据batch_x产生的更新键张量和更新值张量。96.在第一阶段,第一批输入数据batch_1一直进行推理,当输入数据batch_2至输入数据batch_x都达到了各自对应的推理暂停阈值且被暂停后,第一阶段结束。97.例如,各批输入数据对应的推理暂停阈值可以不同,也可以相同。例如,若x=2,则各批输入数据对应的推理暂停阈值可以相同。例如,若x大于2,则在同一轮中进行推理的x批输入数据除第一批输入数据以外的其它x-1批输入数据对应的推理暂停阈值可以不同。98.例如,各批输入数据对应的推理暂停阈值与神经网络支持的最长输出形符序列的形符个数、神经网络支持的一批输入数据对应的输入文本最大长度、当前进行推理的输入数据元素的数量等有关。99.例如,响应于x=2,各批输入数据对应的推理暂停阈值相同且均为(l-2p)/3,其中,p为神经网络支持的一批输入数据对应的输入文本最大长度,l为所述神经网络支持的最长输出形符序列的形符个数与p之和,“/”表示除法。100.例如,以输入数据batch_2对应的推理暂停阈值s2为例,假设s2是所有推理暂停阈值中的最小值,在输入数据batch_2已推理得到的输出形符数量达到s2时,输入数据batch_1、输入数据batch_x等其它x-1批输入数据已推理得到的输出形符数量也均达到s2,此时,各批输入数据在推理过程中产生的更新键张量和更新值张量已经占满了全部存储空间,因此可以暂停输入数据batch_2的推理,清空输入数据batch_2产生的更新键张量和更新值张量,将输入数据batch_2已推理得到的输出形符以形符索引值形式存储在存储空间中。101.之后,继续对其它x-1批输入数据进行推理,清空输入数据batch_2产生的更新键张量和更新值张量所产生的可用存储空间,可用于存放其他x-1批输入数据在继续推理过程中产生的更新键张量和更新值张量,直到存储空间被再次占满。例如,此时其它x-1批输入数据已推理得到的输出形符数量均达到输入数据batch_3对应的推理暂停阈值s3(s3大于s2但小于其它推理暂停阈值),暂停对输入数据batch_3的推理,清空输入数据batch_3在推理过程中产生的更新键张量和更新值张量,继续对其它x-2批输入数据(除输入数据batch_2和输入数据batch_3以外的其它批输入数据)进行推理,清空输入数据batch_3产生的更新键张量和更新值张量所产生的可用存储空间,可用于存放其他x-2批输入数据在继续推理过程中产生的更新键张量和更新值张量。102.执行上述过程直到除第一批输入数据以外的x-1批输入数据都被暂停,第一阶段结束。103.例如,对x批输入数据同时进行推理,可以包括:响应于i大于1,针对x批输入数据中除一批完全未推理过的输入数据以外的其它x-1批输入数据:结合第i-1轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述其它x-1批输入数据进行推理。104.例如,在第一轮推理中,可以按照常规神经网络推理过程对x批输入数据进行推理,例如参考图1所述相关描述进行提示推理和形符推理。105.例如,在除第一轮推理以外的其它轮推理中,对于该轮推理中处理的一批完全未推理过的输入数据,也采用常规神经网络推理过程进行推理,这里不再赘述。针对x批输入数据中除一批完全未推理过的输入数据以外的其它x-1批输入数据,这些输入数据在上一轮或之前几轮推理中已执行了部分推理,且存储了已推理得到的输出形符,因此,可以结合之前已推理得到的输出形符,对该x-1批输入数据进行推理,加速整体推理过程。106.例如,在该轮推理中,可以将已推理得到的输出形符和原输入数据共同作为新的输入并输入神经网络进行处理。例如经过第一子网络后,所得到的语义特征可以包含已推理得到的输出形符的信息,在利用第二子网络进行形符推理时,可以直接推进到已推理得到的输出形符中的最后一个形符处开始推理,此时通过第一子网络得到的初始键张量和初始值张量的长度与该批输入数据对应的输入文本最大长度和已推理得到的输出形符的数量之和呈正比例关系。107.由此,在每一轮推理中,都会对多批输入数据进行处理,并且除第一批输入数据以外的其它x-1批输入数据也会进行部分推理,从而每轮推理中都会多执行其它x-1批输入数据的部分推理,整体上加速了推理进行。并且,权重载入时间是相同的,在第一阶段中由于同时对n2个输入数据元素进行推理,基本不会影响推理速度,且能够增加处理核的计算效率和利用率。108.关于结合之前已推理得到的输出形符,对该x-1批输入数据进行推理的具体过程可以参考后文中步骤s30的相关描述,这里不再赘述。109.例如,步骤s202可以包括:在第i轮推理的推理过程中的第二阶段,对第一批输入数据继续进行推理,直到完成第一批输入数据中全部输入数据元素的推理。例如,第一批输入数据包括在第i轮推理中全部推理完的n1个输入数据元素。110.在第一阶段,除第一批输入数据以外的其它x-1批输入数据均达到各自的推理暂停阈值且被暂停,在第二阶段,继续对第一批输入数据进行推理,直到第一批输入数据包括的n1个输入数据元素全部推理完成,由此完成第i轮推理。111.对于第i+1轮推理,其也可以包括第一阶段和第二阶段。112.例如,在第一阶段,首先确定x批输入数据作为在第i+1轮推理中进行推理的n2个输入数据元素。与第i轮推理类似,n2个输入数据元素可以包括在第i轮推理中没有推理完的n2-n1个输入数据元素,以及一批完全未推理过的输入数据(n1个输入数据元素)。例如,在第i+1轮推理中,确定第i轮推理中没有推理完的n2-n1个输入数据元素中的n1个输入数据元素作为第i+1轮推理需要推理完的第一批输入数据。113.之后,在第一阶段,以批为单位对n2个输入数据元素进行推理。114.与第i轮推理相似,对于n2个输入数据元素中的完全未推理过的一批输入数据,可以按照常规神经网络推理过程进行推理。对于在第i轮推理中已进行过部分推理的n2-n1个输入数据元素,结合第i轮推理中该n2-n1个输入数据元素的已推理得到的输出形符,对该n2-n1个输入数据元素进行推理。115.例如,步骤s30可以包括:获取在第i轮推理中,n2-n1个输入数据元素的已推理得到的输出形符,其中,n2-n1个输入数据元素的已推理得到的输出形符以形符索引值形式存储在存储空间中;以批为单位,对n2-n1个输入数据元素进行推理,其中,针对n2-n1个输入数据元素中的每个输入数据元素,将获取的输入数据元素已推理得到的输出形符和输入数据元素共同输入神经网络进行推理。116.例如,将获取的输入数据元素已推理得到的输出形符和输入数据元素共同输入神经网络进行推理,可以包括:将输入数据元素已推理得到的输出形符对应的形符索引值和输入数据元素对应的形符索引值进行拼接,将拼接结果输入神经网络进行推理。117.例如,以第二轮推理为例,n2-n1个输入数据元素包括第1轮推理中已进行过部分推理的输入数据batch_2至输入数据batch_x。例如,对于输入数据batch_2,在第一轮推理中已进行了s2步推理,也即输入数据batch_2中的每个输入数据元素都输出了s2个输出形符,并以形符索引值形式存储在存储空间中。118.从存储空间中提取每个输入数据元素对应的s2个输出形符对应的形符索引值,将s2个输出形符索引值和输入数据元素对应的形符索引值进行拼接,拼接结果作为新的输入数据元素,以批为单位将各个新的输入数据元素输入神经网络进行推理。119.例如,经过第一子网络后,所得到的语义特征可以包含已执行的s2步推理的信息,在利用第二子网络进行形符推理时,可以直接推进到已推理得到的输出形符中的最后一个形符处开始推理。120.例如,神经网络包括用于进行提示推理的第一子网络和用于进行形符推理的第二子网络。例如,提示推理包括利用第一子网络提取输入数据元素对应的语义特征,例如,形符推理包括基于提取的语义特征,结合自回归机制逐个预测输入数据元素对应的输出形符序列。关于提示推理和形符推理的具体过程可以参考前述神经网络的相关描述,这里不再赘述。121.例如,在通过第一子网络对n2-n1个输入数据元素进行提示推理的同时,通过第一子网络对一批完全未推理过的输入数据进行提示推理,以及在n2-n1个输入数据元素和一批完全未推理过的输入数据均完成提示推理后,同时开始对n2-n1个输入数据元素和一批完全未推理过的输入数据通过第二子网络进行形符推理。122.例如,仍以第二轮推理为例,将经过前述过程得到的拼接后的新的输入数据元素以批为单位输入第一子网络进行提示推理,得到各个新的输入数据元素对应的语义特征。同时,利用第一子网络对一批完全未推理过的输入数据(例如输入数据batch_x+1)进行提示推理,得到该批输入数据的语义特征。123.之后,在该n2-n1个输入数据元素和输入数据batch_x+1都执行完提示推理后,同时开始两者的形符推理。例如,对于该n2-n1个输入数据元素,可以利用包含已推理得到的输出形符信息的语义特征,直接将推理推进到已推理得到的输出形符中的最后一个形符,加速推理。124.例如,对于第i+1轮推理中处理的n2个输入数据元素中除第一批输入数据以外的其他x-1批输入数据,当在第i+1轮推理中推理得到的输出形符的数量达到对应的推理暂停阈值后暂停推理,具体过程如步骤s201的相关描述所述,这里不再赘述。125.之后,在第二阶段,继续对第i+1轮推理中的第一批输入数据进行推理,直到完成该第一批输入数据的全部推理,由此完成第i+1轮推理。126.如此重复上述过程,直到完成待处理数据的全部推理。127.例如,若i+1等于m,对于第m轮推理,在一些实施例中,可能已没有更多完全未推理过的输入数据需要推理,此时对于第m轮推理则可以不包括第一阶段,仅执行步骤s30,完成第i轮推理中未推理完的n2-n1个输入数据元素的全部推理。128.在本公开至少一实施例提供的数据处理方法中,在一轮推理的前期阶段,例如第一阶段,采用更大批尺寸,例如同时对多批输入数据进行推理,对于算力存在冗余的系统来说可以在这一部分推理中提高算力利用率,从而提高整体的推理效率;在一轮推理的后期阶段,例如第二阶段,降低批尺寸至n1,以能完成一批输入数据的全部推理。由此,每轮推理中充分利用系统算力,多执行了n2-n1个输入数据元素的部分推理,从而可以加速总体推理过程,提升系统计算效率和算力利用效率。129.图3为本公开一实施例提供的数据处理方法的执行过程示意图。130.例如,在图3所示的示例中,假设每批输入数据对应的批尺寸*(step_t+p)需满足由于存储空间大小导致的上限时批尺寸最大可取值为n1,step_t表示神经网络支持的最长输出形符序列的形符个数,p表示神经网络支持的一批输入数据对应的输入文本最大长度。每批输入数据的批尺寸为n1,也即每轮推理完成n1个输入数据元素的全部推理。131.例如,在图3的示例中,示出了通过m轮推理完成了输入数据batch_1、输入数据batch_2、输入数据batch_3、...、输入数据batch_m的全部推理,输入数据batch_1至输入数据batch_m的批尺寸均为n1,n2为n1的2倍,x=2,也即在第一阶段,同时对2批输入数据进行推理,在第二阶段,对1批输入数据进行推理。132.例如,执行该数据处理方法时所使用的神经网络可以参考前述图1的神经网络的结构及推理过程,这里不再赘述。133.在图3中,位于同一行的方框表示一个batch(一批输入数据)的推理过程,例如在第一轮推理中,上面一行的方框表示输入数据batch_2的推理过程,下面一行的方框表示输入数据batch_1的推理过程。134.例如,对于一个batch,其中的斜线方框部分表示由第一子网络完成的提示推理,剩余部分表示由第二子网络完成的形符推理,并且,剩余部分中的灰色方框表示已执行的推理,白色方框表示还未推理的部分。135.例如,对于一个batch,p表示神经网络支持的一批输入数据对应的输入文本最大长度,对于一批输入数据,若各个输入数据元素的长度不同,则通过填充将其都填充至最大长度p,具体过程如前所述,这里不再赘述;l表示完成一批输入数据的全部推理的最长推理步数,该最长推理步数正比与一轮推理的最后时刻更新键张量和更新值张量的长度,该最长推理步数l=p+step_t,step_t表示神经网络支持的最长输出形符序列的形符个数(也即形符推理的最长推理步数);s表示推理暂停阈值,在图3的示例中,输入数据batch_2至输入数据batch_m对应的推理暂停阈值均为s,表示在形符推理过程中当本轮推理得到的输出形符数量达到s时,暂停该批输入数据的推理。136.下面结合图3,具体说明本公开至少一实施例提供的数据处理方法的执行过程。137.在第一轮推理时,如图3所示,在第一阶段,从待处理数据中选择两个批尺寸均为n1的输入数据同时开始推理。例如,选择输入数据batch_1和输入数据batch_2作为第一阶段处理的n2个输入数据元素,其中选择输入数据batch_1作为第一轮推理中的第一批输入数据,也即在第一轮推理中,需要完成输入数据batch_1的全部推理。138.例如,在第一阶段,输入数据batch_1和输入数据batch_2各自进行推理,推理过程包括先执行p步的提示推理,基于提示推理生成的语义特征,进行形符推理,具体过程可以参考前述神经网络的相关描述。139.在形符推理过程中,更新键张量和更新值张量不断增长,占据的存储空间越来越多。例如,在输入数据batch_1和输入数据batch_2推理至第s步时(输出s个输出形符),达到了输入数据batch_2对应的推理暂停阈值,此时输入数据batch_1和输入数据batch_2的更新键张量和更新值张量已将存储空间占满,暂停输入数据batch_2的推理,存储输入数据batch_2已推理得到的输出形符,例如以形符索引值形式存储在存储空间中,清空输入数据batch_2在第一轮推理过程中产生的更新键张量和更新值张量,第一阶段结束。140.存储的输入数据batch_2已推理得到的输出形符对应的形符索引值所占用的空间极小,可以忽略不计,不影响第二阶段的推理中输入数据batch_1所产生的更新键张量和更新值张量的存储。141.在第二阶段,如图3所示,输入数据batch_2的推理暂停,输入数据batch_1的推理继续,直到完成输入数据batch_1中全部输入数据元素的推理,由此,完成第一轮推理。例如,完成第一轮推理后,可以释放输入数据batch_1的更新键张量和更新值张量占据的存储空间,以进行第二轮推理。142.在第一轮推理中,输入数据batch_1全部推理完,输入数据batch_2推理了s步。143.需要说明的是,这里,第一阶段和第二阶段是描述上的两个阶段,实际上推理过程并不需要在第一阶段停止,再在第二阶段重新启动,例如对于输入数据batch_1,其形符推理过程是连续的,暂停输入数据batch_2的推理的相关操作在输入数据batch_1执行第s+1步前完成即可。144.在第二轮推理时,如图3所示,在第一阶段,从待处理数据中选择一个批尺寸为n1的、完全未推理过的输入数据batch_3,以及第一轮推理中未推理完的输入数据batch_2开始推理。例如,选择输入数据batch_2和输入数据batch_3作为第一阶段处理的n2个输入数据元素,其中选择输入数据batch_2作为第二轮推理中的第一批输入数据,也即在第二轮推理中,需要完成输入数据batch_2的全部推理。145.例如,在第一阶段,输入数据batch_2和输入数据batch_3各自进行推理。146.如图3所示,在通过第一子网络对输入数据batch_2进行提示推理的同时,通过第一子网络对输入数据batch_3进行提示推理,在输入数据batch_2和输入数据batch_3均完成提示推理后,再同时开始对输入数据batch_2和输入数据batch_3通过第二子网络进行形符推理。147.对于输入数据batch_3,其提示推理与常规过程相同,这里不再赘述。148.对于输入数据batch_2,需要结合第一轮推理中已执行的s步推理的推理结果(已推理得到的输出形符),对输入数据batch_2进行推理。具体的,如步骤s30所述,对于输入数据batch_2中的每个输入数据元素,将已推理得到的输出形符对应的形符索引值和输入数据元素对应的形符索引值进行拼接,将拼接结果作为新的输入数据元素,通过神经网络对这些新的输入数据元素进行推理。对于新的输入数据元素的提示推理过程与常规的提示推理过程相同,但长度为(p+s),由此通过新的输入数据元素所得到的初始键张量和初始值张量包含了在第一轮推理过程中已执行的s步推理的推理结果的相关信息,在进行对输入数据batch_2的形符推理时,可以直接推进到第s步推理,无需重复第一轮推理中执行过的前s步的推理。149.在形符推理过程中,更新键张量和更新值张量不断增长,占据的存储空间越来越多,例如,在输入数据batch_3推理至第s步时(输出s个输出形符),达到了输入数据batch_3对应的推理暂停阈值,此时输入数据batch_2和输入数据batch_3的更新键张量和更新值张量已将存储空间占满,暂停输入数据batch_3的推理,存储输入数据batch_3已推理得到的输出形符,例如以形符索引值形式存储在存储空间中,清空输入数据batch_3在第二轮推理过程中产生的更新键张量和更新值张量,第一阶段结束。150.在第二阶段,如图3所示,输入数据batch_3的推理暂停,输入数据batch_2的推理继续,直到完成输入数据batch_2中全部输入数据元素的推理,由此,完成第二轮推理。151.在第二轮推理中,输入数据batch_2全部推理完,输入数据batch_3推理了s步。152.之后的第三轮推理至第m-1轮推理过程与第二轮推理类似,每轮推理将前一轮推理中已完成了s步形符推理的一批输入数据和一批全新的、完全未推理过的输入数据同时进行推理,已完成了s步形符推理的一批输入数据在本轮完成全部推理,完全未推理过的另一批输入数据在本轮完成s步形符推理,并释放该另一批输入数据的更新键张量和更新值张量,以形符索引值形式存储该另一批输入数据在本轮执行的s步形符推理的推理结果,具体过程不再赘述。153.对于第m轮推理,由于没有更多完全未推理过的输入数据,只需将第m-1轮推理中完成了s步形符推理的输入数据batch_m按照前述的如第二轮推理中batch_2的相关过程推理完毕即可。154.在上述实施例中,由于除去神经网络本身权重参数所占用的空间后,存储空间中的剩余部分基本都用来放置由推理产生的更新键张量和更新值张量,其体积与图中阴影或灰色方框部分表示的已完成推理部分成正比,而由图3中可以看出,除第一轮推理和第m轮推理以外的其它各轮推理的已完成推理部分是最多的。155.例如,以第二轮推理为例,对于需要输出总长为l的一批输入数据来说,在推理至输入数据batch_3的提示推理的第s步时,此时用满了所有存储空间,即与一批输入数据正常推理至l步时占用的最大存储空间大小一致,因此有3s+2p=l,即s的大小由式子s=(l-2p)/3确定。156.需要说明的是,在上述实施例中,以x=2为例描述了本公开至少一实施例提供的数据处理方法的具体执行过程,但对于x取更大的值的情况,其执行逻辑是相似的,这里不再赘述。157.在该实施例中,推理的前期阶段的批尺寸增大为2倍,也即同时对2*n1个输入数据元素进行推理,对于算力存在冗余的系统来说可以在这一部分推理中提高算力利用率,提高张量核的利用率,每轮推理中都多执行了s步推理,从而提高整体的推理效率;在推理的后期阶段,降低批尺寸至n1,以能完成一批输入数据的全部推理,实现推理加速。158.本公开至少一实施例还提供一种数据处理装置,图4为本公开至少一实施例提供的一种数据处理装置的示意性框图。159.如图4所示,数据处理装置200可以包括推理单元201和存储单元202。应当注意,图4所示的数据处理装置200的组件和结构只是示例性的,而非限制性的,根据需要,数据处理装置200也可以具有其他组件和结构。160.例如,这些模块可以通过硬件(例如电路)模块、软件模块或二者的任意组合等实现,以下实施例与此相同,不再赘述。例如,可以通过中央处理单元(cpu)、数据处理器(gpu)、张量处理器(tpu)、现场可编程逻辑门阵列(fpga)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元以及相应计算机指令来实现这些单元。161.例如,该数据处理装置可以为需要进行推理操作的处理器,例如该数据处理装置可以是中央处理器、多核处理器、图形处理器、通用图形处理器、数字信号处理器等通用处理器,或者ai处理器、张量处理器(tpu)、现场可编程逻辑门阵列(fpga)等专用处理器。例如,数据处理装置可以是一些gpu、ai加速器中专门提供的用于优化计算的部件,例如深度学习加速器等。当然,本公开不限于此,数据处理装置可以是任何需要执行数据处理方法的设备,以用于执行相应的推理操作。162.例如,推理单元201配置为通过神经网络对待处理数据进行推理操作。163.例如,推理操作包括:利用神经网络对待处理数据依次进行m轮推理。这里,待处理数据包括多批输入数据,每批输入数据包括n1个输入数据元素,在每轮推理中仅完成一批输入数据的全部推理,m和n1为大于1的正整数。164.例如,m轮推理包括依次顺序执行的第i轮推理和第i+1轮推理,i为正整数且小于m。165.例如,第i轮推理的推理过程包括:在第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理,在第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的n1个输入数据元素的全部推理;其中,第一阶段早于第二阶段,n2大于n1,属于同一批输入数据的n1个输入数据元素为n2个输入数据元素的子集;166.例如,第i+1轮推理的推理过程包括:结合第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对n2-n1个输入数据元素进行推理。167.例如,推理单元201包括神经网络203,神经网络203包括第一子网络和第二子网络。168.第一子网络配置为接收输入数据元素,结合自注意力机制提取输入数据元素对应的语义特征,其中,语义特征包括初始键张量和初始值张量。169.第二子网络配置为基于语义特征,结合自回归机制逐个预测输入数据元素对应的输出形符序列。170.例如,在结合自回归机制逐个预测输入数据元素对应的输出形符序列的过程中,根据已预测得到的输出形符不断更新初始键张量和初始值张量,得到更新键张量和更新值张量,更新键张量和更新值张量的长度和已预测得到的输入数据元素对应的输出形符的数量呈正比例关系。171.需要说明的是,推理单元201中的神经网络203与上述数据处理方法的实施例中的神经网络100的结构和功能相同,在此不再赘述。172.例如,存储单元202配置为存储神经网络的权重参数和在推理操作过程中产生的更新键张量和更新值张量。例如,存储单元202可以实现为内存等形式,例如hbm(highbandwidthmemory,高带宽存储器)等,本公开对存储单元的具体形式不作具体限制。173.例如,推理单元201可以包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的推理单元201的一些功能或全部功能。例如,推理单元201可以是专用硬件器件,用来实现如上所述的推理单元201的一些或全部功能。例如,推理单元201可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本技术实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。174.需要说明的是,推理单元201可以用于实现图1所示的步骤s10-s30。从而关于推理单元201能够实现的功能的具体说明可以参考上述数据处理方法的实施例中的步骤s10至步骤s30的相关描述,重复之处不再赘述。175.本公开至少一实施例提供的数据处理装置在推理步数较小、键张量和值张量占据存储空间较小的阶段(即第一阶段),采用更大的批尺寸(同时对更多输入数据元素进行推理)以提高计算效率,充分利用处理器中算子的算力;随着推理不断进行(即第二阶段),键张量和值张量逐步占据更大的存储空间,降低批尺寸以完成推理,从而加速总体推理过程,充分利用系统算力,提高推理效率和算力利用率。数据处理装置200可以实现与前述数据处理方法相似的技术效果,在此不再赘述。176.需要注意的是,在本公开的实施例中,该数据处理装置200可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路或单元的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。177.图5为本公开一实施例提供的一种电子设备的示意性框图。如图5所示,该电子设备300例如适于用来实施本公开实施例提供的数据处理方法。应当注意,图5所示的电子设备300的组件只是示例性的,而非限制性的,根据实际应用需要,该电子设备300还可以具有其他组件。178.如图5所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在存储器中的非暂时性计算机可读指令执行各种适当的动作和处理,以实现各种功能。179.例如,计算机可读指令被处理装置301运行时可以执行根据上述任一实施例所述的数据处理方法中的一个或多个步骤。需要说明的是,关于数据处理方法的处理过程的详细说明可以参考上述数据处理方法的实施例中的相关描述,重复之处不再赘述。180.例如,存储器可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)303和/或高速缓冲存储器(cache)等,例如,计算机可读指令可以从存储装置308加载到随机存取存储器(ram)303中以运行计算机可读指令。非易失性存储器例如可以包括只读存储器(rom)302、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如风格图像、以及应用程序使用和/或产生的各种数据等。181.例如,处理装置301、rom302以及ram303通过总线304彼此相连。输入/输出(i/o)接口305也连接至总线304。182.通常,以下装置可以连接至i/o接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘、闪存等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他电子设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备300,但应理解的是,并不要求实施或具备所有示出的装置,电子设备300可以替代地实施或具备更多或更少的装置。例如,处理器301可以控制电子设备300中的其它组件以执行期望的功能。处理器301可以是中央处理单元(cpu)、张量处理器(tpu)或者图形处理器gpu等具有数据处理能力和/或程序执行能力的器件。中央处理器(cpu)可以为x86或arm架构等。gpu可以单独地直接集成到主板上,或者内置于主板的北桥芯片中。gpu也可以内置于中央处理器(cpu)上183.图6为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图6所示,存储介质400可以为非瞬时性计算机可读存储介质,在存储介质400上可以非暂时性地存储一个或多个计算机可读指令401。例如,当计算机可读指令401由处理器执行时可以执行根据上文所述的数据处理方法。184.例如,该存储介质400可以应用于上述电子设备中,例如,该存储介质400可以包括电子设备中的存储器。185.例如,存储介质可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、闪存、或者上述存储介质的任意组合,也可以为其他适用的存储介质。186.例如,关于存储介质400的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。187.图7为本公开至少一实施例提供的一种硬件环境的示意图。本公开提供的电子设备可以应用在互联网系统。188.利用图7中提供的计算机系统可以实现本公开中涉及的数据处理装置和/或电子设备的功能。这类计算机系统可以包括个人电脑、笔记本电脑、平板电脑、手机、个人数码助理、智能眼镜、智能手表、智能指环、智能头盔及任何智能便携设备或可穿戴设备。本实施例中的特定系统利用功能框图解释了一个包含用户界面的硬件平台。这种计算机设备可以是一个通用目的的计算机设备,或一个有特定目的的计算机设备。两种计算机设备都可以被用于实现本实施例中的数据处理装置和/或电子设备。计算机系统可以包括实施当前描述的实现数据处理所需要的信息的任何组件。例如,计算机系统能够被计算机设备通过其硬件设备、软件程序、固件以及它们的组合所实现。为了方便起见,图7中只绘制了一台计算机设备,但是本实施例所描述的实现数据处理所需要的信息的相关计算机功能是可以以分布的方式、由一组相似的平台所实施的,分散计算机系统的处理负荷。189.如图7所示,计算机系统可以包括通信端口250,与之相连的是实现数据通信的网络,例如,计算机系统可以通过通信端口250发送和接收信息及数据,即通信端口250可以实现计算机系统与其他电子设备进行无线或有线通信以交换数据。计算机系统还可以包括一个处理器组220(即上面描述的处理器),用于执行程序指令。处理器组220可以由至少一个处理器(例如,cpu)组成。计算机系统可以包括一个内部通信总线210。计算机系统可以包括不同形式的程序储存单元以及数据储存单元(即上面描述的存储器或存储介质),例如硬盘270、只读存储器(rom)230、随机存取存储器(ram)240,能够用于存储计算机处理和/或通信使用的各种数据文件,以及处理器组220所执行的可能的程序指令。计算机系统还可以包括一个输入/输出组件260,输入/输出组件260用于实现计算机系统与其他组件(例如,用户界面280等)之间的输入/输出数据流。190.通常,以下装置可以连接输入/输出组件260:例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置;例如显示器(例如,lcd、oled显示器等)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信接口。191.虽然图7示出了具有各种装置的计算机系统,但应理解的是,并不要求计算机系统具备所有示出的装置,可以替代地,计算机系统可以具备更多或更少的装置。192.本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。193.此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。194.本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。195.本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。196.除非另有定义,这里使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。197.以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。当前第1页12当前第1页12
技术特征:
1.一种数据处理方法,包括:通过神经网络对待处理数据进行推理操作,所述推理操作包括:利用所述神经网络对所述待处理数据依次进行m轮推理,其中,所述待处理数据包括多批输入数据,每批输入数据包括n1个输入数据元素,在每轮推理中仅完成一批输入数据的全部推理,m和n1为大于1的正整数;所述m轮推理包括依次顺序执行的第i轮推理和第i+1轮推理,i为正整数且小于m,其中,所述第i轮推理的推理过程包括:在所述第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理,在所述第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的所述n1个输入数据元素的全部推理;其中,所述第一阶段早于所述第二阶段,n2大于n1,属于同一批输入数据的所述n1个输入数据元素为所述n2个输入数据元素的子集;所述第i+1轮推理的推理过程包括:结合所述第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述n2-n1个输入数据元素进行推理。2.根据权利要求1所述的数据处理方法,其中,所述神经网络包括第一子网络和第二子网络,所述第一子网络配置为接收输入数据元素,结合自注意力机制提取所述输入数据元素对应的语义特征,其中,所述语义特征包括初始键张量和初始值张量,所述第二子网络配置为基于所述语义特征,结合自回归机制逐个预测所述输入数据元素对应的输出形符序列,其中,在结合自回归机制逐个预测所述输入数据元素对应的输出形符序列的过程中,根据已预测得到的输出形符不断更新所述初始键张量和所述初始值张量,得到更新键张量和更新值张量,所述更新键张量和所述更新值张量的长度和已预测得到的所述输入数据元素对应的输出形符的数量呈正比例关系。3.根据权利要求2所述的数据处理方法,其中,n1由所述神经网络支持的最长输出形符序列的形符个数、所述神经网络支持的输入数据元素的最大长度、以及用于存储所述更新键张量和所述更新值张量的存储空间的大小确定。4.根据权利要求1所述的数据处理方法,其中,在所述第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理,包括:确定x批输入数据作为所述n2个输入数据元素,其中,所述x批输入数据包括第一批输入数据,所述第一批输入数据包括在所述第i轮推理中全部推理完的所述n1个输入数据元素,x为大于1的正整数;以批为单位同时对所述x批输入数据进行推理。5.根据权利要求4所述的数据处理方法,其中,确定x批输入数据作为所述n2个输入数据元素,包括:响应于i等于1,确定x批完全未推理过的输入数据作为所述x批输入数据;响应于i大于1:确定第i-1轮推理中未推理完的x-1批输入数据,以及一批完全未推理过的输入数据,
共同作为所述x批输入数据,其中,所述第一批输入数据从所述第i-1轮推理中未推理完的x-1批输入数据中确定。6.根据权利要求4所述的数据处理方法,其中,所述x批输入数据中除所述第一批输入数据以外的x-1批输入数据具有各自对应的推理暂停阈值,以批为单位同时对所述x批输入数据进行推理,包括:对所述x批输入数据同时进行推理,其中,对于所述x-1批输入数据中的任一批输入数据,在所述任一批输入数据已推理得到的输出形符数量达到对应的推理暂停阈值时,暂停所述任一批输入数据的推理。7.根据权利要求6所述的数据处理方法,其中,响应于x=2,推理暂停阈值为(l-2p)/3,其中,p为所述神经网络支持的一批输入数据对应的输入文本最大长度,l为所述神经网络支持的最长输出形符序列的形符个数与p之和,“/”表示除法。8.根据权利要求6所述的数据处理方法,其中,在所述任一批输入数据已推理得到的输出形符数量达到对应的推理暂停阈值时,暂停所述任一批输入数据的推理,包括:暂停所述任一批输入数据的推理;存储所述任一批输入数据已推理得到的输出形符;清空所述任一批输入数据在所述第i轮推理过程中产生的更新键张量和更新值张量。9.根据权利要求8所述的数据处理方法,其中,存储所述任一批输入数据已推理得到的输出形符,包括:将所述任一批输入数据已推理得到的输出形符中的每个输出形符转换为对应的形符索引值;存储所述任一批输入数据已推理得到的输出形符分别对应的形符索引值。10.根据权利要求6所述的数据处理方法,其中,对所述x批输入数据同时进行推理,包括:响应于i大于1,针对所述x批输入数据中除一批完全未推理过的输入数据以外的其它x-1批输入数据:结合第i-1轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述其它x-1批输入数据进行推理。11.根据权利要求1-10任一项所述的数据处理方法,其中,在所述第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的所述n1个输入数据元素的全部推理,包括:对第一批输入数据继续进行推理,直到完成所述第一批输入数据中全部输入数据元素的推理,其中,所述第一批输入数据包括在所述第i轮推理中全部推理完的所述n1个输入数据元素。12.根据权利要求1-10任一项所述的数据处理方法,其中,结合所述第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述n2-n1个输入数据元素进行推理,包括:获取在所述第i轮推理中,所述n2-n1个输入数据元素的已推理得到的输出形符,其中,所述n2-n1个输入数据元素的已推理得到的输出形符以形符索引值形式存储在存储空间
中;以批为单位,对所述n2-n1个输入数据元素进行推理,其中,针对所述n2-n1个输入数据元素中的每个输入数据元素,将获取的所述输入数据元素已推理得到的输出形符和所述输入数据元素共同输入所述神经网络进行推理。13.根据权利要求12所述的数据处理方法,其中,将获取的所述输入数据元素已推理得到的输出形符和所述输入数据元素共同输入所述神经网络进行推理,包括:将所述输入数据元素已推理得到的输出形符对应的形符索引值和所述输入数据元素对应的形符索引值进行拼接,将拼接结果输入所述神经网络进行推理。14.根据权利要求12所述的数据处理方法,其中,所述神经网络包括用于进行提示推理的第一子网络和用于进行形符推理的第二子网络,在通过所述第一子网络对所述n2-n1个输入数据元素进行提示推理的同时,通过所述第一子网络对一批完全未推理过的输入数据进行提示推理,以及在所述n2-n1个输入数据元素和所述一批完全未推理过的输入数据均完成所述提示推理后,同时开始对所述n2-n1个输入数据元素和所述一批完全未推理过的输入数据通过所述第二子网络进行形符推理。15.根据权利要求1-10任一项所述的数据处理方法,其中,n2为n1的整数倍。16.一种数据处理装置,包括:推理单元,配置为通过神经网络对待处理数据进行推理操作,其中,所述推理操作包括:利用所述神经网络对所述待处理数据依次进行m轮推理,其中,所述待处理数据包括多批输入数据,每批输入数据包括n1个输入数据元素,在每轮推理中仅完成一批输入数据的全部推理,m和n1为大于1的正整数;所述m轮推理包括依次顺序执行的第i轮推理和第i+1轮推理,i为正整数且小于m,其中,所述第i轮推理的推理过程包括:在所述第i轮推理的推理过程中的第一阶段,对n2个输入数据元素进行推理,在所述第i轮推理的推理过程中的第二阶段,对n1个输入数据元素进行推理,以完成属于同一批输入数据的所述n1个输入数据元素的全部推理;其中,所述第一阶段早于所述第二阶段,n2大于n1,属于同一批输入数据的所述n1个输入数据元素为所述n2个输入数据元素的子集;所述第i+1轮推理的推理过程包括:结合所述第i轮推理中未推理完的n2-n1个输入数据元素的已推理得到的输出形符,对所述n2-n1个输入数据元素进行推理。17.根据权利要求16所述的数据处理装置,还包括存储单元,所述存储单元配置为存储所述神经网络的权重参数和在所述推理操作过程中产生的更新键张量和更新值张量。18.一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时实现根据权利要求1-15任一项所述
的数据处理方法。19.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据权利要求1-15中任一项所述的数据处理方法。
技术总结
一种数据处理方法及装置、存储介质和电子设备,该数据处理方法包括:通过神经网络对待处理数据进行推理操作,推理操作包括:利用神经网络对待处理数据依次进行M轮推理;M轮推理包括依次顺序执行的第i轮推理和第i+1轮推理,其中,第i轮推理的推理过程包括:在第i轮推理的推理过程中的第一阶段,对N2个输入数据元素进行推理,在第i轮推理的推理过程中的第二阶段,对N1个输入数据元素进行推理;其中,第一阶段早于第二阶段,N2大于N1,属于同一批输入数据的N1个输入数据元素为N2个输入数据元素的子集;第i+1轮推理的推理过程包括:结合第i轮推理中未推理完的N2-N1个输入数据元素的已推理得到的输出形符,对N2-N1个输入数据元素进行推理。行推理。行推理。
技术研发人员:请求不公布姓名
受保护的技术使用者:上海壁仞智能科技有限公司
技术研发日:2023.05.10
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
