首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 人工神经网络 / 前馈神经网络 / 文本处理模型的运行方法、装置、电子设备、及存储介质

文本处理模型的运行方法、装置、电子设备、及存储介质

阅读:670发布:2020-05-14

专利汇可以提供文本处理模型的运行方法、装置、电子设备、及存储介质专利检索,专利查询,专利分析的服务。并且本公开 实施例 公开了一种文本处理模型的运行方法、装置、 电子 设备、及存储介质,所述文本处理模型包括至少一个 编码器 层和至少一个 解码器 层,其特征在于,所述方法包括:获取输入文本向量;将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量;将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量;其中,在所述编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个 基础 核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。本实施例的技术方案能够降低GPU的显存的读写次数,能够提高运行效率。,下面是文本处理模型的运行方法、装置、电子设备、及存储介质专利的具体信息内容。

1.一种文本处理模型的运行方法,所述文本处理模型包括至少一个编码器层和至少一个解码器层,其特征在于,包括:
获取输入文本向量;
将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量;
将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量;
其中,在所述编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。
2.根据权利要求1所述的方法,其特征在于:
所述基础核函数包括下述至少一个:矩阵行平均、矩阵行方差、以及矩阵点乘;
所述组合核函数包括标准化处理函数,包括矩阵行平均、矩阵行方差以及矩阵点乘。
3.根据权利要求1或2所述的方法,其特征在于,在所述编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理包括:
在所述编码器层和/或解码器层的数据计算过程中,分配线程组给调用的组合核函数,并从显存空间中读入数据;
通过线程组运行所述组合核函数,并利用线程组通信方式,将组合核函数计算过程的中间数据在寄存器中进行读写;
将所述组合核函数的最终输出数据写入显存空间中。
4.根据权利要求1所述的方法,其特征在于,在所述编码器层和/或解码器层的数据计算过程之前,还包括:
为所述编码器层和/或解码器层的至少一个计算模分配固定位置的显存空间;其中,所述显存空间的大小固定,且在无数据读写时保持为空置状态。
5.根据权利要求4所述的方法,其特征在于,至少两个存在分时计算关系的所述计算模块被分配的显存空间是复用的相同空间。
6.根据权利要求5所述的方法,其特征在于,复用相同显存空间的计算模块包括下述至少一组:
间隔的两个编码器层的自注意制模块。
7.根据权利要求4所述的方法,其特征在于,所述显存空间的大小由输入文本向量的最大值来确定。
8.根据权利要求1所述的方法,其特征在于,在所述编码器层和/或解码器层的数据计算过程中,还包括:
采用逻辑等价计算模块对数据进行处理。
9.根据权利要求8所述的方法,其特征在于,采用逻辑等价计算模块对数据进行处理包括:
采用拼接权重计算模块,对所述输入文本向量的序列向量进行矩阵计算,生成所述序列向量的拼接矩阵;
其中,所述拼接权重计算模块包括拼接在一起的查询权重计算矩阵、关键权重计算矩阵和数值权重计算矩阵;所述序列向量的拼接矩阵包括拼接在一起的查询权重矩阵、关键权重矩阵和数值权重矩阵。
10.根据权利要求8所述的方法,其特征在于,采用逻辑等价计算模块对数据进行处理包括:
在解码器层的数据处理过程中,通过softmax函数确定输出位的文本及文本可信概率;
其中,对于当前输出位,保留文本可信概率满足设定条件的部分文本及文本可信概率,以可变向量的形式,传输给下一输出位进行文本及文本可信概率的计算。
11.根据权利要求1-10任一所述的方法,其特征在于,所述文本处理模型包括顺序相连的多个编码器层和顺序相连的多个解码器层,最后一个编码器层和各个解码器层之间传输隐含层向量;每个所述编码器层至少包括自注意力机制层和前馈神经网络层;每个所述解码器层至少包括自注意力机制层、编解码注意力机制层和前馈神经网络层。
12.一种文本处理模型的运行装置,所述文本处理模型包括至少一个编码器层和至少一个解码器层,其特征在于,所述装置包括:
输入获取单元,用于获取输入文本向量;
编码器层处理单元,用于将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量;
解码器层处理单元,用于将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量;
其中,所述编码器层处理单元在所述编码器层和/或所述解码器层处理单元在所述解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一项所述方法的指令。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-11任一项所述方法的步骤。

说明书全文

文本处理模型的运行方法、装置、电子设备、及存储介质

技术领域

[0001] 本公开实施例涉及自然语言处理技术领域,具体涉及一种文本处理模型的运行方法、装置、电子设备、及存储介质。

背景技术

[0002] 在自然语言处理领域,通常采用序列到序列(seq2seq)模型进行处理,主要包括至少一个编码器和至少一个解码器。seq2seq模型的主要原理是:将源语句切分成词序列,输入编码器,输出隐含层的向量;隐含层向量作为解码器的输入,可在每个时间步生成一个目标词汇,后一个目标词汇是基于隐含层和前一个输出的目标词汇来生成的,最终目标词汇序列就构成了翻译的目标语句。
[0003] 通常,seq2seq模型进行自然语言处理时,模型运行的计算量非常大,以至于需要的处理时间较长,例如,基于Transformer模型在P4型号GPU上,翻译一句20个词的句子,大约需要1秒。这在动辄每秒几万翻译请求的业务场景中,无论从机器成本还是用户体验度,都是难以接受的。发明内容
[0004] 有鉴于此,本公开实施例提供一种文本处理模型的运行方法、装置、电子设备、及存储介质,以降低GPU显存读写频率,能够提高运行效率。
[0005] 本公开实施例的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开实施例的实践而习得。
[0006] 第一方面,本公开实施例提供了一种文本处理模型的运行方法,所述文本处理模型包括至少一个编码器层和至少一个解码器层,包括:
[0007] 获取输入文本向量;
[0008] 将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量;
[0009] 将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量;
[0010] 其中,在所述编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。
[0011] 第二方面,本公开实施例还提供了一种文本处理模型的运行装置,所述文本处理模型包括至少一个编码器层和至少一个解码器层,其特征在于,所述装置包括:
[0012] 输入获取单元,用于获取输入文本向量;
[0013] 编码器层处理单元,用于将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量;
[0014] 解码器层处理单元,用于将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量;
[0015] 其中,所述编码器层处理单元在所述编码器层和/或所述解码器层处理单元在所述解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。
[0016] 第三方面,本公开实施例还提供了一种电子设备,包括:
[0017] 一个或多个处理器;
[0018] 存储器,用于存储一个或多个程序;
[0019] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一项所述方法的指令。
[0020] 第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一项所述方法的步骤。
[0021] 本公开实施例通过将输入的文本向量输入至少一个编码器层进行处理,以形成隐含层向量;将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量,其中,在编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。本公开实施例能够大幅度降低GPU的显存的读写频率,能够提高运行效率。附图说明
[0022] 为了更清楚地说明本公开实施例中的技术方案,下面将对本公开实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本公开实施例中的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本公开实施例的内容和这些附图获得其他的附图。
[0023] 图1是本公开实施例提供的一种文本处理模型的运行方法的流程示意图;
[0024] 图2是本公开实施例提供的一种调用组合核函数处理数据的示例的流程示意图;
[0025] 图3是本公开实施例提供的一种Transformer模型示例的结构示意图;
[0026] 图4是本公开实施例提供的一种Transformer模型的编码器层和解码器层的简要内部结构图;
[0027] 图5是本公开实施例提供的一种Transformer模型的自注意机制层的三个向量的计算示意图;
[0028] 图6是本公开实施例提供的一种Transformer模型的自注意力机制层的计算过程示意图;
[0029] 图7是本公开实施例提供的一种Transformer模型的自注意力机制层的计算过程示意图;
[0030] 图8是本公开实施例提供的一种Transformer模型的自注意力机制层的计算过程示意图;
[0031] 图9是本公开实施例提供的一种Transformer模型的自注意力机制层的计算过程示意图;
[0032] 图10是本公开实施例提供的一种Transformer模型的自注意力机制层的计算过程示意图;
[0033] 图11是本公开实施例提供的另一种文本处理模型的运行方法的流程示意图;
[0034] 图12是本公开实施例提供的一种文本处理模型的运行装置的结构示意图;
[0035] 图13示出了适于用来实现本公开实施例的电子设备的结构示意图。

具体实施方式

[0036] 为使本公开实施例解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本公开实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本公开实施例中的一部分实施例,而不是全部的实施例。基于本公开实施例中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开实施例保护的范围。
[0037] 需要说明的是,本公开实施例中术语“系统”和“网络”在本文中常被可互换使用。本公开实施例中提到的“和/或”是指包括一个或更多个相关所列项目的任何和所有组合。
本公开的说明书权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。
[0038] 还需要说明是,本公开实施例中下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本公开实施例对此不作具体限制。
[0039] 本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0040] 下面结合附图并通过具体实施方式来进一步说明本公开实施例的技术方案。
[0041] 图1示出了本公开实施例提供的一种文本处理模型的运行方法的流程示意图,本实施例可适用于运行包含至少一个编码器层和至少一个解码器层的文本处理模型的情况,该方法可以由配置于电子设备中的文本处理模型的运行装置来执行,如图1所示,本实施例所述的文本处理模型的运行方法包括:
[0042] 在步骤S110中,获取输入文本向量。
[0043] 在步骤S120中,将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量,在各编码器层的数据计算过程中,调用组合核函数对数据进行处理。
[0044] 其中,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。
[0045] 在各编码器层的数据计算过程中,通常会涉及到调用核函数等计算步骤,例如调用矩阵行平均、矩阵行方差、以及矩阵点乘等核函数。一般来说,科学计算基础库中的核函数通常是细粒度的,若直接调用基础库中的核函数,需要频繁地进行显存读写。若本步骤在各编码器层的数据计算过程中,若将对多个基础库核函数的运算拼接组合形成组合核函数,例如包括矩阵行平均、矩阵行方差以及矩阵点乘等,调用这种组合核函数对数据进行处理,可以将中间计算值暂存于寄存器中,直接向显存写入各组件的最终结果,可以成倍降低显存读写次数。
[0046] 例如,若文本处理模型采用Transformer模型,其自注意力机制层的计算组件,需要依次组合基础库中的:矩阵行平均、矩阵行方差、矩阵点乘等核函数,产生至少5次整个矩阵的读写;若调用组合核函数的方式,通过线程组通信的方式,用一个组合核函数实现调用矩阵行平均、矩阵行方差、矩阵点乘等核函数的过程,则仅需要一次矩阵的读写,能将延迟降低约80%。
[0047] 需要说明的是,本步骤所述的组合核函数,是指根据顺序调用的至少两个基础核函数进行组合处理而得到的大粒度的核函数,其具体由哪些基础核函数组合得到,是根据各编码器层计算时实际涉及的基础核函数确定,本实施例对此并不作限定。
[0048] 在步骤S130中,将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量,在各解码器层的数据计算过程中,调用组合核函数对数据进行处理。
[0049] 同样地,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。
[0050] 与步骤S120相同的理由,为了降低显存读写次数,在各解码器层的数据计算过程中,也可根据需调用的基础核函数自制组合核函数,调用所述自制的组合核函数对数据进行处理,计算过程中,可将中间计算值暂存于寄存器中,直接向显存写入各组件的最终结果,以降低显存读写次数。
[0051] 需要说明的是,与现有技术中各计算过程直接调用基础库中的基础核函数相比,本实施例若在任一编码器层或任一解码器层的数据计算过程中,调用组合核函数对数据进行处理,都有降低显存读写次数的效果,都能够降低显存读写频率,提高运行效率。
[0052] 示例性地,图2是本公开实施例提供的一种调用组合核函数处理数据的示例的流程示意图,如图2所示,在所述编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理包括:
[0053] 在步骤S210中,在所述编码器层和/或解码器层的数据计算过程中,分配线程组给调用的组合核函数,并从显存空间中读入数据。
[0054] 在步骤S220中,通过线程组运行所述组合核函数,并利用线程组通信方式,将组合核函数计算过程的中间数据在寄存器中进行读写。
[0055] 在步骤S230中,将所述组合核函数的最终输出数据写入显存空间中。
[0056] 示例性地,下面以所述文本处理模型采用Transformer模型为例说明本实施例的技术方案,本实施例用于作为文本处理模型的Transformer模型包括顺序相连的多个编码器层和顺序相连的多个解码器层,最后一个编码器层和各个解码器层之间传输隐含层向量;每个所述编码器层至少包括自注意力机制层和前馈神经网络层;每个所述解码器层至少包括自注意力机制层、编解码注意力机制层和前馈神经网络层。
[0057] 以图3所示的采用包括6个编码器层和6个解码器层的Transformer模型为例,各编码器层和解码器层的内部简版结构如图4所示。
[0058] 如图4所示,对于编码器层,包含两层,一个自注意力机制层和一个前馈神经网络层,自注意力机制层能帮助当前节点不仅仅只关注当前的词,从而能获取到上下文的语义。
[0059] 解码器层也包含编码器层提到的两层网络,但是在这两层中间还有一层编解码注意力机制层,帮助当前节点获取到当前需要关注的重点内容。
[0060] 对于模型的内部细节,可参考图5。首先,模型需要对输入的数据进行一个embedding操作(类似w2c的操作,用于将自然语言向量映射为数字向量,即将文本向量映射为序列向量),embedding结束之后,输入到编码器层,自注意力机制层处理完数据后把数据送给前馈神经网络层,前馈神经网络层的计算可以并行,得到的输出会输入到下一个编码器层。若输入的文本向量为“Thinking”和“Machines”,进行embedding映射处理之后,分别得到序列向量X1和X2。
[0061] 对于自注意力机制层,其思想和注意力机制类似,但是自注意力机制层是Transformer用来将其他相关单词的“理解”转换成正在处理的单词的一种思路。
[0062] 首先,自注意力机制层会计算出三个新的向量,分别用于从三个侧面反映词的权重。例如,序列向量分别进行三个权重计算,把这三个向量分别称为Query(查询)、Key(关键)、Value(数值),这三个向量是用embedding向量(如序列向量X1和X2)与一个随机初始化矩阵(例如图5所示的矩阵WQ、WK和WV)相乘得到的结果(如图5所示的根据X1和矩阵WQ、WK和WVQ K V相乘得到的向量q1、k1和v1,根据X2和矩阵W、W和W相乘得到的向量q2、k2和v2)。
[0063] 例如,这个矩阵采用维度为(64,512)的随机初始化矩阵。注意第二个维度需要和embedding的维度一样,其值在BP的过程中会一直进行更新,得到的这三个向量的维度是64低于embedding维度的,其计算过程示意图可参考图5所示。
[0064] 然后,需要计算自注意力机制层的分数值,该分数值决定了当在某个位置编码一个词时,对输入句子的其他部分的关注程度。这个分数值的计算方法是Query与Key做点成,以图6为例,其中图中标记名称参见图5的标记名称,首先需要针对“Thinking”这个词,计算出其他词对于该词的一个分数值,首先是针对于自己本身即q1·k1,然后是针对于第二个词即q1·k2。其计算过程示意图可参考图6所示。如图6的示例所示q1与k1点乘结果Score为112,q1与k2点乘结果为112。
[0065] 接下来,把点乘的结果除以一个常数,例如,这个值一般是采用上文提到的矩阵的第一个维度的开方,例如采用64的开方8,当然也可以选择其他的值,然后把得到的结果做一个softmax的计算,用于确定输出位的文本及文本可信概率,得到的结果即是每个词对于当前位置的词的相关性大小,当然,当前位置的词相关性肯定会会很大。
[0066] 在图6的基础上,上述示例在本步骤计算结果如图7所示,其中图中标记名称参见图5-图6的标记名称,另外, 表示将上一步Score除以8以后开方。
[0067] 然后,把Value和softmax得到的值进行相乘,并相加,得到的结果即是自注意力机制层在当前节点的值。上述示例在本步骤计算结果如图8所示,其中图中标记名称参考图5-图7的标记名称,另外,Sum表示相加。
[0068] 需要说明的是,在实际的应用场景,为了提高计算速度,采用的是矩阵的方式,直接计算出Query,Key,Value的矩阵,上述示例在本步骤计算结果如图9所示。
[0069] 然后把embedding的值与三个矩阵直接相乘,把得到的新矩阵Q与K相乘,乘以一个常数,做softmax操作,最后乘上V矩阵,上述示例在计算softmax的过程如图10所示,其中图中标记参考图5-图9。
[0070] 本实施例所述的文本处理模型可采用多种类型的seq2seq模型,以所述文本处理模型采用Transformer模型为例,上述模型中,若采用现有技术,各编码器层和解码器层的自注意力机制层计算softmax的过程中均需要调用基础核函数,例如计算Query,Key,Value的矩阵时,均涉及到了矩阵相乘,均需调用矩阵相乘核函数,然后将各层的Query和各层Key点乘时需调用矩阵点乘和函数,最后求取各softmax值时需调用方差函数等。
[0071] 本实施例可根据上述各函的调用流程,预制组合核函数,以调用该组合核函数,能极大地减少对显存的读写次数,能够提高运行效率。
[0072] 进一步地,在上述基础之上,还可通过线程组运行所述组合核函数,并利用线程组通信方式,将组合核函数计算过程的中间数据在寄存器中进行读写,并将所述组合核函数的最终输出数据写入显存空间中,能进一步提高调用所述组合核函数的效率。
[0073] 本实施例通过将输入的文本向量输入至少一个编码器层进行处理,以形成隐含层向量;将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量,其中,在编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。能够大幅度降低显存读写频率,能够提高运行效率。
[0074] 图11示出了本公开实施例提供的另一种文本处理模型的运行方法的流程示意图,本实施例以前述实施例为基础,进行了改进优化。如图11所示,本实施例所述的文本处理模型的运行方法包括:
[0075] 在步骤S1110中,获取输入文本向量。
[0076] 在步骤S1120中,为所述编码器层至少一个计算模分配固定位置的显存空间,所述显存空间的大小固定,且在无数据读写时保持为空置状态。
[0077] 以运行图3和图4所述的模型为例,可为所述Transformer模型的第一编码器模型、第三编码器模型和第五编码器模型的自注意力机制模块分配固定位置的第一显存空间,为第二编码器模型、第四编码器模型和第六编码器模型的自注意力机制模块分配固定位置的第二显存空间,由于第一编码器模型、第三编码器模型和第五编码器模型的自注意力机制模块对显存的读写是顺次进行,并不会产生时间交叉的现象,因此上述三个模型的注意力机制模块可复用同一显存空间(即以上所述的第一显存空间)。同样原因,第二编码器模型、第四编码器模型和第六编码器模型的自注意力机制模块分配对显存的读写是顺次进行,并不会产生时间交叉的现象,也可复用同一显存空间(即以上所述的第二显存空间),各自注意力机制模块在对该显存空间读写操作结束之后,无需释放该显存空间,能够减少运行模型过程中释放显存空间和分配显存空间的处理次数,能进一步提高处理效率。
[0078] 为了使文本处理模型的文本处理范围更广,所分配的显存空间的大小由可输入文本向量的最大值来确定。其中,所述可输入文本向量的最大值可根据输入文本向量的历史最大值确定,这样,该文本处理模型能够处理长度不超过该最大值的文本向量。
[0079] 在步骤S1130中,将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量,在各编码器层的数据计算过程中,调用组合核函数对数据进行处理。
[0080] 在步骤S1140中,将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量。
[0081] 需要说明的是,解码器层包括至少两个存在分时计算关系的所述计算模块,也可为该至少两个计算模块分配固定位置的相同空间显存空间,并设置所述显存空间的大小固定,且在无数据读写时保持为空置状态,以使该至少两个计算模块复用该相同的显存空间。同样地,各模块在对该复用的显存空间读写操作结束之后,无需释放该复用的显存空间,能够减少运行文本处理模型过程中释放GPU的显存空间和分配GPU的显存空间的处理次数,能进一步提高处理效率。
[0082] 以文本处理模型采用Transformer模型为例,Transformer模型的自注意力机制层有一个被称为“MultiHead-attention”机制。于一实施例中,对运算进行逻辑等价,换成并发度更高的计算方式,在所述编码器层和/或解码器层的数据计算过程中,还可采用逻辑等价计算模块对数据进行处理,以提高并发度,能够进一步提高处理效率。
[0083] 例如,可采用拼接权重计算模块,对所述输入文本向量的序列向量进行矩阵计算,生成所述序列向量的拼接矩阵。例如,所述拼接权重计算模块包括拼接在一起的查询权重计算矩阵、关键权重计算矩阵和数值权重计算矩阵等,所述序列向量的拼接矩阵包括拼接在一起的查询权重矩阵、关键权重矩阵和数值权重矩阵等。
[0084] 采用逻辑等价计算模块对数据进行处理可包括:在解码器层的数据处理过程中,通过softmax函数确定输出位的文本及文本可信概率。其中,对于当前输出位,保留文本可信概率满足设定条件的部分文本及文本可信概率,以可变向量的形式,传输给下一输出位进行文本及文本可信概率的计算。
[0085] 上述方案改变了Transformer模型固有的计算过程,仅保证逻辑等价。如MultiHead-attention过程中,输入分别经过三个权重矩阵的映射计算得到query,key,value;进行逻辑等价后,可以将三个权重矩阵进行行拼接,输入在该拼接矩阵进行一次映射得到(query,key,value)的拼接矩阵,提升并发度。另外如,计算softmax过程中,仅保存排名前K个模型输出数值的概率值,用于后续的集束搜索计算,而不是将整个词向量的每个符号(token)的概率值全部计算,能够进一步提高处理效率。
[0086] 作为上述各图所示方法的实现,本申请提供了一种文本处理模型的运行装置的一个实施例,图12示出了本实施例提供的一种文本处理模型的运行装置的结构示意图,该装置实施例与图1至图11所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。如图12所示,本实施例所述的文本处理模型的运行装置包括输入获取单元1210、编码器层处理单元1220和解码器层处理单元1230。
[0087] 所述输入获取单元1210被配置为,用于获取输入文本向量。
[0088] 所述编码器层处理单元1220被配置为,用于将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量。
[0089] 所述解码器层处理单元1230被配置为,用于将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量。
[0090] 其中,所述编码器层处理单元在所述编码器层和/或所述解码器层处理单元在所述解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。
[0091] 进一步地,所述基础核函数包括下述至少一个:矩阵行平均、矩阵行方差、以及矩阵点乘;
[0092] 所述组合核函数包括标准化处理函数,包括矩阵行平均、矩阵行方差以及矩阵点乘。
[0093] 进一步地,所述编码器层处理单元1220在所述编码器层和/或所述解码器层处理单元1230在所述解码器层的数据计算过程中,调用组合核函数对数据进行处理包括:
[0094] 在所述编码器层和/或解码器层的数据计算过程中,分配线程组给调用的组合核函数,并从显存空间中读入数据;
[0095] 通过线程组运行所述组合核函数,并利用线程组通信方式,将组合核函数计算过程的中间数据在寄存器中进行读写;
[0096] 将所述组合核函数的最终输出数据写入显存空间中。
[0097] 于一实施例中,所述装置还包括显存空间配置单元(图12中未示出),用于在所述编码器层和/或解码器层的数据计算过程之前:为所述编码器层和/或解码器层的至少一个计算模块分配固定位置的显存空间;其中,所述显存空间的大小固定,且在无数据读写时保持为空置状态。
[0098] 进一步地,所述显存空间配置单元被配置为,还用于至少两个存在分时计算关系的所述计算模块被分配的显存空间是复用的相同空间。
[0099] 进一步地,所述显存空间配置单元中,复用相同显存空间的计算模块包括下述至少一组:间隔的两个编码器层的自注意力机制模块。
[0100] 于一实施例中,所述显存空间的大小由输入文本向量的最大值来确定。
[0101] 于一实施例中,在所述编码器层处理单元1220在所述编码器层和/或所述解码器层处理单元1230在所述解码器层的数据计算过程中,还包括采用逻辑等价计算模块对数据进行处理。
[0102] 进一步地,采用逻辑等价计算模块对数据进行处理包括:
[0103] 采用拼接权重计算模块,对所述输入文本向量的序列向量进行矩阵计算,生成所述序列向量的拼接矩阵;
[0104] 其中,所述拼接权重计算模块包括拼接在一起的查询权重计算矩阵、关键权重计算矩阵和数值权重计算矩阵;所述序列向量的拼接矩阵包括拼接在一起的查询权重矩阵、关键权重矩阵和数值权重矩阵。
[0105] 进一步地,采用逻辑等价计算模块对数据进行处理包括:
[0106] 在解码器层的数据处理过程中,通过softmax函数确定输出位的文本及文本可信概率;
[0107] 其中,对于当前输出位,保留文本可信概率满足设定条件的部分文本及文本可信概率,以可变向量的形式,传输给下一输出位进行文本及文本可信概率的计算。
[0108] 于一实施例中,所述文本处理模型包括顺序相连的多个编码器层和顺序相连的多个解码器层,最后一个编码器层和各个解码器层之间传输隐含层向量;每个所述编码器层至少包括自注意力机制层和前馈神经网络层;每个所述解码器层至少包括自注意力机制层、编解码注意力机制层和前馈神经网络层。
[0109] 本实施例提供的文本处理模型的运行装置可执行本公开方法实施例所提供的文本处理模型的运行方法,具备执行方法相应的功能模块和有益效果。
[0110] 下面参考图13,其示出了适于用来实现本公开实施例的电子设备1300的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图13示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0111] 如图13所示,电子设备1300可以包括处理装置(例如中央处理器、图形处理器等)1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储装置1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。在RAM 1303中,还存储有电子设备1300操作所需的各种程序和数据。处理装置1301、ROM 1302以及RAM 1303通过总线
1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
[0112] 通常,以下装置可以连接至I/O接口1305:包括例如触摸屏触摸板键盘鼠标、摄像头、麦克加速度计、陀螺仪等的输入装置1306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1307;包括例如磁带、硬盘等的存储装置1308;以及通信装置1309。通信装置1309可以允许电子设备1300与其他设备进行无线或有线通信以交换数据。虽然图13示出了具有各种装置的电子设备1300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0113] 特别地,根据本公开实施例的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开实施例的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1309从网络上被下载和安装,或者从存储装置1308被安装,或者从ROM 1302被安装。在该计算机程序被处理装置1301执行时,执行本公开实施例的方法中限定的上述功能。
[0114] 需要说明的是,本公开实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
[0115] 上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0116] 上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
[0117] 获取输入文本向量;
[0118] 将所述文本向量输入至少一个编码器层进行处理,以形成隐含层向量;
[0119] 将所述隐含层向量输入至少一个解码器层进行处理,以生成输出文本向量;
[0120] 其中,在所述编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理,所述组合核函数包括至少两个基础核函数,所述基础核函数用于完成数据的数学级别计算,所述组合核函数用于完成数据的功能级别计算。
[0121] 可以以一种或多种程序设计语言或其组合来编写用于执行本公开实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0122] 附图中的流程图和框图,图示了按照本公开实施例各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0123] 描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
[0124] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,所述基础核函数包括下述至少一个:矩阵行平均、矩阵行方差、以及矩阵点乘;
[0125] 所述组合核函数包括标准化处理函数,包括矩阵行平均、矩阵行方差以及矩阵点乘。
[0126] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,在所述编码器层和/或解码器层的数据计算过程中,调用组合核函数对数据进行处理包括:
[0127] 在所述编码器层和/或解码器层的数据计算过程中,分配线程组给调用的组合核函数,并从显存空间中读入数据;
[0128] 通过线程组运行所述组合核函数,并利用线程组通信方式,将组合核函数计算过程的中间数据在寄存器中进行读写;
[0129] 将所述组合核函数的最终输出数据写入显存空间中。
[0130] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,在所述编码器层和/或解码器层的数据计算过程之前,还包括:
[0131] 为所述编码器层和/或解码器层的至少一个计算模块分配固定位置的显存空间;其中,所述显存空间的大小固定,且在无数据读写时保持为空置状态。
[0132] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,至少两个存在分时计算关系的所述计算模块被分配的显存空间是复用的相同空间。
[0133] 根据本公开的一个或多个实施例,复用相同显存空间的计算模块包括下述至少一组:
[0134] 间隔的两个编码器层的自注意力机制模块。
[0135] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,所述显存空间的大小由输入文本向量的最大值来确定。
[0136] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,在所述编码器层和/或解码器层的数据计算过程中,还包括:
[0137] 采用逻辑等价计算模块对数据进行处理。
[0138] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,采用逻辑等价计算模块对数据进行处理包括:
[0139] 采用拼接权重计算模块,对所述输入文本向量的序列向量进行矩阵计算,生成所述序列向量的拼接矩阵;
[0140] 其中,所述拼接权重计算模块包括拼接在一起的查询权重计算矩阵、关键权重计算矩阵和数值权重计算矩阵;所述序列向量的拼接矩阵包括拼接在一起的查询权重矩阵、关键权重矩阵和数值权重矩阵。
[0141] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,采用逻辑等价计算模块对数据进行处理包括:
[0142] 在解码器层的数据处理过程中,通过softmax函数确定输出位的文本及文本可信概率;
[0143] 其中,对于当前输出位,保留文本可信概率满足设定条件的部分文本及文本可信概率,以可变向量的形式,传输给下一输出位进行文本及文本可信概率的计算。
[0144] 根据本公开的一个或多个实施例,所述文本处理模型的运行方法中,所述文本处理模型包括顺序相连的多个编码器层和顺序相连的多个解码器层,最后一个编码器层和各个解码器层之间传输隐含层向量;每个所述编码器层至少包括自注意力机制层和前馈神经网络层;每个所述解码器层至少包括自注意力机制层、编解码注意力机制层和前馈神经网络层。
[0145] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置中,所述基础核函数包括下述至少一个:矩阵行平均、矩阵行方差、以及矩阵点乘;
[0146] 所述组合核函数包括标准化处理函数,包括矩阵行平均、矩阵行方差以及矩阵点乘。
[0147] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置中,所述编码器层处理单元在所述编码器层和/或所述解码器层处理单元在所述解码器层的数据计算过程中,调用组合核函数对数据进行处理包括:
[0148] 在所述编码器层和/或解码器层的数据计算过程中,分配线程组给调用的组合核函数,并从显存空间中读入数据;
[0149] 通过线程组运行所述组合核函数,并利用线程组通信方式,将组合核函数计算过程的中间数据在寄存器中进行读写;
[0150] 将所述组合核函数的最终输出数据写入显存空间中。
[0151] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置还包括显存空间配置单元,用于在所述编码器层和/或解码器层的数据计算过程之前:
[0152] 为所述编码器层和/或解码器层的至少一个计算模块分配固定位置的显存空间;其中,所述显存空间的大小固定,且在无数据读写时保持为空置状态。
[0153] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置中,所述显存空间配置单元还用于:至少两个存在分时计算关系的所述计算模块被分配的显存空间是复用的相同空间。
[0154] 根据本公开的一个或多个实施例,所述显存空间配置单元中,复用相同显存空间的计算模块包括下述至少一组:
[0155] 间隔的两个编码器层的自注意力机制模块。
[0156] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置中,所述显存空间的大小由输入文本向量的最大值来确定。
[0157] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置中,在所述编码器层处理单元在所述编码器层和/或所述解码器层处理单元在所述解码器层的数据计算过程中,还包括采用逻辑等价计算模块对数据进行处理。
[0158] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置中,采用逻辑等价计算模块对数据进行处理包括:
[0159] 采用拼接权重计算模块,对所述输入文本向量的序列向量进行矩阵计算,生成所述序列向量的拼接矩阵;
[0160] 其中,所述拼接权重计算模块包括拼接在一起的查询权重计算矩阵、关键权重计算矩阵和数值权重计算矩阵;所述序列向量的拼接矩阵包括拼接在一起的查询权重矩阵、关键权重矩阵和数值权重矩阵。
[0161] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置中,采用逻辑等价计算模块对数据进行处理包括:
[0162] 在解码器层的数据处理过程中,通过softmax函数确定输出位的文本及文本可信概率;
[0163] 其中,对于当前输出位,保留文本可信概率满足设定条件的部分文本及文本可信概率,以可变向量的形式,传输给下一输出位进行文本及文本可信概率的计算。
[0164] 根据本公开的一个或多个实施例,所述文本处理模型的运行装置中,所述文本处理模型包括顺序相连的多个编码器层和顺序相连的多个解码器层,最后一个编码器层和各个解码器层之间传输隐含层向量;每个所述编码器层至少包括自注意力机制层和前馈神经网络层;每个所述解码器层至少包括自注意力机制层、编解码注意力机制层和前馈神经网络层。
[0165] 以上描述仅为本公开实施例的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈