CN111475775A - 图形处理器的数据处理方法、文本处理方法、装置和设备 - Google Patents
图形处理器的数据处理方法、文本处理方法、装置和设备 Download PDFInfo
- Publication number
- CN111475775A CN111475775A CN202010290379.XA CN202010290379A CN111475775A CN 111475775 A CN111475775 A CN 111475775A CN 202010290379 A CN202010290379 A CN 202010290379A CN 111475775 A CN111475775 A CN 111475775A
- Authority
- CN
- China
- Prior art keywords
- data elements
- data
- text
- mean
- group
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
本申请提供一种图形处理器的数据处理方法、文本处理方法、装置和设备,属于计算机技术领域。本申请根据一组数据元素的均值的平方与平方均值之间的差值确定该组数据元素的方差。由于根据一组数据元素确定其均值的同时也可以确定其平方均值,确定一组数据元素的均值与确定一组数据元素的平方均值的计算机指令之间不存在依赖关系,因此可以增加图形处理器计算的并行效率,提升均值和方差同时计算的执行速度,缩短数据归一化类操作处理的响应时长,缩短用户的等待时间。
Description
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种图形处理器的数据处理方法、文本处理方法、装置和设备。
背景技术
随着人工智能的迅速发展,机器学习和深度学习在为用户提供的各种服务的电子设备中的应用越来越广泛。由于机器学习和深度学习的数据处理的计算量非常庞大,因此需要采用计算速度相对较快的图形处理器对数据进行处理,以提高数据处理速度,缩短数据处理时长。在图形处理器进行机器学习或深度学习的过程中,通常需要对中间数据进行归一化处理,还可能会多次进行数据归一化处理。所以,数据归一化处理的执行速度是影响机器学习或深度学习的整体速度的重要因素。
因此,提高数据归一化处理的执行速度,是一个亟待解决的问题。
发明内容
为解决现有存在的技术问题,本申请实施例提供一种图形处理器的数据处理方法、文本处理方法、装置和设备,可以提升数据归一化处理的执行速度,缩短使用数据归一化处理的服务的响应时长。
为达到上述目的,本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种图形处理器的数据处理方法,包括:
图形处理器读取一组数据元素;
确定所述一组数据元素的均值、平方均值以及方差,所述方差是根据所述一组数据元素的平方均值与均值的平方之间的差值确定的;
根据所述均值和所述方差分别对所述一组数据元素中的每个数据元素进行归一化处理,得到所述一组数据元素对应的一组归一化值;
保存得到的一组归一化值。
第二方面,本申请实施例提供一种文本处理方法,包括:
获得目标文本中的各个目标文字组成的文字序列;
获得文本特征矩阵,所述文本特征矩阵包括多个二维特征矩阵,每个二维特征矩阵根据一个目标文字获得;多个二维特征矩阵按照所述文字序列的排列顺序形成所述文本特征矩阵;
采用第一方面的图形处理器的数据处理方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵,所述一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;
根据所述文本特征矩阵获得所述目标文本的语义向量;
根据所述语义向量获得所述目标文本关联的推荐文本。
第三方面,本申请实施例提供一种图形处理器的数据处理装置,包括:
数据读取单元,用于读取一组数据元素;
数据处理单元,用于确定所述一组数据元素的均值、平方均值以及方差,所述方差是根据所述一组数据元素的平方均值与均值的平方之间的差值确定的;根据所述均值和所述方差分别对所述一组数据元素中的每个数据元素进行归一化处理,得到所述一组数据元素对应的一组归一化值;
数据写入单元,用于保存得到的一组归一化值。
在一种可选的实施例中,所述一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;
所述二维特征矩阵是根据待处理的源数据生成的;所述待处理的源数据为文本数据。
第四方面,本申请实施例提供一种文本处理装置,包括:
文本处理单元,用于获得目标文本中的各个目标文字组成的文字序列;获得文本特征矩阵,所述文本特征矩阵包括多个二维特征矩阵,每个二维特征矩阵根据一个目标文字获得;多个二维特征矩阵按照所述文字序列的排列顺序形成所述文本特征矩阵;采用第一方面的方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵,所述一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;根据归一化处理后的文本特征矩阵获得所述目标文本的语义向量;
文本推荐单元,用于根据所述语义向量获得所述目标文本关联的推荐文本。
在一种可选的实施例中,所述文本处理单元,具体用于:通过应用层接收终端设备发送的目标文本,并获得所述目标文本中的各个目标文字组成的文字序列;通过接口层调用BERT模型的前部分网络层中的卷积运算模块对所述文本数据进行特征提取,得到文本特征矩阵;通过接口层调用BERT模型中的归一化处理模块,并通过归一化处理模块采用第一方面所述的方法分别对各个二维特征矩阵的各组数据元素进行归一化处理;以及通过所述接口层调用BERT模型的后部分网络层中的卷积运算模块对归一化处理后的文本特征矩阵进行处理,得到所述文本数据的语义向量;其中,所述前部分网络层为在所述归一化处理模块之前执行的网络层;所述后部分网络层为在所述归一化处理模块之后执行的网络层。
第五方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的图形处理器的数据处理或第二方面的文本处理方法。
第六方面,本申请实施例还提供一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现第一方面的图形处理器的数据处理方法或第二方面的文本处理方法。
本申请实施例的图形处理器的数据处理方法、文本处理方法、装置和设备,根据一组数据元素的均值的平方与平方均值之间的差值确定该组数据元素的方差。由于根据一组数据元素确定其均值的同时也可以确定其平方均值,确定一组数据元素的均值与确定一组数据元素的平方均值的计算机指令之间不存在依赖关系,因此可以增加图形处理器计算的并行效率,提升计算均值和方差的执行速度,缩短数据归一化类操作处理的响应时长,缩短用户的等待时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种图形处理器的数据处理方法的应用场景示意图;
图2为本申请实施例提供的一种图形处理器的数据处理方法的流程示意图;
图3为本申请实施例提供的一种文本特征矩阵的流程示意图;
图4为本申请实施例提供的一种文本处理方法的流程示意图;
图5为本申请实施例提供的一种文本处理方法的应用场景的软件结构框图;
图6为本申请实施例提供的一种数据处理方法与相关技术的效果对比图;
图7为本申请实施例提供的一种数据处理方法与相关技术相比的加速比的示意图;
图8为本申请实施例提供的另一种数据处理方法与相关技术的效果对比图;
图9为本申请实施例提供的另一种数据处理方法与相关技术相比的加速比的示意图;
图10为本申请实施例提供的一种图形处理器的数据处理装置的结构框图;
图11为本申请实施例提供的一种文本处理装置的结构框图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请的文件中涉及的术语“包括”和“具有”以及它们的变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)数据归一化:也可以称为数据标准化或数据规范化,指将原本分布区间较广的数据进行缩放,使其映射至较小的数值区间内。例如,将分布于[0,255]数值区间内的原始像素数据缩放至[0,1]的数值区间。
(2)规约求和操作:属于规约操作的一种,规约操作指数据处理中,计算机将多个数据转化为一个数据的过程,规约求和操作指计算机确定多个数据的和的过程。
(3)文本特征矩阵:基于机器学习或深度学习的卷积神经网络模型对由自然语言文本得到的文字序列进行特征提取,卷积神经网络模型内部的网络层输出的特征矩阵。
(4)二维特征矩阵:文本特征矩阵包括多个二维特征矩阵,每个二维特征矩阵根据自然语言文本中的一个目标文字获得,由该目标文字在所有通道上的特征组成。
(5)一组数据元素:指上述二维特征矩阵中的一行数据元素或一列数据元素。
下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例涉及人工智能(Artificial Intelligence,AI)和机器学习技术,基于人工智能中的自然语言处理(natural language processing,NLP)技术和机器学习(Machine Learning,ML)而设计。
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术主要包括计算机视觉技术、自然语言处理技术、以及机器学习/深度学习等几大方向。
随着人工智能技术研究和进步,人工智能在多个领域展开研究和应用,例如常见的智能家居、智能客服、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、机器人、智能医疗等,相信随着技术的发展,人工智能将在更多的领域得到应用,并发挥越来越重要的价值。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
由于机器学习和深度学习的数据处理量非常庞大,因此需要采用计算速度相对较快的图形处理器对数据进行处理,以提高数据处理速度,缩短数据处理时长。
在机器学习和深度学习的过程中,通常需要对数据进行归一化处理。例如,在神经网络模型的训练过程或使用过程中,为了提高神经网络模型的训练速度和训练效果,提高神经网络模型在使用过程中的有效性,可能在将样本数据输入神经网络模型之前,先对样本数据进行归一化处理,还可能对神经网络模型的部分或全部网络层输出的数据进行LayerNorm(层归一化)处理,不断调整神经网络模型的中间输出的数据,使得整个神经网络模型在各网络层的中间输出的数据更稳定。因此,在神经网络模型的训练过程或使用过程中,可能会多次调用LayerNorm算子,LayerNorm算子用于对每个样本在所有通道上的特征组成的二维特征矩阵进行归一化。
数据归一化处理过程通常先计算一组数据元素的均值和方差,然后根据均值和方差分别对一组数据元素中的每个数据元素进行归一化处理。相关技术的数据归一化处理方法在计算一组数据元素的方差时,先计算该组数据元素的均值E(x),然后将该组数据元素中的每个数据元素x减去该组数据元素的均值E(x),得到多个差值,再计算得到的多个差值的平方均值E(x-E(x)2),作为该组数据元素的方差Var(x),可以表示为Var(x)=E((x-E(x))2)。在程序代码中表现为:
_shared_float s_mean,s_variance
从显存中读取val
float sum1=blockReduceSum(val)
if(threadldx.x==0)then
s_mean=sum1/n
endif
_syncthreads();
float sum2=blockReduceSum((val-s_mean)^2)
if(threadldx.x==0)then
s_variance=rsqrtf(sum2/n+1e-6f)
endif
_syncthreads();
其中,val代表上述的数据元素x,n表示一组数据元素x的个数,sum1代表该组数据元素的和,s_mean代表该组数据元素的均值E(x),sum2代表各个数据元素x减去该组数据元素的均值E(x)得到的一组差值的平方和,s_variance代表该组数据元素的方差Var(x)。
从上述程序代码中可以看出,计算该组数据元素的方差s_variance需要依赖均值s_mean的计算结果。因此该过程需要两次独立的blockReduceSum(规约求和)操作,第一次blockReduceSum操作用于计算该组数据元素的和sum1,以确定该组元素的均值s_mean,第二次blockReduceSum操作用于计算各个数据元素val减去该组数据元素的均值s_mean得到的一组差值的平方和sum2,以确定该组数据元素的方差s_variance。
为了加快运算速度,图形处理器通常会并行执行一些操作,而在并行执行上述两次规约求和操作时,由于第二次规约求和操作需要依赖第一次规约求和操作的结果,需要使用图形处理器的共享内存来存储规约后的均值,为了保证所有线程能够正确获取共享内存处,写入均值到共享内存后需要一次所有线程的同步操作,同步操作非常影响计算效率。另外一次规约求和操作的指令之间存在依赖关系容易造成计算机指令的卡顿,降低指令的执行效率。
例如,图形处理器可以调用多个线程对一组数据元素进行归一化,每个线程对应处理该组数据元素中的一个数据元素。如果数组过长,每个线程可能需要处理多个元素,它们先在线程内部规约成一个元素,然后就也变成处理一个元素的过程。
如果多个线程仅执行一次规约操作,指令流水线执行效率不高。在计算机指令执行过程中具体表现为:在一次规约操作内会循环执行_shfl_xor_sync(线程间数据传输)指令和add(加和)指令,且_shfl_xor_sync指令的目的操作数和add指令的源操作数相同,即_shfl_xor_sync指令的目的操作数作为add指令的源操作数,add指令需要依赖_shfl_xor_sync指令的结果,两种指令之间存在依赖关系,在两种并发执行时,容易造成指令流水线的卡顿,降低指令的执行效率和数据归一化处理的执行速度。因此这种方法的数据归一化处理的执行速度较慢,会延长使用数据归一化处理的服务的响应时长,造成用户长时间的等待。
并且,在上述过程中,第二次规约求和操作需要依赖第一次规约求和操作的结果,由于需要使用共享内存来向所有线程同步规约结果,因此两次规约操作之间需要执行一次_syncthreads(全体线程同步)操作,用于在各个线程之间进行同步,以得到正确的均值和方差。即在两次规约求和操作中间,也需要一次信号同步操作,在进行信号同步时,会等待未完成操作的线程,因此也会造成很大的时间消耗。
基于此,本申请实施例针对数据元素进行归一化处理过程,提出一种数据处理方法,在该处理方法中,针对每一组待处理的数据元素,图形处理器从显存中读取一组数据元素,根据该组数据元素的均值的平方与平方均值之间的差值确定该组数据元素的方差,由于根据一组数据元素可以确定其均值,同样根据一组数据元素也可以确定其平方均值,确定一组数据元素的均值与确定一组数据元素的平方均值的计算机指令之间不存在依赖关系,因此可以并行执行,提升数据归一化处理的执行速度,缩短使用数据归一化处理的服务的响应时长,缩短用户的等待时间。
本申请实施例提出的数据处理方法应用于图形处理器中,可以在机器学习或深度学习过程中用于对卷积神经网络模型运行过程中的中间数据进行归一化处理,进而可以适用于基于机器学习或深度学习的数据处理场景,例如,文本识别、文本推荐、图像识别等。
为更好地理解本申请实施例提供的技术方案,下面对本申请实施例提供的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
图1示出了本申请实施例提供的图形处理器的数据处理方法的一种应用场景,参见图1所示,该应用场景中包括终端设备11和数据处理服务器12。终端设备11与数据处理服务器12之间可以通过有线连接方式或无线连接方式进行连接并传输数据。例如,终端设备11与数据处理服务器12可以通过数据线连接或者通过有线网络连接;终端设备11与数据处理服务器12也可以通过射频模块、蓝牙模块或者无线网络连接。
其中,终端设备11可以是手机、掌上电脑(Personal DigitalAssistant,PDA)、计算机、笔记本、平板电脑、智能穿戴式设备(例如智能手表和智能头盔)等。数据处理服务器12可以是一台服务器或由若干台服务器组成的服务器集群或云计算中心,或者是一个虚拟化平台,也可以是个人计算机、大中型计算机或计算机集群等。
在一种应用场景中,用户可以通过终端设备11向数据处理服务器12发送需要进行识别的图像或视频。例如,在对用户进行身份验证时,终端设备11将拍摄的用户照片或视频发送至数据处理服务器12。数据处理服务器12接收到终端设备11发送的图像或视频,通过图形处理器采用机器学习或深度学习获得的神经网络模型对图像或视频进行识别,然后,数据处理服务器12将识别结果返回至终端设备11。
在另一种应用场景中,用户可以通过终端设备11向数据处理服务器12发送需要进行识别的目标文本。例如,在电商的智能客服、情感分析、词条构建等应用场景中,终端设备11将用户输入的自然语言文本发送至数据处理服务器12。数据处理服务器12接收到终端设备11发送的目标文本,通过图形处理器采用机器学习或深度学习获得的神经网络模型对目标文本进行识别,然后,数据处理服务器12将识别结果或与识别结果相对应的关联文本返回至终端设备11。
在神经网络模型的运行过程中,当需要对数据进行归一化处理时,采用本申请提供的数据处理方法,可以提升数据归一化处理的执行速度,较快地获得识别结果并反馈给用户。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并行执行。
图2示出了本申请实施例提供的一种图形处理器的数据处理方法,该方法可以由图1中的数据处理服务器12执行,也可以由终端设备或其它电子设备执行。数据处理服务器12或其它电子设备中设置有图形处理器GPU,用于执行机器学习或深度学习过程。示例性地,下文以数据处理服务器12作为执行主体,说明图形处理器的数据处理方法的具体实现过程。如图2所示,该数据处理方法包括如下步骤:
步骤S201,读取一组数据元素。
上文中已经介绍,本申请实施例提供的数据处理方法可以用于在机器学习或深度学习过程中对数据进行归一化处理,可以对需要输入神经网络模型的数据进行归一化处理,也可以对神经网络模型的一个或多个网络层输出的数据进行归一化处理,不断调整神经网络模型的中间输出的数据。示例性地,本申请实施例提供的数据处理方法可以适用于LayerNorm算子,在神经网络模型的训练过程或使用过程中,可能会多次调用LayerNorm算子,用于对每个样本在所有通道上的特征组成的二维特征矩阵进行归一化。
例如,如图3所示,假设RNN(Recurrent Neural Network,循环神经网络)模型的一个隐藏层在某一个时间节点的输出为一个三维特征矩阵,其中,C代表通道轴,N代表样本轴,F为每个样本在每个通道上的特征数量。该三维特征矩阵作为RNN模型的中间输出,保存在显存中。显存为GPU对应的内存,GPU在执行机器学习或深度学习内部的数据处理操作时,从显存中读取数据。保存在显存中的上述三维特征矩阵由N个样本的二维特征矩阵,其中,灰色部分表示其中一个样本的二维特征矩阵。LayerNorm算子用于对每个样本的二维特征矩阵进行归一化,该归一化过程可以逐行进行,即以行为单位,逐一对二维特征矩阵中的每一行数据元素进行归一化。
因此,在一种实施例中,从显存读取的一组数据元素可以是二维特征矩阵中的一行数据元素,在另一种实施例中,从显存读取的一组数据元素也可以是二维特征矩阵中的一列数据元素,本申请实施例对此不作限制。二维特征矩阵可以是根据待处理的源数据生成的,待处理的源数据为需要输入神经网络模型的数据。例如,在文本识别应用场景中,待处理的源数据可以是文本数据,在图像识别应用场景中,待处理的源数据可以是图像的像素数据。
步骤S202,确定该组数据元素的均值、平方均值以及方差。
其中,该组数据元素的均值E(x)为该组数据元素的和除以该组数据元素的个数,该组数据元素的平方均值E(x2)为该组数据元素的平方和除以该组数据元素的个数,方差是根据该组数据元素的均值的平方与平方均值之间的差值确定的。在一种实施例中,方差Var(x)可以表示为:Var(x)=E(x2)-E2(x)。
由于根据一组数据元素可以确定其均值,同样根据一组数据元素也可以确定其平方均值,确定一组数据元素的均值与确定一组数据元素的平方均值的计算机指令之间不存在依赖关系。因此在一些实施例中,可以通过一次规约求和操作(blockReduceSum_2Elem)确定该组数据元素的和以及平方和,根据该组数据元素的和以及平方和确定该组数据元素的均值、平方均值以及方差。
只通过一次blockReduceSum_2Elem操作来确定该组数据元素的均值和方差,因此可以只需一次信号同步操作,与相关技术需要两次信号同步操作相比,可以节省一次信号同步操作的指令开销,同时减少时间消耗。在进行批量数据(包括多组数据元素)处理时,会多次循环执行本申请实施例的归一化方法,与相关技术相比,时间消耗会明显缩短。同时,由于确定一组数据元素的均值与确定一组数据元素的平方均值的计算机指令之间不再不存在依赖关系,blockReduceSum_2Elem操作内部的确定平方均值的指令不需要必须在确定均值的指令之后执行,操作内部的指令之间的排布顺序更灵活,可以说,与相关技术相比,blockReduceSum_2Elem操作内部的指令有更多的排布空间,可以减少指令流水线的卡顿,增加指令流水线的执行效率。
步骤S203,根据均值和方差分别对该组数据元素中的每个数据元素进行归一化处理,得到该组数据元素对应的一组归一化值。
在一些实施例中,对于该组数据元素中的每个数据元素x,可以将数据元素x减去均值E(x),然后再除以方差Var(x),将得到的商作为该数据元素x对应的归一化值res,可以表示为res=(x-E(x))/Var(x)。在另一些实施例中,对于该组数据元素中的每个数据元素x,可以将数据元素x减去均值E(x),然后再除以方差Var(x),将得到的商乘以系数γ再加上β的值,作为该数据元素x对应的归一化值res,可以表示为res=γ(x-E(x))/Var(x)+β。其中,γ和β均为预先设定的值。
得到该组数据元素中的每个数据元素对应的归一化值,即得到该组数据元素对应的一组归一化值。
步骤S204,保存得到的一组归一化值。
可以将每个数据元素对应的归一化值写入显存中该数据元素对应的存储位置。
本申请实施例的图形处理器的数据处理方法,根据一组数据元素的均值的平方与平方均值之间的差值确定该组数据元素的方差。由于根据一组数据元素可以确定其均值,同样根据一组数据元素也可以确定其平方均值,确定一组数据元素的均值与确定一组数据元素的平方均值的计算机指令之间不存在依赖关系,因此可以并行执行,提升数据归一化处理的执行速度,缩短使用数据归一化处理的服务的响应时长,缩短用户的等待时间。
在一些实施例中,为了进一步加快运算速度,图形处理器可以调用多个线程从显存中读取一组数据元素;其中,每个线程分别读取一个或多个数据元素。每个线程读取的数据元素的数量可以视一组数据元素的长度而定。对于一个线程读取多个数据元素的情况,经过线程对多个数据元素规约也可以转化为一个数据元素。多个线程之间可以互通,协同确定一组数据元素的和以及平方和。
例如,假设一组数据元素中包括6个数据元素,则可以通过6个线程从显存中读取这6个数据元素。在一种实施例中,第一个线程从显存中读取第一个数据元素,第二个线程从显存中读取第二个数据元素,然后第一个线程获取第二个线程读取的第二个数据元素,计算第一个数据元素和第二个数据元素的和;第三个线程从显存中读取第三个数据元素,第四个线程从显存中读取第四个数据元素,然后第三个线程获取第四个线程读取的第四个数据元素,计算第三个数据元素和第四个数据元素的和;第五个线程从显存中读取第五个数据元素,第六个线程从显存中读取第六个数据元素,然后第五个线程获取第六个线程读取的第六个数据元素,计算第五个数据元素和第六个数据元素的和。最后,可以由第一线程将第一个数据元素和第二个数据元素的和、第三个数据元素和第四个数据元素的和以及第五个数据元素和第六个数据元素的和进行加和运算,得到该组数据元素的和。在另一种实施例中,第一个线程从显存中读取第一个数据元素,第二个线程从显存中读取第二个数据元素,第三个线程从显存中读取第三个数据元素,然后第一个线程获取第二个线程读取的第二个数据元素和第三个线程读取的第三个数据元素,计算第一个数据元素、第二个数据元素以及第三数据元素的和;第四个线程从显存中读取第四个数据元素,第五个线程从显存中读取第五个数据元素,第六个线程从显存中读取第六个数据元素,然后第四个线程获取第五个线程读取的第五个数据元素和第六个线程读取的第六个数据元素,计算第四个数据元素、第五个数据元素以及第六个数据元素的和。最后,可以由第一线程将第一个数据元素、第二个数据元素以及第三个数据元素的和、第四个数据元素、第五个数据元素以及第六个数据元素的和再进行加和运算,得到该组数据元素的和。
该组数据元素的平方和的计算过程,与上述过程类似,每个线程读取一个数据元素之后,可以计算该数据元素的平方,然后通过与上述过程相同的加和过程,由第一线程得到该组数据元素的平方和。上述描述仅为举例说明多个线程之间的协同过程,在具体实施时,最终可以由第一线程确定该组数据元素的和以及平方和,也可以由其它线程确定该组数据元素的和以及平方和,还可以由一个线程确定该组数据元素的和,由另一个线程确定该组数据元素的平方和,本申请实施例对此不作限定。
确定该组数据元素的和以及平方和之后,可以由多个线程中的指定线程获得该组数据元素的均值、平方均值以及方差,其中均值为该组数据元素的和除以该组数据元素的个数,平方均值为该组数据元素的平方和除以该组数据元素的个数,方差是根据该组数据元素的均值的平方与平方均值之间的差值确定的。
本申请实施例提供的上述数据处理方法,在程序代码中表现为:
_shared_float s_mean,s_variance
从显存中读取val
float sum1,sum2=blockReduceSum_2Elem(val,val*val)
if(tid==0)then
s_mean=sum1/n
s_variance=rsqrtf(sum2/n-s_mean*s_mean+1e-6f)
endif
_syncthreads();
使用s_mean,s_variance,gemma,beta使计算res
将res写入显存。
其中,val代表数据元素x,n表示一组数据元素x的个数,sum1代表该组数据元素的和,s_mean代表该组数据元素的均值E(x),sum2代表该组数据元素的平方和E(x2),s_variance代表该组数据元素的方差Var(x),在该实施例中,Var(x)=E(x2)-E2(x)+1e-6f。e和f均为设定数值。gemma为上文中的系数γ,beta为上文中的值β。tid为线程的编码,从上述代码中可以看出,只有tid为0的线程需要计算该组数据元素的均值s_mean和该组数据元素的方差s_variance,tid为0的线程即为指定线程。如果线程的编码tid不为0,则无需计算均值s_mean和方差s_variance。
在本申请实施例中,多个线程在进行协同运算时,具有对应的共享内存,共享内存是每个线程都可以访问的内存区域。共享内存不同与显存,共享内存位于图形处理器的计算单元的内部,而显存是位于计算单元之外的存储区域,各个线程访问位于计算单元内部的共享内存所需的时间远远小于各个线程访问位于计算单元之外的显存的时间。
在归一化过程中,指定线程将得到的均值和方差保存至多个线程的共享内存中,并根据均值和方差对自己读取的数据元素进行归一化处理。通过_syncthreads信号同步操作,多个线程中除指定线程以外的每个线程从共享内存中获取均值和方差,并对自己读取的数据元素进行归一化处理,确定数据元素对应的归一化值。然后,每个线程分别将自己得到的归一化值写入显存中。从代码中可以看出,在该实施例中,数据元素val对应的归一化值res,可以表示为res=gemma*(val-s_mean)/s_variance+beta。
在本申请实施例中,只通过一次blockReduceSum_2Elem操作来确定该组数据元素的均值和方差,因此可以只需一次信号同步操作,与相关技术需要两次信号同步操作相比,可以节省一次信号同步操作的指令开销,并且减少时间消耗。同时,由于确定一组数据元素的均值与确定一组数据元素的平方均值的计算机指令之间不再不存在依赖关系,blockReduceSum_2Elem操作内部的确定平方均值的指令不需要必须在确定均值的指令之后执行,操作内部的指令之间的排布顺序更灵活,可以说,与相关技术相比,blockReduceSum_2Elem操作内部的指令有更多的排布空间,可以减少指令流水线的卡顿,增加指令流水线的执行效率。
本申请实施例提出的图形处理器的数据处理方法可以适用于基于机器学习或深度学习的数据处理场景,例如,文本识别或图像识别等场景,也可以应用于卷积神经网络模型的训练过程中。
在一种实施例中,上述的数据处理方法可以用于自然语言处理技术中,用于对自然语言文本进行处理。自然语言处理技术,是计算机科学领域与人工智能领域中的一个重要方向。其研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
文本处理是自然语言处理技术中的主要过程,可以广泛应用于多种应用场景,例如,在电商的智能客服应用场景中,通过对用户发送的自然语言文本进行处理,将自然语言文本转换为机器可以理解的数字化语义向量,根据得到的数字化语义向量自动回复用户;在情感分析等应用场景中,通过对用户发送的自然语言文本进行处理,将自然语言文本转换为机器可以理解的数字化语义向量,根据得到的数字化语义向量对用户的情感进行分类。在网络论坛等词条构建领域,通过识别文本的语义可以构建与其相关的词条等。
具体地说,数据处理服务器可以通过如图5所示的应用层接收终端设备发送的文本数据,文本数据可以是用户通过终端设备上传的自然语言文本。应用层接收到文本数据之后,由图形处理器对文本数据进行处理。图形处理器可以通过BERT模型对文本数据进行处理,得到文本数据对应的语义向量,该语义向量为计算机可读数据,计算机可以根据文本数据的语义向量做出反馈。通过BERT模型对文本数据进行处理包括:通过接口层调用BERT模型的前部分网络层中的卷积运算模块对文本数据进行特征提取,得到文本特征矩阵;文本特征矩阵包括多个二维特征矩阵。通过接口层调用BERT模型中的归一化处理模块,并通过归一化处理模块采用上述实施例提供的数据处理方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵,其中,各组数据元素中的每一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素。通过接口层调用BERT模型的后部分网络层中的卷积运算模块对归一化处理后的文本特征矩阵进行处理,得到所述文本数据的语义向量。上述的前部分网络层为在归一化处理模块之前执行的网络层,后部分网络层为在归一化处理模块之后执行的网络层。
与上述数据处理方法基于相同的发明构思,本申请实施例还提供了一种文本处理方法。该文本处理方法可以由图1中的数据处理服务器12执行,也可以由终端设备或其它电子设备执行。示例性地,下文以数据处理服务器12作为执行主体,说明文本处理方法的具体实现过程。图4示出了本申请实施例提供的一种文本处理方法的流程图,如图4所示,该文本处理方法包括如下步骤:
步骤S401,获得目标文本中的各个目标文字组成的文字序列。
目标文本可以是用户通过终端设备上传的或者通过其它方式获取的自然语言文本。数据处理服务器接收目标文本后,由数据处理服务器中的图形处理器对目标文本进行处理。
具体地,获取目标文本之后,可以先对目标文本进行分词处理,得到多个词语,例如,可以采用Jieba分词方法或其它通用分词方法对目标文本进行分词处理,得到目标文本所包括的多个词语,其中一些词语可以由单个文字组成,另一些词语可以由多个文字组成。
经分词处理后得到的词语中可能既包括具有实际意义的实词,如名词、动词、形容词等,也包括没有实际意义的虚词,如介词、连词、语气词、助词、叹词等。例如,词语“的”并没有实际意义,为虚词,在计算机领域,这些虚词被称为停用词,忽略这些停用词后,整个文本的语义并不会受到影响。因此,在一些实施例中,可以去除经分词得到的多个词语中的停用词,将剩余的具有实际意义的词语作为目标词语,目标词语中包含的文字称为目标文字。需要说明的是,在另一些实施例中,也可以不剔除停用词,将分词得到的所有词语均作为目标词语;或者,一些目标文本中可能并不包含停用词,因此也将分词得到的所有词语均作为目标词语。
将包含多个文字的目标词语拆分为单个目标文字,各个目标文字安装其在目标文本中的顺序组成文字序列。
步骤S402,获得文本特征矩阵。
具体地,可以对目标文本中的各个目标文字组成的文字序列进行操作获得文本特征矩阵。文本特征矩阵可以是一个多维张量,或者说是一种高维语义向量表示,其可用于文本分类和文本生成等任务;通过特征提取方式可以获得文本特征矩阵。例如,可以通过卷积神经网络模型对文字序列进行处理,该卷积神经网络模型可以是RNN模型、Transformer模型或BERT(Bidirectional Encoder Representations from Transformers,Transformer的双向编码器表示)模型,也可以是其它网络模型。其中,Transformer模型是一种基于注意力机制的语言模型,BERT模型是基于Transformer模型的自然语言处理模型。
卷积神经网络模型包括多个网络层,将文字序列输入卷积神经网络模型,卷积神经网络模型中的一个或多个特定网络层会输出文本特征矩阵,并将输出的文本特征矩阵保存在显存中。
文本特征矩阵可以是如图3所示的三维特征矩阵,文本特征矩阵包括多个二维特征矩阵,每个二维特征矩阵根据一个目标文字获得,多个二维特征矩阵按照所述文字序列的排列顺序形成文本特征矩阵。
步骤S403,采用上述实施例中提供的数据处理方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵。
对于文本特征矩阵中的每一个二维特征矩阵,均执行如下操作:
采用上述实施例中提供的数据处理方法对该二维特征矩阵中的每一组数据元素进行归一化处理,其中,一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素。因此会多次循环执行上述数据归一化处理过程。
归一化处理可以是LayerNorm处理,以BERT模型为例,LayerNorm算子是BERT模型中的一个重要算子,一个BERT encoder(编码器)推理计算过程需要调用三次LayerNorm算子,且每次调用均会多次循环执行LayerNorm计算过程。因此,如果LayerNorm算子在GPU上运行时间过长,会导致BERT模型的整体推理任务效率低下。采用本申请实施例提供的数据处理方法执行LayerNorm计算过程,可以提高LayerNorm的执行效率,明显缩短时间消耗,提高BERT模型的整体效率。
步骤S404,根据归一化处理后的文本特征矩阵获得目标文本的语义向量。
根据通过对归一化处理后的文本特征矩阵进行进一步特征提取操作可以获得所述目标文本的语义向量;卷积神经网络模型中连接在特定网络层之后的网络层将对归一化处理后的文本特征矩阵进行后续操作,最终获得目标文本的语义向量。
步骤S405,根据获得的语义向量获得目标文本关联的推荐文本。
例如,数据处理服务器中保存有与不同语义向量对应的推荐文本,得到目标文本的语义向量之后,数据处理服务器可以获取与目标文本的语义向量对应的推荐文本,并输出推荐文本,如将该推荐文本反馈给用户。
示例性地,在本申请实施例的一种应用场景中,数据处理服务器侧的推理引擎采用BERT模型对目标文本进行处理,其架构如图5所示,该推理服务引擎是工具性软件,可以对使用BERT模型进行推理服务的即时通信应用进行加速。上述的推理引擎可以依托于不同型号的图形处理器执行。
如图5所示,在一些实施例中,最上层的应用层可以是一个在即时通信应用中使用的智能对话机器人或文本推荐应用等等,这些应用的共同特点是都采用BERT模型进行线上推理。比如智能对话机器人,需要BERT模型对输入的用户问题(目标文本)进行相似问题改写;文本推荐系统,使用BERT模型生成文本的语义特征,再根据这些特征确定推荐结果。接口层为即BERT加速引擎锁提供的调用接口,可以是C++或者Python的形式供上层应用调用一个BERT模型中的推理函数。算子层包括所有需要实现一个BERT模型运算过程中的算子。BERT模型是一个深度学习模型,它由若干个网络层组成,每一个网络层可以分解成若干个算子,比如矩阵乘法(MatMul)算子;激活函数算子,如Activation算子,Softmax算子;以及LayerNorm算子等等。本申请实施例提供的LayerNorm算子的数据处理方法正是对算子层的LayerNorm算子在图形处理器上的实现进行优化,使之不会成为整个BERT模型推理计算的瓶颈。
具体地说,数据处理服务器可以通过应用层接收终端设备发送的目标文本,并采用上文中记载的方法获得目标文本中的各个目标文字组成的文字序列。应用层接收到文字序列之后,由图形处理器对文字序列进行处理。图形处理器可以通过BERT模型对文字序列进行处理,得到文字序列对应的语义向量,该语义向量为计算机可读数据,计算机可以根据文本数据的语义向量进行文本推荐等后续操作。
通过BERT模型对文本数据进行处理包括:图形处理器通过接口层调用BERT模型的前部分网络层中的卷积运算模块(如上述的MatMul算子或Activation算子等)对文本数据进行特征提取,得到文本特征矩阵。文本特征矩阵包括多个二维特征矩阵,每个二维特征矩阵根据一个目标文字获得,多个二维特征矩阵按照文字序列的排列顺序形成文本特征矩阵。通过接口层调用BERT模型中的归一化处理模块(如LayerNorm算子),并通过归一化处理模块采用上述实施例提供的数据处理方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵,其中,各组数据元素中的每一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素。然后,再通过接口层调用BERT模型的后部分网络层中的卷积运算模块(如Activation算子或Softmax算子等)对归一化处理后的文本特征矩阵进行处理,得到目标文本的语义向量。上述的前部分网络层为在归一化处理模块之前执行的网络层,后部分网络层为在归一化处理模块之后执行的网络层。
数据处理服务器中保存有与不同语义向量对应的推荐文本,得到目标文本的语义向量之后,数据处理服务器可以获取与目标文本的语义向量对应的推荐文本,并将该推荐文本反馈给用户。
通过本申请实施例提供的LayerNorm算子的执行方法,可以加速BERT模型的线上推理速度,降低线上服务的响应延迟。比如对于智能机器人系统,用户在通过终端设备向智能机器人发问后,很快就能得到答复,减少用户的等待时间。
除以上应用场景外,本申请实施例也适用于自然语言处理中词向量化构建及文本语义识别的其它相关应用场景,如电子商务的智能客服、问答系统、情感分析等,除此之外,本申请实施例提供的数据处理方法还可以应用在卷积神经网络模型的循环过程中。本申请实施例对应用场景不作具体限定。
为了测试本申请实施例提供的图形处理器的数据处理方法应用在卷积神经网络模型中的提速效果,分别在两种不同型号的GPU芯片上进行试验,运行采用本申请实施例提供的LayerNorm算子的BERT模型与采用相关技术的LayerNorm算子的BERT模型,对二者的运行速度进行比较。
试验一:在Tesla M40(GPU型号)上,分别将序列长度(seq length)在10~500之间的文字序列作为BERT模型的输入数据,在输入批次batch=1,每批次输入数据的数量size=20的情况下,测试本申请实施例的BERT模型与相关技术的BERT模型的推理计算的吞吐量,吞吐量为模型每秒钟处理的输入数据的量,得到的二者的运行速度对比效果如图6和图7所示。
从图6中可以看出,无论序列长度大小,本申请实施例的BERT模型的吞吐量均大于相关技术的BERT模型的吞吐量。从图7中可以看出,本申请实施例的BERT模型与相关技术的BERT模型相比,可以提速1.42~3.14倍。并且,序列长度越长,本申请实施例的BERT模型的提速效果越明显。
试验二:在Tesla P40(GPU型号)上,分别将序列长度在10~500之间的文字序列作为BERT模型的输入数据,在batch=1,size=20的情况下,测试本申请实施例的BERT模型与相关技术的BERT模型的推理计算的吞吐量,吞吐量为模型每秒钟处理的输入数据的量,得到的二者的运行速度对比效果如图8和图9所示。
从图8和图9中可以看出,无论序列长度大小,本申请实施例的BERT模型的吞吐量均大于相关技术的BERT模型的吞吐量,本申请实施例的BERT模型与相关技术的BERT模型相比,可以提速1.27~1.48倍。并且,序列长度越长,本申请实施例的BERT模型的提速效果越明显。
与上述图形处理器的数据处理方法的实施例相对应地,本申请实施例还提供了一种图形处理器的数据处理装置。图10为本申请实施例的提供的图形处理器的数据处理装置的结构示意图;如图10所示,该文本处理装置包括数据读取单元101、数据处理单元102和数据写入单元103。
其中,数据读取单元101,用于从显存中读取一组数据元素;
数据处理单元102,用于确定一组数据元素的均值、平方均值以及方差,方差是根据一组数据元素的平方均值与均值的平方之间的差值确定的;根据均值和方差分别对一组数据元素中的每个数据元素进行归一化处理,得到一组数据元素对应的一组归一化值;
数据写入单元103,用于将得到的一组归一化值写入显存中。
在一种可选的实施例中,数据处理单元102,具体用于:
通过一次规约求和操作确定一组数据元素的和以及平方和;
根据一组数据元素的和以及平方和确定一组数据元素的均值、平方均值以及方差,均值为一组数据元素的和除以一组数据元素的个数,平方均值为一组数据元素的平方和除以一组数据元素的个数。
在一种可选的实施例中,数据读取单元101,具体用于:调用多个线程从显存中读取一组数据元素;其中,每个线程分别读取一个或多个数据元素;
数据处理单元102,具体用于:通过多个线程协同确定一组数据元素的和以及平方和;通过多个线程中的指定线程获得均值、平方均值以及方差,均值为一组数据元素的和除以一组数据元素的个数,平方均值为一组数据元素的平方和除以一组数据元素的个数;通过指定线程将得到的均值和方差保存至多个线程的共享内存中,并根据均值和方差对自己读取的数据元素进行归一化处理;
多个线程中除指定线程以外的每个线程从共享内存中获取均值和方差,并对自己读取的数据元素进行归一化处理;
数据写入单元103,具体用于:通过每个线程分别将自己得到的归一化值写入显存中。
在一种可选的实施例中,一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;
二维特征矩阵是根据待处理的源数据生成的。
在一种可选的实施例中,待处理的源数据为文本数据。
本申请实施例的图形处理器的数据处理装置,根据一组数据元素的均值的平方与平方均值之间的差值确定该组数据元素的方差。由于根据一组数据元素可以确定其均值,同样根据一组数据元素也可以确定其平方均值,确定一组数据元素的均值与确定一组数据元素的平方均值的计算机指令之间不存在依赖关系,因此可以并行执行,提升数据归一化处理的执行速度,缩短使用数据归一化处理的服务的响应时长,缩短用户的等待时间。
与上述文本处理方法的实施例相对应地,本申请实施例还提供了一种文本处理装置。图11为本申请实施例的提供的文本处理装置的结构示意图;如图11所示,该文本处理装置包括文本处理单元111和文本推荐单元112。
其中,文本处理单元111,用于获得目标文本中的各个目标文字组成的文字序列;获得文本特征矩阵,文本特征矩阵包括多个二维特征矩阵,每个二维特征矩阵根据一个目标文字获得;多个二维特征矩阵按照文字序列的排列顺序形成文本特征矩阵;采用上述实施例中的图形处理器的数据处理方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵,一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;根据归一化处理后的文本特征矩阵获得目标文本的语义向量;
文本推荐单元112,用于根据语义向量获得目标文本关联的推荐文本。
在一种可选的实施例中,文本处理单元111,具体可以用于:通过应用层接收终端设备发送的目标文本,并获得目标文本中的各个目标文字组成的文字序列;通过接口层调用BERT模型的前部分网络层中的卷积运算模块对所述文本数据进行特征提取,得到文本特征矩阵;通过接口层调用BERT模型中的归一化处理模块,并通过归一化处理模块采用上述实施例提供的数据处理方法分别对各个二维特征矩阵的各组数据元素进行归一化处理;以及通过接口层调用BERT模型的后部分网络层中的卷积运算模块对归一化处理后的文本特征矩阵进行处理,得到所述文本数据的语义向量;其中,前部分网络层为在归一化处理模块之前执行的网络层;后部分网络层为在归一化处理模块之后执行的网络层。
本申请实施例提供的文本处理装置,可以提高文本推荐服务的响应速度,缩短用户的等待时长。
与上述方法实施例相对应地,本申请实施例还提供了一种电子设备。该电子设备可以是服务器,如图1中所示的数据处理服务器12,也可以是移动终端或计算机等终端设备,该电子设备至少包括用于存储数据的存储器和用于数据处理的处理器。其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、CPU、GPU(GraphicsProcessing Unit,图形处理单元)、DSP或FPGA实现。对于存储器来说,存储器中存储有操作指令,该操作指令可以为计算机可执行代码,通过该操作指令来实现上述本申请实施例的文本处理方法的流程中的各个步骤。
图12为本申请实施例提供的一种电子设备的结构示意图;如图12所示,本申请实施例中该电子设备120包括:处理器121、图形处理器122、存储器123、输入设备126、总线125和通讯模块124;该处理器121、存储器123、输入设备126、图形处理器122和通讯模块124均通过总线125连接,该总线125用于该处理器121、存储器123、图形处理器122、通讯模块124和输入设备126之间传输数据。
其中,存储器123可用于存储软件程序以及模块,如本申请实施例中的文本处理方法对应的程序指令/模块,处理器121通过运行存储在存储器123中的软件程序以及模块,从而执行电子设备120的各种功能应用以及数据处理,如本申请实施例提供的图形处理器的数据处理方法以及文本处理方法等。存储器123可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个应用的应用程序等;存储数据区可存储根据电子设备120的使用所创建的数据(比如训练好的各个网络模型等相关数据)等。此外,存储器123可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器121是电子设备120的控制中心,利用总线125以及各种接口和线路连接整个电子设备120的各个部分,通过运行或执行存储在存储器123内的软件程序和/或模块,以及调用存储在存储器123内的数据,执行电子设备120的各种功能和处理数据。可选的,处理器121可包括一个或多个处理单元,如CPU、图形处理器GPU、数字处理单元等。其中,图形处理器用于执行本申请实施例提供的图形处理器的数据处理方法以及文本处理方法等。
在一些实施例中,图形处理器也可以独立于处理器121进行设置,如图12中的图形处理器122,可以设置在处理器121之外,并与处理器121连接。
处理器121还可以通过通讯模块124连接网络,获取待处理的目标文本等。
输入设备126主要用于获得用户的输入操作,当该电子设备不同时,该输入设备126也可能不同。例如,当该电子设备为计算机时,该输入设备126可以为鼠标、键盘等输入设备;当该电子设备为智能手机、平板电脑等便携设备时,该输入设备126可以为触控屏。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机可执行指令,该计算机可执行指令用于实现本申请任一实施例所记载的图形处理器的数据处理方法。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机可执行指令,该计算机可执行指令用于实现本申请任一实施例所记载的文本处理方法。
在一些可能的实施方式中,本申请提供的文本处理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的文本处理方法的步骤,例如,所述计算机设备可以执行如图2所示的步骤S201~S204的数据处理方法的流程,或者,所述计算机设备可以执行如图4所示的步骤S401~S405的文本处理方法的流程。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (13)
1.一种图形处理器的数据处理方法,其特征在于,包括:
图形处理器读取一组数据元素;
确定所述一组数据元素的均值、平方均值以及方差,所述方差是根据所述一组数据元素的平方均值与均值的平方之间的差值确定的;
根据所述均值和所述方差分别对所述一组数据元素中的每个数据元素进行归一化处理,得到所述一组数据元素对应的一组归一化值;
保存得到的一组归一化值。
2.根据权利要求1所述的方法,其特征在于,确定所述一组数据元素的均值、平方均值以及方差,包括:
通过一次规约求和操作确定所述一组数据元素的和以及平方和;
根据所述一组数据元素的和以及平方和确定所述一组数据元素的均值、平方均值以及方差,所述均值为所述一组数据元素的和除以所述一组数据元素的个数,所述平方均值为所述一组数据元素的平方和除以所述一组数据元素的个数。
3.根据权利要求1所述的方法,其特征在于,
所述图形处理器读取一组数据元素,包括:所述图形处理器调用多个线程从显存中读取一组数据元素;其中,每个线程分别读取一个或多个数据元素;
所述确定所述一组数据元素的均值、平方均值以及方差,包括:
所述多个线程协同确定所述一组数据元素的和以及平方和;
所述多个线程中的指定线程获得所述均值、平方均值以及方差,所述均值为所述一组数据元素的和除以所述一组数据元素的个数,所述平方均值为所述一组数据元素的平方和除以所述一组数据元素的个数;
根据所述均值和所述方差分别对该组数据元素中的每个数据元素进行归一化处理,包括:
所述指定线程将得到的所述均值和所述方差保存至所述多个线程的共享内存中,并根据所述均值和所述方差对自己读取的数据元素进行归一化处理;
所述多个线程中除指定线程以外的每个线程从所述共享内存中获取均值和方差,并对自己读取的数据元素进行归一化处理;
所述保存得到的一组归一化值,包括:每个线程分别将自己得到的归一化值写入所述显存中。
4.根据权利要求1~3中任一项所述的方法,其特征在于,所述一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;
所述二维特征矩阵是根据待处理的源数据生成的;所述待处理的源数据为文本数据。
5.根据权利要求1~3中任一项所述的方法,其特征在于,所述方法还包括:
通过应用层接收终端设备发送的文本数据;
通过接口层调用BERT模型的前部分网络层中的卷积运算模块对所述文本数据进行特征提取,得到文本特征矩阵;所述文本特征矩阵包括多个二维特征矩阵;
通过所述接口层调用BERT模型中的归一化处理模块,并通过归一化处理模块采用权利要求1~3中任一项所述的方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵,所述各组数据元素中的每一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;
通过所述接口层调用BERT模型的后部分网络层中的卷积运算模块对归一化处理后的文本特征矩阵进行处理,得到所述文本数据的语义向量;其中,所述前部分网络层为在所述归一化处理模块之前执行的网络层;所述后部分网络层为在所述归一化处理模块之后执行的网络层。
6.一种文本处理方法,其特征在于,包括:
获得目标文本中的各个目标文字组成的文字序列;
获得文本特征矩阵,所述文本特征矩阵包括多个二维特征矩阵,每个二维特征矩阵根据一个目标文字获得;多个二维特征矩阵按照所述文字序列的排列顺序形成所述文本特征矩阵;
采用权利要求1~3中任一项所述的方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵,所述各组数据元素中的每一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;
根据归一化处理后的文本特征矩阵获得所述目标文本的语义向量;
根据所述语义向量获得所述目标文本关联的推荐文本。
7.根据权利要求6所述的方法,其特征在于,所述获得目标文本中的各个目标文字组成的文字序列,包括:通过应用层接收终端设备发送的目标文本,并获得所述目标文本中的各个目标文字组成的文字序列;
所述获得文本特征矩阵,包括:通过接口层调用BERT模型的前部分网络层中的卷积运算模块对所述文本数据进行特征提取,得到文本特征矩阵;
所述分别对各个二维特征矩阵的各组数据元素进行归一化处理,包括:通过接口层调用BERT模型中的归一化处理模块,并通过归一化处理模块采用权利要求1~3中任一项所述的方法分别对各个二维特征矩阵的各组数据元素进行归一化处理;
所述根据归一化处理后的文本特征矩阵获得所述目标文本的语义向量,包括:通过所述接口层调用BERT模型的后部分网络层中的卷积运算模块对归一化处理后的文本特征矩阵进行处理,得到所述文本数据的语义向量;其中,所述前部分网络层为在所述归一化处理模块之前执行的网络层;所述后部分网络层为在所述归一化处理模块之后执行的网络层。
8.一种图形处理器的数据处理装置,其特征在于,包括:
数据读取单元,用于读取一组数据元素;
数据处理单元,用于确定所述一组数据元素的均值、平方均值以及方差,所述方差是根据所述一组数据元素的平方均值与均值的平方之间的差值确定的;根据所述均值和所述方差分别对所述一组数据元素中的每个数据元素进行归一化处理,得到所述一组数据元素对应的一组归一化值;
数据写入单元,用于保存得到的一组归一化值。
9.根据权利要求8所述的装置,其特征在于,所述数据处理单元,具体用于:
通过一次规约求和操作确定所述一组数据元素的和以及平方和;
根据所述一组数据元素的和以及平方和确定所述一组数据元素的均值、平方均值以及方差,所述均值为所述一组数据元素的和除以所述一组数据元素的个数,所述平方均值为所述一组数据元素的平方和除以所述一组数据元素的个数。
10.根据权利要求8所述的装置,其特征在于,所述数据读取单元,具体用于:调用多个线程从所述显存中读取一组数据元素;其中,每个线程分别读取一个或多个数据元素;
所述数据处理单元,具体用于:通过所述多个线程协同确定所述一组数据元素的和以及平方和;通过所述多个线程中的指定线程获得所述均值、平方均值以及方差,所述均值为所述一组数据元素的和除以所述一组数据元素的个数,所述平方均值为所述一组数据元素的平方和除以所述一组数据元素的个数;通过所述指定线程将得到的所述均值和所述方差保存至所述多个线程的共享内存中,并根据所述均值和所述方差对自己读取的数据元素进行归一化处理;
所述多个线程中除指定线程以外的每个线程从所述共享内存中获取均值和方差,并对自己读取的数据元素进行归一化处理;
所述数据写入单元,具体用于:通过每个线程分别将自己得到的归一化值写入所述显存中。
11.一种文本处理装置,其特征在于,包括:
文本处理单元,用于对目标文本中的各个目标文字组成的文字序列进行操作获得文本特征矩阵,所述文本特征矩阵包括多个二维特征矩阵,每个二维特征矩阵根据一个目标文字获得;多个二维特征矩阵按照所述文字序列的排列顺序形成所述文本特征矩阵;采用权利要求1~3中任一项所述的方法分别对各个二维特征矩阵的各组数据元素进行归一化处理,获得归一化处理后的文本特征矩阵,所述各组数据元素中的每一组数据元素为二维特征矩阵中的一行数据元素或一列数据元素;根据归一化处理后的文本特征矩阵获得所述目标文本的语义向量;
文本推荐单元,用于根据所述语义向量获得所述目标文本关联的推荐文本。
12.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,其特征在于:所述计算机程序被处理器执行时,实现权利要求1~6中任一项所述的方法或者权利要求7所述的方法。
13.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现权利要求1~6中任一项所述的方法或者权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010290379.XA CN111475775B (zh) | 2020-04-14 | 2020-04-14 | 图形处理器的数据处理方法、文本处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010290379.XA CN111475775B (zh) | 2020-04-14 | 2020-04-14 | 图形处理器的数据处理方法、文本处理方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475775A true CN111475775A (zh) | 2020-07-31 |
CN111475775B CN111475775B (zh) | 2023-09-15 |
Family
ID=71751893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010290379.XA Active CN111475775B (zh) | 2020-04-14 | 2020-04-14 | 图形处理器的数据处理方法、文本处理方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475775B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976453A (zh) * | 2010-09-26 | 2011-02-16 | 浙江大学 | 一种基于gpu的三维人脸表情合成方法 |
CN106067028A (zh) * | 2015-04-19 | 2016-11-02 | 北京典赞科技有限公司 | 基于gpu的自动化机器学习的建模方法 |
US20170316312A1 (en) * | 2016-05-02 | 2017-11-02 | Cavium, Inc. | Systems and methods for deep learning processor |
PH12019500889A1 (en) * | 2018-10-24 | 2019-06-17 | Alibaba Group Holding Ltd | Fast computation of a convolutional neural network |
US20190205737A1 (en) * | 2017-12-30 | 2019-07-04 | Intel Corporation | Machine learning accelerator mechanism |
CN110909550A (zh) * | 2019-11-13 | 2020-03-24 | 北京环境特性研究所 | 文本处理方法、装置、电子设备和可读存储介质 |
-
2020
- 2020-04-14 CN CN202010290379.XA patent/CN111475775B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976453A (zh) * | 2010-09-26 | 2011-02-16 | 浙江大学 | 一种基于gpu的三维人脸表情合成方法 |
CN106067028A (zh) * | 2015-04-19 | 2016-11-02 | 北京典赞科技有限公司 | 基于gpu的自动化机器学习的建模方法 |
US20170316312A1 (en) * | 2016-05-02 | 2017-11-02 | Cavium, Inc. | Systems and methods for deep learning processor |
US20190205737A1 (en) * | 2017-12-30 | 2019-07-04 | Intel Corporation | Machine learning accelerator mechanism |
PH12019500889A1 (en) * | 2018-10-24 | 2019-06-17 | Alibaba Group Holding Ltd | Fast computation of a convolutional neural network |
CN110909550A (zh) * | 2019-11-13 | 2020-03-24 | 北京环境特性研究所 | 文本处理方法、装置、电子设备和可读存储介质 |
Non-Patent Citations (2)
Title |
---|
程序员一一涤生: "《想研究BERT模型?先看看这篇文章吧!》", pages 1 - 13, Retrieved from the Internet <URL:https://cloud.tencent.com/developer/article/1516410> * |
赖积保;孟圆;余涛;王玉;林英豪;吕天然;: "一种基于Dual-GPU的三次卷积插值并行算法研究", 计算机科学, no. 08, pages 24 - 27 * |
Also Published As
Publication number | Publication date |
---|---|
CN111475775B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112487182B (zh) | 文本处理模型的训练方法、文本处理方法及装置 | |
CN111026861B (zh) | 文本摘要的生成方法、训练方法、装置、设备及介质 | |
CN110472002B (zh) | 一种文本相似度获取方法和装置 | |
CN111738025B (zh) | 基于人工智能的翻译方法、装置、电子设备和存储介质 | |
CN110234018B (zh) | 多媒体内容描述生成方法、训练方法、装置、设备及介质 | |
CN112988979B (zh) | 实体识别方法、装置、计算机可读介质及电子设备 | |
CN114565104A (zh) | 语言模型的预训练方法、结果推荐方法及相关装置 | |
US11934788B2 (en) | Encoding method, apparatus, and storage medium | |
GB2573998A (en) | Device and method for natural language processing | |
CN113392640B (zh) | 一种标题确定方法、装置、设备及存储介质 | |
CN113761153A (zh) | 基于图片的问答处理方法、装置、可读介质及电子设备 | |
CN111898369A (zh) | 文章标题生成方法、模型的训练方法、装置和电子设备 | |
CN111898636A (zh) | 一种数据处理方法及装置 | |
CN114792359A (zh) | 渲染网络训练和虚拟对象渲染方法、装置、设备及介质 | |
CN110705273A (zh) | 基于神经网络的信息处理方法及装置、介质和电子设备 | |
CN116188621A (zh) | 基于文本监督的双向数据流生成对抗网络图像生成方法 | |
CN111444321B (zh) | 问答方法、装置、电子设备和存储介质 | |
CN110083842B (zh) | 译文质量检测方法、装置、机器翻译系统和存储介质 | |
CN112307166B (zh) | 一种智能问答方法、装置、存储介质以及计算机设备 | |
CN111767720A (zh) | 一种标题生成方法、计算机及可读存储介质 | |
CN116662496A (zh) | 信息抽取方法、训练问答处理模型的方法及装置 | |
US11481419B2 (en) | Method and apparatus for evaluating matching degree based on artificial intelligence, device and storage medium | |
CN111475775B (zh) | 图形处理器的数据处理方法、文本处理方法、装置和设备 | |
CN113569567A (zh) | 文本识别方法、装置、计算机可读介质及电子设备 | |
CN110458919B (zh) | 一种动态纹理视频生成方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40026287 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |