一种数据处理方法及设备的制造方法

文档序号:10665669阅读:538来源:国知局
一种数据处理方法及设备的制造方法
【专利摘要】本申请公开了一种数据处理方法。在将训练样本均匀划分为多个第一子训练样本后,继续将各子训练样本按照各MPI计算节点中所包含的计算单元的数量均匀划分为多个第二子训练样本,后续为各计算单元分配一个第二子训练样本,并根据各计算单元的生成的第一计算结果获取训练样本的计算结果。通过在支持多计算节点的并行处理的基础上进一步在每个计算节点内部采取并行处理,极大地提高了数据处理效率。
【专利说明】
_种数据处理方法及设备
技术领域
[0001] 本申请涉及通信技术领域,特别涉及一种数据处理方法。本申请同时还涉及一种 数据处理设备。
【背景技术】
[0002] 序列标注(Sequene Labeling)是自然语言处理和机器学习领域的一类问题,该问 题是为序列中每一个元素赋予正确的标签,序列中不同位置的元素往往是彼此相关的,典 型的序列标注问题是词性标注,该问题中序列是句子,序列中的元素是词语,序列的标注是 每个词语对应的词性。
[0003] CRF (Conditional Random Field,条件随机场)是一种通过条件概率来对序列标 注问题进行建模的方法。以z来表示输入序列以及X表示标签序列为例,条件随机场用下 面的概率模型来描述X和z的关系:
[0004]
[0005] 其中餐称为势函数(potential function),Z (z)称为分割函数 (partition function),fk(xt,xt+1,z)称为特征函数,或者简称为特征。
[0006] 在现有技术中,条件随机场用随机变量分别表示输入序列和标签序列,通过直接 对标签序列整体相对于输入序列的概率进行建模,由于该方法能够考虑到序列内部不同 元素上下文的相互依赖,因此是对类似的序列标注问题进行建模的方法之一。具体流程如 下:
[0007] 首先,给定条件随机场序列标注模型:
[0008]
?Sf. 文二飞
[0009] 以及训练数据集合S =
[0010] 在实际应用中,通常使用以下两种势函数:
[0011] ⑴节点势函数:
[0012]
[0013] (2)状态转移势函数:
[0014]
[0015] 在以上情况下,似然函数如下:
[0016]
[0017] 由于以上似然函数是凸函数,因此可以用凸优化的方法找到唯一的全局最优解。 在模型训练过程中,现有要对似然函数计算针对参数的偏导数,这个偏导数也叫做梯度 (Gradient),CRF的偏导数公式如下:
[0020] 其中,Pt(xt|z)和?,(\,xt+1|z)称为局部概率,其含义分别是a)位置t的标签是
[0018]
[0019] ^的概率,b)位置t和t+1的标签分别是X JP X t+1的概率。
[0021] 在实现本申请的过程中,发明人发现现有技术至少存在着以下技术问题:
[0022] 对于自然语言处理的大多数问题,特征函数的数量都非常大,例如在词性标注问 题里,爲(馬的数量可以用词典规模乘以词性数量来作为上限,通常词典规模在百万甚 至千万级别,词性数量在几十至上百级别,因此特征的量可以轻易达到千万;如果考虑不同 的上下文特征,特征达到上亿规模也是常见的。第二个挑战是计算复杂度,Z(z)部分通常 用动态规划的方法求解,复杂度是序列长度乘以标签数量,对于大量的训练数据,计算时间 就会成为瓶颈。
[0023] 由此可见,如何提高现有的数据处理效率,成为本领域普通技术人员亟待解决的 技术问题。

【发明内容】

[0024] 本申请提供了一种数据处理方法,用以对现有的数据处理方式进行优化,从而提 高数据处理效率。该方法包括:
[0025] 将训练样本均匀划分为多个第一子训练样本,所述第一子训练样本的数量与当前 存在的MPI计算节点的数量相同;
[0026] 将各所述子训练样本按照各所述MPI计算节点中所包含的计算单元的数量均匀 划分为多个第二子训练样本;
[0027] 为各所述计算单元分配一个第二子训练样本;
[0028] 根据各所述计算单元的生成的第一计算结果获取所述训练样本的计算结果。
[0029] 相应地,本申请还提出了一种数据处理设备,包括:
[0030] 第一划分模块,用于将训练样本均勾划分为多个第一子训练样本,所述第一子训 练样本的数量与当前存在的MPI计算节点的数量相同;
[0031] 第二划分模块,用于将各所述子训练样本按照各所述MPI计算节点中所包含的计 算单元的数量均匀划分为多个第二子训练样本;
[0032] 分配模块,用于为各所述计算单元分配一个第二子训练样本;
[0033] 获取模块,用于根据各所述计算单元的生成的第一计算结果获取所述训练样本的 计算结果。
[0034] 由此可见,通过应用本申请的技术方案,在将训练样本均匀划分为多个第一子训 练样本后,继续将各子训练样本按照各MPI计算节点中所包含的计算单元的数量均匀划分 为多个第二子训练样本,后续为各计算单元分配一个第二子训练样本,并根据各计算单元 的生成的第一计算结果获取训练样本的计算结果。通过在支持多计算节点的并行处理的基 础上进一步在每个计算节点内部采取并行处理,极大地提高了数据处理效率。
【附图说明】
[0035] 图1为本申请提出的一种数据处理方法的流程示意图;
[0036] 图2为本申请具体实施例中数据处理的实现架构示意图;
[0037] 图3为本申请具体实施例中预测搜索示意图;
[0038] 图4为本申请提出的一种数据处理设备的结构示意图。
【具体实施方式】
[0039] 如【背景技术】所述,现有实现方案都无法联合使用MPI (Message Passing Interface,消息传递接口)和OpenMP并行架构,没有对OpenMP并行计算单元的数据稀疏 问题进行优化,无法支持预测阶段引入人工先验知识,对此本申请提出了一种数据处理方 法,如图1所示,包括以下步骤:
[0040] S101,将训练样本均勾划分为多个第一子训练样本,所述第一子训练样本的数量 与当前存在的MPI计算节点的数量相同.
[0041] S102,将各所述子训练样本按照各所述MPI计算节点中所包含的计算单元的数量 均匀划分为多个第二子训练样本。
[0042] 在具体的实施例中,本申请技术方案将训练样本划分为K个均等的部分(K为MPI 计算节点数量),之后对于每个MPI计算节点,再将其训练样本划分为Μ个均等的部分,每个 部分分配给一个OpenMP计算单元进行训练。每个OpenMP计算单元的计算结果,包括对目 标函数的增量值、梯度向量的增量值,在MPI计算节点进行累加,这种累加是在同一物理机 器的内存中进行的,因此没有通信开销。单个MPI计算节点累加的目标函数增量值和梯度 向量增量值,通过广播发送到所有MPI计算节点并累加,从而实现对目标函数和梯度向量 的全局计算,该过程的示意图如图2所示。
[0043] S103,为各所述计算单元分配一个第二子训练样本。
[0044] S104,根据各所述计算单元的生成的第一计算结果获取所述训练样本的计算结 果。
[0045] 基于S101以及S102中所得到的结果,第一计算结果包括目标函数增量值以及梯 度向量增量值,而在本申请优选的实施例中,该步骤的具体处理过程如下:
[0046] 步骤a)将各所述MPI计算节点中所有计算单元生成的目标函数增量值及梯度向 量增量值分别进行累加,生成与各所述MPI计算节点对应的中间计算结果;
[0047] 步骤b)分别将所有中间计算结果中的目标函数增量值及梯度向量增量值进行累 加,并将累加后的目标函数增量值及梯度向量增量值作为所述训练样本的计算结果。
[0048] 此外,为了能够针对稀疏数据进行优化,在本申请优选的实施例中,计算单元中的 梯度向量增量值是根据分配至所述计算单元的第二子训练样本中所出现的特征计算生成 并通过映射表存储的。这样在有K个MPI计算节点且每个节点有Μ个OpenMP计算单元的 情况下,每个计算单元上得到的训练样本数是总样本数的很小一部分。因为梯度向量的计 算只对出现的特征会出现非零值,因此每个OpenMP计算单元只需要存储和计算训练子集 中出现的特征的梯度子向量。在每个OpenMP计算单元只需用一个映射表来存储本计算单 元出现的特征,并只存储针对这些特征的梯度子向量,能够使得存储空间大大降低。
[0049] 以上步骤通过对于单个计算节点内部的OpenMP并行处理,对多个线程公用内存 的内存占用量进行了优化,使得内存占用基本接近单个线程的内存占用量。进一步地,本申 请具体实施例还通过融合模型的预测能力和先验知识来达到更好的效果,该方案在在将训 练样本均匀划分为多个第一子训练样本之前获取预设的包含一个或多个规则式的先验信 息,其中各规则式由运算符、指定元素以及标签组成,并遵循以下规则:
[0050] (1)若所述规则式中的运算符为0R,则所述规则式中的指定元素的标签取值为所 述规则式中的包含的标签之一;
[0051] (2)若所述规则式中的运算符为Ν0Τ,则所述规则式中的指定元素的标签取值非 所述规则式中的包含的任何标签。
[0052] 在具体实施场景中,以上规则可采用布尔逻辑,使得用户可以在预测阶段引入人 工定义的先验知识。这种布尔逻辑包括两种运算符,即0R和NOT。0R运算符的含义是,序 列的当前元素的标签取值只能是表达式给定的标签之一;NOT运算符的含义是,序列的当 前元素的标签取值不能是表达式给定的任何标签,只能是其他的标签。例如:
[0053] 规则"work 0R (V,N) "表示,对于work而言,其词性只能是V (动词),或N (名词)。
[0054] 规则"work NOT (Prep, Adv) "表示,work的词性标签不能是Prep (介词)和Adv (副 词)。
[0055] 在具体实现过程中,通过对如图3所示的预测搜索图进行剪枝,可将预测的搜索 空间限制在先验知识约束的搜索空间中。其中,白色的节点表示先验知识允许经过的标签 选项,黑色的则表示先验知识不允许经过的标签选项,预测算法只会允许搜索在白色节点 及其之间的连接边之内进行搜索。
[0056] 通过以上流程可以看出,本申请的方案同时支持MPI和OpenMP联合使用,从而能 够达到更高的并行度,或者在相同并行度的条件下使用更少的物理计算资源。此外在单个 计算节点内部的OpenMP并行计算单元内,针对数据稀疏的问题进行了技术优化,且能够支 持在预测阶段加入先验知识,从而在保证数据处理正确率的前提下,极大地提高了数据处 理效率。
[0057] 为达到以上技术目的,本申请还提出了一种数据处理设备,如图4所示,包括:
[0058] 第一划分模块410,用于将训练样本均勾划分为多个第一子训练样本,所述第一子 训练样本的数量与当前存在的MPI计算节点的数量相同;
[0059] 第二划分模块420,用于将各所述子训练样本按照各所述MPI计算节点中所包含 的计算单元的数量均匀划分为多个第二子训练样本;
[0060] 分配模块430,用于为各所述计算单元分配一个第二子训练样本;
[0061] 获取模块440,用于根据各所述计算单元的生成的第一计算结果获取所述训练样 本的计算结果。
[0062] 在具体的应用场景中,所述第一计算结果包括目标函数增量值以及梯度向量增量 值,所述获取模块具体用于:
[0063] 将各所述MPI计算节点中所有计算单元生成的目标函数增量值及梯度向量增量 值分别进行累加,生成与各所述MPI计算节点对应的中间计算结果;
[0064] 分别将所有中间计算结果中的目标函数增量值及梯度向量增量值进行累加,并将 累加后的目标函数增量值及梯度向量增量值作为所述训练样本的计算结果。
[0065] 在具体的应用场景中,所述计算单元中的梯度向量增量值是根据分配至所述计算 单元的第二子训练样本中所出现的特征计算生成并通过映射表存储的。
[0066] 在具体的应用场景中,还包括:
[0067] 先验模块,用于获取预设的包含一个或多个规则式的先验信息,各所述规则式由 运算符、指定元素以及标签组成;
[0068] 其中,若所述规则式中的运算符为0R,则所述规则式中的指定元素的标签取值为 所述规则式中的包含的标签之一;
[0069] 若所述规则式中的运算符为Ν0Τ,则所述规则式中的指定元素的标签取值非所述 规则式中的包含的任何标签。
[0070] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通 过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申 请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储 介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可 以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
[0071 ] 本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或 流程并不一定是实施本申请所必须的。
[0072] 本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进 行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装 置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0073] 上述本申请序号仅仅为了描述,不代表实施场景的优劣。
[0074] 以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本 领域的技术人员能思之的变化都应落入本申请的保护范围。
【主权项】
1. 一种数据处理方法,其特征在于,包括: 将训练样本均匀划分为多个第一子训练样本,所述第一子训练样本的数量与当前存在 的消息传递接口 MPI计算节点的数量相同; 将各所述子训练样本按照各所述MPI计算节点中所包含的计算单元的数量均匀划分 为多个第二子训练样本; 为各所述计算单元分配一个第二子训练样本; 根据各所述计算单元的生成的第一计算结果获取所述训练样本的计算结果。2. 如权利要求1所述的方法,其特征在于,所述第一计算结果包括目标函数增量值以 及梯度向量增量值,根据各所述计算单元的生成的第一计算结果获取所述训练样本的计算 结果,具体为: 将各所述MPI计算节点中所有计算单元生成的目标函数增量值及梯度向量增量值分 别进行累加,生成与各所述MPI计算节点对应的中间计算结果; 分别将所有中间计算结果中的目标函数增量值及梯度向量增量值进行累加,并将累加 后的目标函数增量值及梯度向量增量值作为所述训练样本的计算结果。3. 如权利要求2所述的方法,其特征在于, 所述计算单元中的梯度向量增量值是根据分配至所述计算单元的第二子训练样本中 所出现的特征计算生成并通过映射表存储的。4. 如权利要求1所述的方法,其特征在于,在将训练样本均匀划分为多个第一子训练 样本之前,还包括: 获取预设的包含一个或多个规则式的先验信息,各所述规则式由运算符、指定元素以 及标签组成; 其中,若所述规则式中的运算符为0R,则所述规则式中的指定元素的标签取值为所述 规则式中的包含的标签之一; 若所述规则式中的运算符为NOT,则所述规则式中的指定元素的标签取值非所述规则 式中的包含的任何标签。5. -种数据处理设备,其特征在于,包括: 第一划分模块,用于将训练样本均匀划分为多个第一子训练样本,所述第一子训练样 本的数量与当前存在的消息传递接口 MPI计算节点的数量相同; 第二划分模块,用于将各所述子训练样本按照各所述MPI计算节点中所包含的计算单 元的数量均匀划分为多个第二子训练样本; 分配模块,用于为各所述计算单元分配一个第二子训练样本; 获取模块,用于根据各所述计算单元的生成的第一计算结果获取所述训练样本的计算 结果。6. 如权利要求5所述的设备,其特征在于,所述第一计算结果包括目标函数增量值以 及梯度向量增量值,所述获取模块具体用于: 将各所述MPI计算节点中所有计算单元生成的目标函数增量值及梯度向量增量值分 别进行累加,生成与各所述MPI计算节点对应的中间计算结果; 分别将所有中间计算结果中的目标函数增量值及梯度向量增量值进行累加,并将累加 后的目标函数增量值及梯度向量增量值作为所述训练样本的计算结果。7. 如权利要求6所述的设备,其特征在于, 所述计算单元中的梯度向量增量值是根据分配至所述计算单元的第二子训练样本中 所出现的特征计算生成并通过映射表存储的。8. 如权利要求4所述的设备,其特征在于,还包括: 先验模块,用于获取预设的包含一个或多个规则式的先验信息,各所述规则式由运算 符、指定元素以及标签组成; 其中,若所述规则式中的运算符为0R,则所述规则式中的指定元素的标签取值为所述 规则式中的包含的标签之一; 若所述规则式中的运算符为NOT,则所述规则式中的指定元素的标签取值非所述规则 式中的包含的任何标签。
【文档编号】G06F9/38GK106033332SQ201510104810
【公开日】2016年10月19日
【申请日】2015年3月10日
【发明人】刘忠义, 魏虎
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1