CN114048289A - 语言模型训练方法、文案生成方法以及相关设备 - Google Patents
语言模型训练方法、文案生成方法以及相关设备 Download PDFInfo
- Publication number
- CN114048289A CN114048289A CN202111340858.9A CN202111340858A CN114048289A CN 114048289 A CN114048289 A CN 114048289A CN 202111340858 A CN202111340858 A CN 202111340858A CN 114048289 A CN114048289 A CN 114048289A
- Authority
- CN
- China
- Prior art keywords
- sequence
- text element
- mask
- text
- language model
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本公开的实施方式涉及文本处理技术领域,更具体地,本公开的实施方式涉及语言模型训练方法、文案生成方法以及相关设备。语言模型训练方法包括:获取构成训练文本的文本元素序列,文本元素序列分为拼接在一起的源段序列和目标段序列,文本元素序列以序列开始标记开头,源段序列和目标段序列均以序列结束标记结尾;对文本元素序列添加掩码;将带有掩码的文本元素序列输入语言模型的变换器网络,通过变换器网络对文本元素序列中的每个文本元素编码成带有上下文信息的向量;利用表征向量得到掩码的预测值,并根据预测值和真实值之间的交叉损失函数对变换器网络进行训练,使其收敛,得到语言模型。本公开的技术方案能够增强语言模型的可扩展性。
Description
技术领域
本公开的实施方式涉及文本处理技术领域,更具体地,本公开的实施方式涉及语言模型训练方法、文案生成方法以及相关设备。
背景技术
本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
目前,基于机器学习技术的语言模型在文本处理技术领域具有深度应用,并能够通过设计网络结构复杂的语言模型来提升文本处理的准确度,但这降低了语言模型在文本处理场景中的可扩展性。
发明内容
目前一般采用如下方案来实现文本处理任务:
方案一,使用基于长短期记忆LSTM(Long Short-Term Memory)的文案生成模型,比如语言模型嵌入模型ELMo(Embedding from Language Models),ELMo作为一个典型的自回归预训练模型,其包括两个独立的单向LSTM来实现的单向语言模型进行自回归预训练;
方案二,使用基于OpenAI的GPT(Generative Pre-Training)模型, GPT模型是文本生成领域的一个经典模型,使用变换器Transformer解码器从左到右地逐字地预测文本序列。然而,方案一和方案二中,用于文本处理任务的语言模型网络结构复杂,但均为单向语言模型,可扩展性不足。
为此,非常需要一种改进的语言模型训练方法、文案生成方法以及相关设备,以提高语言模型的可扩展性。
在本上下文中,本发明的实施方式期望提供一种语言模型训练方法、文案生成方法以及相关设备。
根据本公开的一个方面,提供一种语言模型训练方法,该方法包括:
获取构成训练文本的文本元素序列,文本元素序列分为拼接在一起的源段序列和目标段序列,文本元素序列以序列开始标记开头,源段序列和目标段序列均以序列结束标记结尾;
按照设定规则对文本元素序列添加掩码;
将带有掩码的文本元素序列输入语言模型的变换器网络,通过变换器网络对文本元素序列中的每个文本元素编码成带有上下文信息的向量,并输出表征向量;
利用表征向量得到掩码的预测值,并根据预测值和真实值之间的交叉损失函数对变换器网络进行训练,使其收敛,得到语言模型。
在本公开的一种示例性实施例中,
在本公开的一种示例性实施例中,语言模型训练方法还包括:
根据序列开始标记和序列结束标记生成任务适用的掩码矩阵,对变换器网络添加掩码矩阵;
通过变换器网络对文本元素序列中的每个文本元素编码成带有上下文信息的向量,包括:
利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量。
在本公开的一种示例性实施例中,利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量,包括:
在变换器网络中,利用掩码矩阵确定对相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在可见范围内聚合相邻的上一层的输出向量,输出每一层带有上下文信息的输出向量。
在本公开的一种示例性实施例中,根据序列开始标记和序列结束标记生成任务适用的掩码矩阵,包括:
根据序列开始标记和序列结束标记生成适用于seq2seq模型、单向语言模型或双向语言模型中的至少一种任务的掩码矩阵。
在本公开的一种示例性实施例中,在任务为seq2seq模型的情况下,根据序列开始标记和序列结束标记生成任务适用的掩码矩阵,包括:
根据序列开始标记和序列结束标记,按照设定规则对源段序列设置为双向可见,对目标段序列设置为前向可见,生成适用于seq2seq模型任务的掩码矩阵。
在本公开的一种示例性实施例中,按照设定规则对文本元素序列添加掩码,包括:
对源段序列和目标段序列均添加掩码,得到的语言模型作为预训练语言模型。
在本公开的一种示例性实施例中,获取构成训练文本的文本元素序列,包括:
获取构成文本元素序列的各文本元素;
对各文本元素进行文本元素编码、位置编码和段编码;
将编码后的各文本元素构成文本元素序列。
在本公开的一种示例性实施例中,按照设定规则对文本元素序列添加掩码,包括:
对文本元素序列中的文本元素设置为不可见或进行文本元素替换。
根据本公开的一个方面,提供一种文案生成方法,该方法包括:
获取输入文本元素序列,所述输入文本元素序列包括以序列开始标记开头并以第一序列结束标记结尾的源段序列,以及用于目标段序列预测终止的第二序列结束标记;
按照设定规则在所述第一序列结束标记和第二序列结束标记之间插入标记预测目标段文本元素的掩码;
将带有所述掩码的所述输入文本元素序列输入根据权利要求1-8任一项所述语言模型训练方法训练得到的文案生成模型,通过所述文案生成模型中的变换器网络对所述输入文本元素序列中的每个文本元素编码成带有上下文信息的向量,输出表征向量;
利用所述表征向量对所述掩码预测得到目标段文本元素,直到终止于所述第二序列结束标记,并利用所述目标段文本元素生成目标段序列,并输出由所述源段序列和所述目标段序列构成的文案。
在本公开的一种示例性实施例中,文案生成方法还包括:
根据序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵,对变换器网络添加掩码矩阵;
通过文案生成模型中的变换器网络对输入文本元素序列中的每个文本元素编码成带有上下文信息的向量,包括:
利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量。
在本公开的一种示例性实施例中,利用带有掩码矩阵的变换器网络在目标层对相邻的上一层的输出向量进行编码,生成目标层的输出向量,包括:
在变换器网络中,利用掩码矩阵确定对相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在可见范围内聚合相邻的上一层的输出向量,输出每一层带有上下文信息的输出向量。
在本公开的一种示例性实施例中,在根据序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵之前,方法还包括:
接收用户输入;
响应于用户输入,获得目标段序列的长度,根据目标段序列的长度确定表征目标段序列结尾的第二序列结束标记。
在本公开的一种示例性实施例中,利用所述表征向量对所述掩码预测得到目标段文本元素,包括:
根据表征向量进行目标段文本元素预测,得到多个候选文本元素的概率;
采用波束搜索在多个候选文本元素中选取概率排名在前的目标数量的目标文本元素。
在本公开的一种示例性实施例中,获取输入文本元素序列,包括:
获取构成输入文本元素序列的各文本元素;
对各文本元素进行文本元素编码、位置编码和段编码;
将编码后的各文本元素构成输入文本元素序列。
根据本公开的一个方面,提供一种语言模型训练装置,该装置包括:
第一获取模块,获取构成训练文本的文本元素序列,文本元素序列分为拼接在一起的源段序列和目标段序列,文本元素序列以序列开始标记开头,源段序列和目标段序列均以序列结束标记结尾;
第一掩码添加模块,按照设定规则对文本元素序列添加掩码;
第一模型输入模块,将带有掩码的文本元素序列输入语言模型的变换器网络,通过变换器网络对文本元素序列中的每个文本元素编码成带有上下文信息的向量,并输出表征向量;
训练模块,利用表征向量得到掩码的预测值,并根据预测值和真实值之间的交叉损失函数对变换器网络进行训练,使其收敛,得到语言模型。
在本公开的一种示例性实施例中,语言模型训练装置还包括:
第一掩码矩阵生成模块,根据序列开始标记和序列结束标记生成任务适用的掩码矩阵,对变换器网络添加掩码矩阵;
第一模型输入模块具体用于:
利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量。
在本公开的一种示例性实施例中,第一模型输入模块具体还用于:
在变换器网络中,利用掩码矩阵确定对相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在可见范围内聚合相邻的上一层的输出向量,输出每一层带有上下文信息的输出向量。
在本公开的一种示例性实施例中,第一掩码矩阵生成模块具体用于:
根据序列开始标记和序列结束标记生成适用于seq2seq模型、单向语言模型或双向语言模型中的至少一种任务的掩码矩阵。
在本公开的一种示例性实施例中,在任务为seq2seq模型的情况下,第一掩码矩阵生成模块具体还用于:
根据序列开始标记和序列结束标记,按照设定规则对源段序列设置为双向可见,对目标段序列设置为前向可见,生成适用于seq2seq模型任务的掩码矩阵。
在本公开的一种示例性实施例中,第一掩码添加模块具体用于:
对源段序列和目标段序列均添加掩码,得到的语言模型作为预训练语言模型。
在本公开的一种示例性实施例中,第一获取模块具体用于:
获取构成文本元素序列的各文本元素;
对各文本元素进行文本元素编码、位置编码和段编码;
将编码后的各文本元素构成文本元素序列。
在本公开的一种示例性实施例中,第一掩码添加模块具体用于:
对文本元素序列中的文本元素设置为不可见或进行文本元素替换。
根据本公开的一个方面,提供一种文案生成装置,该装置包括:
第二获取模块,获取输入文本元素序列,输入文本元素序列包括以序列开始标记开头并以第一序列结束标记结尾的源段序列,以及用于目标段序列预测终止的第二序列结束标记;
第二掩码添加模块,按照设定规则在所述第一序列结束标记和第二序列结束标记之间插入标记预测目标段文本元素的掩码;
第二模型输入模块,将带有所述掩码的输入文本元素序列输入本公开上述任一实施例的语言模型训练方法训练得到的文案生成模型,通过文案生成模型中的变换器网络对输入文本元素序列中的每个文本元素编码成带有上下文信息的向量,输出表征向量;
预测模块,利用所述表征向量对所述掩码预测得到目标段文本元素,直到终止于第二序列结束标记,并利用目标段文本元素生成目标段序列,并输出由源段序列和目标段序列构成的文案。
在本公开的一种示例性实施例中,文案生成装置还包括:
第二掩码矩阵生成模块,根据序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵,对变换器网络添加掩码矩阵;
第二模型输入模块具体用于:
利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量。
在本公开的一种示例性实施例中,第二模型输入模块具体还用于:
在变换器网络中,利用掩码矩阵确定对相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在可见范围内聚合相邻的上一层的输出向量,输出每一层带有上下文信息的输出向量。
在本公开的一种示例性实施例中,文案生成装置还包括:
接收模块,在根据序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵之前,接收用户输入;
响应模块,响应于用户输入,获得目标段序列的长度,根据目标段序列的长度确定表征目标段序列结尾的第二序列结束标记。
在本公开的一种示例性实施例中,预测模块具体用于:
根据表征向量进行目标段文本元素预测,得到多个候选文本元素的概率;
采用波束搜索在多个候选文本元素中选取概率排名在前的目标数量的目标文本元素。
在本公开的一种示例性实施例中,第二获取模块具体用于:
获取构成输入文本元素序列的各文本元素;
对各文本元素进行文本元素编码、位置编码和段编码;
将编码后的各文本元素构成输入文本元素序列。
根据本公开的一个方面,提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现:语言模型训练方法和/或文案生成方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储处理器的可执行指令;
其中,处理器配置为经由执行可执行指令来执行上述任意一项的语言模型训练生成方法和/或文案生成方法。
根据本公开实施方式的语言模型训练方法以及文案生成方法,通过在文本元素序列中添加序列开始标记和序列结束标记,此时文本元素序列可视为是一对源段序列和目标段序列打包的分割文本,还可以是一个两段式分割文本。这样预测掩码的过程实际是句子补全式任务,在这种情况下,使用单个变换器网络的注意力机制,就能够通过控制掩码可见到的上下文信息对文本元素编码,来适用上述一种或两种情形的训练任务,该方案的可行性高。
本公开实施方式能够实现多种训练任务的训练目标,而不用区分变换器网络的编码器和解码器,因为编码器和解码器是统一的,不仅变换器网络结构简单,显然还可以提升语言模型的可扩展性,公开的语言模型训练任务通用性较强,训练效率高。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性地示出了根据本公开实施方式的语言模型训练方法的流程图之一;
图2示意性地示出了根据本公开一种实施方式的语言模型的示意图;
图3示意性地示出了根据本公开实施方式的训练时输入文本元素序列的示意图;
图4示意性地示出了根据本公开实施方式的语言模型训练方法的流程图之二;
图5和图6示意性地示出了图2所示的语言模型在训练时的内部运行原理示意图;
图7示意性地示出了根据本公开实施方式的文案生成方法的流程图之一;
图8示意性地示出了根据本公开实施方式的文案生成方法的流程图之二;
图9示意性地示出了根据本公开实施方式的文案生成方法的原理示意图;
图10示意性地示出了根据本公开实施方式的语言模型训练装置的结构图之一;
图11示意性地示出了根据本公开实施方式的语言模型训练装置的结构图之二;
图12示意性地示出了根据本公开实施方式的文案生成装置的结构图之一;
图13示意性地示出了根据本公开实施方式的文案生成装置的结构图之二;
图14示意性地示出了根据本公开实施方式的文案生成装置的结构图之三;
图15示意性示出了根据本公开实施方式的存储介质的示意图;以及
图16示意性示出了根据公开实施方式的电子设备的方框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提供一种语言模型训练方法、文案生成方法以及相关设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐述本公开的原理和精神。
发明概述
本发明人发现,在文本处理任务中,可通过设计网络结构复杂的语言模型来提升文本处理的准确度,但这降低了语言模型在文本处理场景中的可扩展性。
目前一般采用如下方案来实现文本处理任务:
方案一:使用基于LSTM的ELMo,ELMo作为一个典型的自回归预训练模型,其包括两个独立的单向LSTM来实现的单向语言模型进行自回归预训练,前向语言模型从左到右读文本进行编码,后向语言模型从右到左读取文本进行编码;
方案二,使用基于OpenAI的GPT(Generative Pre-Training)模型, GPT模型也是文本生成领域的一个经典模型,使用变换器Transformer编码解码器从左到右地逐字地预测文本序列。
其中,方案一没有采用双向的LSTM进行编码的原因是因为在预训练任务中,双向模型将提前看到上下文表征而对预测结果造成影响。因此,为了不影响到预测结果,ELMo在本质上还是属于一个单向的语言模型,因为其只在一个方向上进行编码表征,只是将两个单向语言模型拼接了而已。
ELMo的特征提取器为LSTM,虽然LSTM天然适合处理序列信息,但由于梯度消失等问题不能处理长距离依赖。而且由于ELMo需要训练2 个独立的单向LSTM,并行能力较差。
而方案二中的GPT模型使用变换器网络的解码器进行特征提取,能够解决ELMo所存在特征提取能力弱的问题,但是它是一个从左到右受到限制的变换器,属于单向语言模型,即自回归语言模型,这决定了 GPT模型无法通过上下文信息进行双向特征表征,其可扩展性不足。
因此,方案一和方案二只能实现单向语言模型的训练任务,可扩展性不足。
鉴于上述内容,本发明的基本思想在于:
通过在文本元素序列中添加序列开始标记和序列结束标记,此时文本元素序列可视为是一对源段序列和目标段序列打包的分割文本,还可以是一个两段式分割文本。这样预测掩码的过程实际是句子补全式任务,在这种情况下,使用单个变换器网络的注意力机制,就能够通过控制掩码可见到的上下文信息对文本元素编码,来适用上述一种或两种情形的训练任务。
本公开实施方式能够实现多种训练任务的训练目标,而不用区分变换器网络的编码器和解码器,因为编码器和解码器是统一的,不仅变换器网络结构简单,显然还可以提升语言模型的可扩展性,公开的语言模型训练任务通用性较强,训练效率高。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面结合图1来描述根据本公开示例性实施方式的语言模型训练方法。参考图1所示,语言模型训练方法可以包括以下步骤:
步骤110:获取构成训练文本的文本元素序列,文本元素序列分为拼接在一起的源段序列和目标段序列,文本元素序列以序列开始标记开头,源段序列和目标段序列均以序列结束标记结尾;
步骤120:按照设定规则对文本元素序列添加掩码;
步骤130:将带有掩码的文本元素序列输入语言模型的变换器网络,通过变换器网络对文本元素序列中的每个文本元素编码成带有上下文信息的向量,并输出表征向量;
步骤140:利用表征向量得到掩码的预测值,并根据预测值和真实值之间的交叉损失函数对变换器网络进行训练,使其收敛,得到语言模型。
在本公开实施方式中,在文本元素序列中添加掩码,掩码的作用是掩蔽训练过程中待预测的文本元素。在编码过程中,每个文本元素被编码成带有上下文消息的表征向量,该上下文消息表示文本元素是否受到其他文本元素的影响或在受影响程度。
其中,变换器网络所具有的注意力机制,就能够实现对文本元素上下文信息的控制。
根据本公开实施方式的语言模型训练方法以及文案生成方法,通过在文本元素序列中添加序列开始标记和序列结束标记,此时文本元素序列可视为是一对源段序列和目标段序列打包的分割文本,还可以是一个两段式分割文本。这样预测掩码的过程实际是句子补全式任务,在这种情况下,使用单个变换器网络的注意力机制,就能够通过控制掩码可见到的上下文信息对文本元素编码,来适用上述一种或两种情形的训练任务。
本公开实施方式能够实现多种训练任务的训练目标,而不用区分变换器网络的编码器和解码器,因为编码器和解码器是统一的,不仅变换器网络结构简单,显然还可以提升语言模型的可扩展性,公开的语言模型训练任务通用性较强,训练效率高。
根据本公开示例性的实施方式,参考图2,语言模型包括单个多层变换器网络,多层变换器网络由多层变换器块(transformer block)依序连接而成,相邻两层变换器块中前一层变换器块的输出作为当前层变换器块的输入。
使用多层变换器网络,能够挖掘文本元素序列之间更加抽象的关系,使得表征向量对输入的文本元素序列进行更加抽象的表达,使得语言模型具有更好的泛化能力,努力提升语言模型的预测结果。
如图2所示,给定输入的训练文本的文本元素序列x=[x1,…,xn],图2以n=5为例进行说明,仅为示例,每个xi表示输入序列的一个文本元素,可以是词或字;
变换器网络为每个文本元素获得一个上下文的向量表征,输出表征向量h=[h1,…,hn],对应n=5时,输出5组表征向量。其中为控制对要预测掩码位置的文本元素标记上下文的访问,变换器网络可使用不同自我注意力机制来实现。下面具体阐述语言模型训练方法各个步骤。
根据本公开示例性的实施方式,获取构成训练文本的文本元素序列,具体包括如下步骤:
获取构成文本元素序列的各文本元素;
对各文本元素进行文本元素编码、位置编码和段编码;
将编码后的各文本元素构成文本元素序列。
原始的训练文本是由一系列有序的文本元素组成的,其中文本元素是文本基本组成单位,可以是词或字,在此不作限定。
根据本公开示例性的实施方式,基于变换器强大的特征抽取能力,分词不再成为必要,词级别的特征学习可以纳入为内部特征进行表示学习,因此这边输入序列x的每个文本元素可以是单个的字,这可以解决词输入加剧超出词表之外OOV(英文全称:out ofvocabulary)的问题,从而减少输入空间,避免使用大得多的语料库。
结合图2所示,原始的训练文本元素序列经过语言模型的嵌入层,通过文本元素嵌入(word embedding)、位置嵌入(position embedding) 及段嵌入(segment embedding),对应每个文本元素获得文本元素编码、位置编码及段编码,该文本元素的文本特征可以使用一组文本元素编码、位置编码及段编码求和计算得到的向量表示进行表征。
引入位置编码是因为顺序是非常重要的信息,文本元素的顺序代表着文本局部或者全局的结构,如果学习不到序列的顺序信息,那么语言模型的效果将大打折扣。因此本实施例引入了位置编码,将文本元素所在文本序列中的绝对位置进行编码。而段编码是为了区分训练文本中的不同段落。
参考图3所示,输入的训练文本包括5个文本元素,分别为x1、 x2、x3、x4、x5,该训练文本通过序列结束标记【EOS]】可以被分成第一段S1和第二段S2,S1和S2分别有不同的段编码,以区分该段在文本元素序列中是属于源段还是目标段。
同时,该文本元素序列以序列开始标记【SOS]】开头,并且源段序列和目标段序列均以序列结束标记【EOS]】结尾。其中,序列开始标记【SOS]】用于识别输入的文本元素序列的开头,而每个【EOS]】表征语言模型对具体文本段终止训练任务中的解码过程。
根据本公开的示例性的实施方式,在得到每个文本元素的向量编码后,将这些向量作为输入向量输入到多层变换器网络中。
根据本公开的示例性的实施方式,变换器网络采用多头自注意力机制(multi-head self-attention mechanism)对输入的文本元素序列中的各个文本元素进行上下文向量表征。
具体地,根据本公开的示例性实施例,参考图4所示,语言模型训练方法可以包括如下步骤:
步骤410:获取构成训练文本的文本元素序列,文本元素序列分为拼接在一起的源段序列和目标段序列,文本元素序列以序列开始标记开头,源段序列和目标段序列均以序列结束标记结尾;
步骤420:按照设定规则对文本元素序列添加掩码;
步骤430:根据序列开始标记和序列结束标记生成任务适用的掩码矩阵,对变换器网络添加掩码矩阵;
步骤440:利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量,直到输出文本元素序列的表征向量;
步骤450:利用表征向量得到掩码的预测值,并根据预测值和真实值之间的交叉损失函数对变换器网络进行训练,使其收敛,得到语言模型。
在本公开示例性的实施方式中,相邻的上一层是指变换器网络中每一层所相邻的上一层变换器块。其中,每一层变换器块均对相邻的上一层变换器块的输出向量进行聚合编码,这样每一层变换器块都比上一层捕捉到更抽象的文本信息。
其中,最后一层的输出向量作为文本元素序列的表征向量。
在每个变换器块中,使用多个自注意头(self-attention head)来聚合前一层的输出向量,也就是对上一层的输出向量进行编码。每一层变换器块的编码输出如下:
Hl=Transformerl(Hl-1),l∈[1,L]
前一层的输出Hl-1分别使用参数矩阵Wl Q,Wl K,Wl V线性投影到序列 (query)、键(key)和值(value)的三元组Q、K、V,即Q、K、V都是同一个输入的文本元素序列经过线性变换而来的Attention,即 Attention(x,x,x),x就是输入序列。也就是说,在文本元素序列内部做 Attention,寻找序列内部的联系。
输入的文本元素序列是一组向量矩阵,并在变换器块中利用多个自注意力头配置的掩码矩阵来控制当前变换器块对上一层变换器块的输出向量所描述每个文本元素的注意力范围,就是通过不同的掩码矩阵能够控制预测文本元素的可见上下文文本元素数量,实现不同的模型表征。
每一层的自注意力计算使用掩码矩阵来实现的,这样可以加速计算,一次就得到所有位置的输出向量。
在本公开示例性实施方式中,利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量,具体可以包括如下步骤:
在变换器网络中,利用掩码矩阵确定对相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在可见范围内聚合相邻的上一层的输出向量,输出每一层带有上下文信息的输出向量。
在本公开示例性实施方式中,参考图2所示,最上方的掩码矩阵A 为适用于seq2seq模型的掩码矩阵。在这种情况下,可以根据序列开始标记和序列结束标记生成适用于seq2seq任务的掩码矩阵。
其中,在任务为seq2seq模型的情况下,根据序列开始标记和序列结束标记生成任务适用的掩码矩阵,包括:
根据序列开始标记和序列结束标记,按照设定规则对源段序列设置为双向可见,对目标段序列设置为前向可见,生成适用于seq2seq模型任务的掩码矩阵。
具体地,阴影区块表示不可见而会被掩码掉,而无填充块表征可见。结合参考图5,输入文本元素序列包括由源段序列S1构成的第一部分和由目标段序列S2构成的第二部分。其中,相邻两个变换器块之间的实线表征在下一层变换器块,源段序列S1与上一层变换器块输出的其他文本元素之间的连接。而虚线表征在下一层变换器块,目标段序列S2与上一层输出的其他文本元素之间的连接。其中,连接表征可见,不连接表征不可见。
具体地,在下一层变换器块,源段序列S1中的每个文本元素与上一层变换器块输出的源段序列S1中的每个文本元素连接,也就是,第一部分中的文本元素可以在源段序列S1内从两个方向相互可见,即源段序列 S1每个文本元素都受到源段序列S1内的左右两侧文本元素的影响。但,源段序列S1中的每个文本元素与上一层变换器块输出的目标段序列S2不连接,即上一层变换器块输出的目标段序列S2对源段序列S1中的每个文本元素对不可见。
具体地,在下一层变换器块,目标段序列S2中的文本元素与上一层变换器块输出的文本序列中位于该文本元素位置之前的文本元素连接,但与位置之后的文本元素以及自身不连接。也就是,第二部分中目标段序列 S2中的文本元素可见目标段序列S2中位于自身左侧的所有文本元素、以及第一部分的源段序列S1中的所有文本元素。
例如,参考图6,给定源段序列S1中的x1、x2及其目标段序列中的 x3、x4、x5,将输入的文本元素序列“[SOS]x1x2[EOS]x3x4x5 [EOS]”输入变换器网络,其中源段序列S1中的x1和x2可见[SOS]、 x1、x2、[EOS],但目标段序列S2中的x4可见[SOS]、x1、x2、 [EOS]、x3,而不可见x4、x5、[EOS]。
这样,对于第l层变换器块,自注意头Al的输出的计算方式为:
Q=Hl-1Wl Q,K=Hl-1Wl K,V=Hl-1Wl V
其中,0表示可见,负无穷表示不可见,会被掩蔽掉。
使用本公开示例性的实施方式,由于在语言模型训练时,将源段序列和目标段序列结合进入语言模型,使模型可以含蓄地学习到两个文本之间关系,可以做到seq-to-seq的效果,语言模型的核心是通过特殊的注意力掩码来赋予模型具有Seq2Seq的能力。其中源段序列是上下文可见的,可以连是双向的注意力Attention,而目标段序列中的文本元素则是输出,输出序列是单向可见的,因为是逐字预测,前面的输出文本元素看不到后面的输出文本元素,因此连的是单向注意力,从而允许递归地预测文本元素。
这样一来,输入部分的Attention是双向的,输出部分的Attention是单向,满足Seq2Seq的要求,而且没有额外约束,所以通过这个巧妙的转换,使得只需要训练一个变换器网络,就具备了文本生成能力。本公开示例性实施例只需要设计要添加上述形状的掩码Mask,而不需要修改模型架构,语言模型的网络结构简单,方案实现方式可行性和可靠性高。
在本公开示例性实施例中,根据序列开始标记和序列结束标记生成适用于seq2seq模型、单向语言模型或双向语言模型中的至少一种任务的掩码矩阵。
再参考图2所示适用于单向语言模型的掩码矩阵B,使用上三角矩阵来作为掩码矩阵,阴影部分为-∞,空白部分为0。从前到后,即通过被添加掩码的文本元素之前的所有文本元素来预测被掩蔽的文本元素。例如预测文本序列“x1x2[MASK]x4”中的[Mask]可以利用x1、x2和它自身进行编码。
再参考图2所示适用于双向语言模型的掩码矩阵C,在预测被掩蔽的文本元素时,可以观察到所有文本元素。例如,预测文本序列预测序列“x1x2[MASK]x4”中的[Mask],可以利用x1、x2、x4和它自身进行编码。具体使用全0矩阵来作为掩码矩阵。
因此,对于单向语言模型,语言模型输入的文本元素序列就是一个单独的文本,虽然该文本被分割成两段。而对于双向语言模型和序列到序列的语言模型,语言模型输入的文本元素序列是一个文本对,也即是相当于两个句子。
因此,对于不同的语言模型,我们可以仅改变掩码矩阵的形式,就可以完成联合训练,实现同一程序做不同的任务。也可以理解成,通过不同训练任务,去优化同一分模型参数,在不同语言模型的训练任务中,模型参数是共享的,无需在多个语言模型上分别训练和配置。而且可以参数共享使得学习到的文本向量表征具有更强的泛化能力,可以在不同的语言模型目标进行联合优化,减轻了对任何单个语言模型任务的过度拟合。
因此,使用本公开示例性的实施方式,可以根据序列开始标记和序列结束标记生成适用于seq2seq模型、单向语言模型或双向语言模型中的至少一种任务的掩码矩阵。
使用本公开示例性的实施方式,语言模型可以通过设计灵活的自掩码矩阵,为不同类型的语言模型聚合上下文,不仅可以用于自然语言理解 NLU(Natural LanguageUnderstanding)任务,还可以用于自然语言生成 NLG(Natural Language Generation)任务,语言模型训练任务具有通用性和灵活性。
在本公开示例性的实施方式中,按照设定规则对文本元素序列添加掩码,具体可以为,利用变换器网络对目标段序列按照设定规则添加掩码,则得到的语言模型作为文案生成模型。具体地,可随机掩蔽目标段序列中一定比例的文本元素,而对源段序列不做掩码,在训练阶段让语言模型学习恢复被掩盖的文本元素。
在本公开示例性的实施方式中,语言模型可以用作预训练语言模型,这样按照设定规则对源段序列和目标段序列均添加掩码,得到的语言模型作为预训练语言模型。具体地,在训练阶段做掩码的时候,随机掩盖掉源段序列和目标段序列的文本元素,也就是两段都参与训练。
在本公开示例性实施例中,利按照设定规则对文本元素序列添加掩码,具体可以包括:
对文本元素序列中的文本元素设置为不可见或进行文本元素替换。
在本公开示例性实施例中,参考图2所示,输入的文本元素序列 x1、x2、x3、x4、x5经多层变换器网络之后输出表征向量h1、h2、h3、 h4、h5。在本公开示例性实施例中,将该表征向量输入到softmax分类器中,以预测掩码的预测值。
语言模型的训练目标是被掩码的文本元素预测值与真实值之间的交叉熵损失函数,可采用如下公式表征:
其中,M表示被掩码(mask)的词集合,|V|是所用的词表大小。
其中,交叉熵(cross entropy)是引自信息论的重要概念,它用来衡量在给定的真实分布p下,使用非真实分布q所指定的策略来表示某个事件发生所需要的平均比特数。在机器学习场景下,交叉熵损失函数作为一种损失函数,衡量真实数据分布(真实值)与模型预测结果(预测值)的相似性。
在本公开示例性的实施方式中,softmax分类器为归一化指数函数,属于有限项离散概率分布的梯度对数归一化,可以与交叉熵损失函数联合使用。
下面结合图7描述根据本公开示例性实施方式的文案生成方法。
参考图7,文案生成方法包括如下步骤:
步骤710:获取输入文本元素序列,输入文本元素序列包括以序列开始标记开头并以第一序列结束标记结尾的源段序列,以及用于目标段序列预测终止的第二序列结束标记;
步骤720:按照设定规则在第一序列结束标记和第二序列结束标记之间插入标记预测目标段文本元素的掩码;
步骤730:将带有所述掩码的输入文本元素序列输入上述任一实施例的语言模型训练方法训练得到的文案生成模型,通过文案生成模型中的变换器网络对输入文本元素序列中的每个文本元素编码成带有上下文信息的向量,输出表征向量;
步骤740:利用所述表征向量对掩码预测得到目标段文本元素,直到终止于第二序列结束标记,并利用目标段文本元素生成目标段序列,并输出由源段序列和目标段序列构成的文案。
在本公开示例性实施方式中,使用输入文本元素序列预测目标段文本元素,直到第二序列结束标记为止,并最终获得由目标段文本元素依序组成的目标段序列,获得文案生成模型输出的由源段序列和目标段序列构成的完整文案。
通过预先得到的目标段序列的长度确定第二序列结束标记的位置,表征目标段序列的结尾,也是目标段序列预测终止的标记。因此,从预测开始到结束可能经历多轮目标段文本元素预测,每一轮预测得到的目标段文本元素会重新放入输入文本元素序列,重复上述步骤710和720直到解码到第二序列结束标记为止。
根据本公开示例性实施方式,通过采用基于单一变换器网络的文案生成模型,将文案生成任务转换成句子补全任务,实现seq2seq的效果,在文案生成模型的网络结构简单的情况下,在文案生成任务应用上具有可靠的结果。
根据本公开示例性实施方式,获取输入文本元素序列,具体可以包括如下步骤:
获取构成输入文本元素序列的各文本元素;
对各文本元素进行文本元素编码、位置编码和段编码;
将编码后的各文本元素构成输入文本元素序列。
在本公开示例性的实施方式中,对输入文本中的每个文本元素提取文本特征,对每个文本元素可以使用文本元素编码、位置编码和段编码进行向量表示,这样对应输入文本可以得到一组向量表示,该一组向量表示作为输入文本元素序列。
在本公开示例性实施例中,在第一序列结束标记和第二序列结束标记之间添加的掩码定义待预测的目标段文本元素的位置。
在预测目标段序列的第一个目标段文本元素时,根据待预测的目标段序列的长度将所有待预测的目标段文本元素的位置均添加掩码,并输入到文案生成模型,输出位于首位的掩码的目标段文本元素。
在已预测得到前面的目标段文本元素的情况下,将该已得到目标段文本元素之后所有位置添加掩码,并再次将添加掩码的输入文本元素序列输入到文案生成模型进行新一轮的目标段文本元素预测,进而对已得到目标段文本元素之后相邻的掩码得到新的目标段文本元素。
因此,通过迭代,可以得到组成目标段序列的所有目标段文本元素,这些目标段文本元素用来生成目标段序列,并最终输出文案。
在本公开示例性实施例中,在原始输入文本元素序列中添加的掩码,是根据待预测的目标段序列的长度确定的,这允许用户进行自定义,带来良好的用户体验感。
根据本公开示例性的实施方式,变换器网络为多层变换器网络,使用多层变换器网络,能够挖掘文本元素序列之间更加抽象的关系,使得表征向量对输入文本元素序列进行更加抽象的表达,使得文案生成模型具有更好的泛化能力,文案生成任务的结果更可靠和精确。
根据本公开示例性的实施方式,参考图8,文案生成方法包括如下步骤:
步骤810:获取输入文本元素序列,输入文本元素序列包括以序列开始标记开头并以第一序列结束标记结尾的源段序列,以及用于目标段序列预测终止的第二序列结束标记;
步骤820:按照设定规则在第一序列结束标记和第二序列结束标记之间插入标记预测目标段文本元素的掩码;
步骤830:根据序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵,对变换器网络添加掩码矩阵;
步骤840:将带有掩码的输入文本元素序列输入上述任一公开示例性实施例的语言模型训练方法训练得到的文案生成模型,利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量,直到输出文本元素序列的表征向量;
步骤850:利用表征向量对掩码预测得到目标段文本元素,直到终止于第二序列结束标记,并利用目标段文本元素生成目标段序列,并输出由源段序列和目标段序列构成的文案。
在每层变换器块中,使用多个自注意头(self-attention head)来聚合前一层的输出向量。每一层变换器块的编码输出如下:
Hl=Transformerl(Hl-1),l∈[1,L]
前一层的输出Hl-1分别使用参数矩阵Wl Q,Wl K,Wl V线性投影到序列 (query)、键(key)和值(value)的三元组Q、K、V,来寻找文本元素序列内部各文本元素之间的联系,以输出带有上下文信息的表征向量。
在本公开示例性的实施方式中,通过事先设置第二序列结束标记可以自定义目标段序列的长度,并最终获得自定义的文案长度,提升文案生成任务的用户体验度。
输入文本元素序列在变换器块中利用多个自注意力头配置的掩码矩阵来控制每个文本元素的可见范围,来控制待预测目标段文本元素的可见上下文文本元素数量,实现对掩码上下文信息的向量表征。
在本公开示例性实施方式中,利用带有掩码矩阵的变换器网络在目标层对相邻的上一层的输出向量进行编码,生成目标层的输出向量,可以包括如下步骤:
在变换器网络中,利用掩码矩阵确定对相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在可见范围内聚合相邻的上一层的输出向量,输出每一层带有上下文信息的输出向量。
在这种情况下,由于是利用前一侧的输入文本元素序列预测目标段序列,因此掩码矩阵设计为对掩码左侧上下文可见。
根据本公开示例性的实施方式,目标段序列的长度可以是默认设置,则第二序列结束标记的位置是默认设置的。
根据本公开示例性的实施方式,文案生成方法还包括:
在根据序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵之前,接收用户输入;
响应于用户输入,获得目标段序列的长度,根据待预测目标段序列的长度确定待预测目标段序列结尾的第二序列结束标记。
在本公开示例性的实施方式中,提供对文案长度的用户定制方案,能够根据响应于用户输入确定第二序列结束标记的位置。
另外,根据用户定义目标段序列可以生成对应的目标段掩码序列,用来插入到第一序列结束标记和第二序列结束标记之间,标记目标段序列的位置。
本公开示例性实施方式实现用户对待预测的目标段序列长度进行定制,增强用户体验度。
正如前文,对应于待预测目标段序列的长度,进行多轮目标段文本元素的预测。其中,对每一轮目标段文本元素预测,利用表征向量预测目标段文本元素,具体可以包括如下步骤:
根据表征向量进行目标段文本元素预测,得到多个候选文本元素的概率;
采用波束搜索在多个候选文本元素中选取概率排名在前的目标数量的目标文本元素。
在这种情况下,在目标数量为大于1的情况下,每一轮目标段文本元素预测可以得到多个目标段文本元素,这样可以将每个目标段文本元素放入输入文本元素序列进行下一轮目标段文本元素预测。
因此,使用本公开示例性的实施方式,对应每一轮可能得到的多个目标段文本元素序列并经过多轮预测叠加,能够获得多组文案。
在本公开示例性的实施方式中,对于一个输入文本元素序列,上述文案生成模型能预测出这个输入序列在词表上每个词的概率。而Seq2Seq任务就是基于已知的输入序列不断来生成新的输出序列,相当于是已知输入序列X的条件下,寻找条件概率P(Y|X)最大的输出序列Y:
P(Y|X)=P(Y1|X)P(Y2|X,Y1)P(Y3|X,Y1,Y2)……P(Yn|X,Y1,Y2..Yn-1)
以图9为例,输入文本元素序列是X=“我想吃”,左边的词表中的每一轮的概率值是文案生成模型对每一轮的输入文本元素序列在词表上预测得到的概率值。词表中有“苹、果、猕、猴、桃”五个字,目标输出是“我想吃猕猴桃”。
文案生成模型第1轮的时候输出“苹”的概率值最高是0.4,如果是贪心搜索的话,文案生成模型则会确认第一轮的输出为“苹”。而搜索解码器beam search会选择输出top(k)的结果,如果设置k为2(这里参数 k是可以调的),那么模型会同时输出两种结果“我想吃苹”和“我想吃猕”,也就是P(Y1|X)的top(2);
第2轮的时候,贪心搜索则会继续基于“我喜欢吃苹”来输出概率值最高的字,而beam search则会分别基于“我想吃猕”和“我想吃苹”总共可以得到2X2=4种组合,这时会计算每一种组合的总概率继续取前两个,也就是P(Y2|X,Y1)的top(2),比如得到了“我想吃猕猴”和“我想吃苹K1”。接下来继续进行第3轮,通过这种方式可以使后续的每一轮输出结果都只取top(2),虽然本质还是局部搜索,但是结合了更多的可能性,最终结果是将每一轮概率相乘,相乘概率最大的作为最终输出,使得模型最终的生成结果效果更好。
在本公开示例性的实施方式中,还可以采用随机采样生成策略来,文案生成模型每轮解码的时候会从概率值top(k)里随机采样一个对应的目标段文本元素用于生成,这种方式有利于生成结果的多样性。
根据本公开示例性的实施方式,语言模型训练方法及对应的文案生成方法能够应用于直播文案、歌单文案、评论语、广告语等文案生成任务。
例如,以直播推荐系统主播个性化文案生成场景,先使用相应直播场景下的大量历史语料数据以及开源语料,采用上文公开示例性的语言模型训练方法训练文案生成模型。
在获得训练好的文案生成模型的情况下,使用已知主播的用户标签或自设标题作为输入文本元素序列,文案生成模型输入该输入文本元素序列,输出基于该输入文本元素序列预测的目标段序列,输入文本元素序列和目标段序列一起构成完整文案。该文案是基于用户标签或自设标题自动生成的,更能体现主播个性化。
在具体应用场景中,可以通过用户界面接收主播用户输入,根据主播用户输入的文本自动生成对应文案,并在主播界面展示文案。
示例性装置
在介绍了本公开示例性实施方式的语言模型训练方法及文案生成方法之后,接下来,参考图10对本公开示例性实施方式的语言模型训练装置进行描述。
参考图10所示,本公开示例性实施方式的语言模型训练装置1000可以包括:
第一获取模块1010,获取构成训练文本的文本元素序列,文本元素序列分为拼接在一起的源段序列和目标段序列,文本元素序列以序列开始标记开头,源段序列和目标段序列均以序列结束标记结尾;
第一掩码添加模块1020,按照设定规则对文本元素序列添加掩码;
第一模型输入模块1030,将带有掩码的文本元素序列输入语言模型的变换器网络,通过变换器网络对文本元素序列中的每个文本元素编码成带有上下文信息的向量,并输出表征向量;
训练模块1040,利用表征向量得到掩码的预测值,并根据预测值和真实值之间的交叉损失函数对变换器网络进行训练,使其收敛,得到语言模型。
根据本公开示例性实施例,第一掩码添加模块1020具体用于:
对源段序列和目标段序列均添加掩码,得到的语言模型作为预训练语言模型。
根据本公开示例性实施例,第一获取模块1010具体用于:
获取构成文本元素序列的各文本元素;
对各文本元素进行文本元素编码、位置编码和段编码;
将编码后的各文本元素构成文本元素序列。
根据本公开示例性实施例,第一掩码添加模块1020具体用于:
对文本元素序列中的文本元素设置为不可见或进行文本元素替换。
根据本公开示例性实施例,与图10相比,图11所示语言模型训练装置1100还包括:
第一掩码矩阵生成模块1110,根据序列开始标记和序列结束标记生成任务适用的掩码矩阵,对变换器网络添加掩码矩阵;
第一模型输入模块1120具体用于:
利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量。
根据本公开示例性实施例,第一模型输入模块1120具体还用于:
在变换器网络中,利用掩码矩阵确定对相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在可见范围内聚合相邻的上一层的输出向量,输出每一层带有上下文信息的输出向量。
根据本公开示例性实施例,第一掩码矩阵生成模块1110具体用于:
根据序列开始标记和序列结束标记生成适用于seq2seq模型、单向语言模型或双向语言模型中的至少一种任务的掩码矩阵。
根据本公开示例性实施例,在任务为seq2seq模型的情况下,第一掩码矩阵生成模块1110具体还用于:
根据序列开始标记和序列结束标记,按照设定规则对源段序列设置为双向可见,对目标段序列设置为前向可见,生成适用于seq2seq模型任务的掩码矩阵。
接下来,参考图12对本公开示例性实施方式的文案生成装置1200进行描述。
参考图12所示,本公开示例性实施方式的文案生成装置1200可以包括:
第二获取模块1210,获取输入文本元素序列,所述输入文本元素序列包括以序列开始标记开头并以第一序列结束标记结尾的源段序列,以及用于目标段序列预测终止的第二序列结束标记;
第二掩码添加模块1220,按照设定规则在第一序列结束标记和第二序列结束标记之间插入标记预测目标段文本元素的掩码;
第二模型输入模块1230,将带有掩码的所述输入文本元素序列输入根据本公开任一示例性实施例的语言模型训练方法训练得到的文案生成模型,通过所述文案生成模型中的变换器网络对所述输入文本元素序列中的每个文本元素编码成带有上下文信息的向量,输出表征向量;
预测模块1240,利用表征向量对所述掩码预测得到目标段文本元素,直到终止于所述第二序列结束标记,并利用所述目标段文本元素生成目标段序列,并输出由所述源段序列和所述目标段序列构成的文案。
根据本公开示例性实施例,第二获取模块1210具体用于:
获取构成输入文本元素序列的各文本元素;
对各文本元素进行文本元素编码、位置编码和段编码;
将编码后的各文本元素构成输入文本元素序列。
根据本公开示例性实施例,预测模块1240具体用于:
根据表征向量进行目标段文本元素预测,得到多个候选文本元素的概率;
采用波束搜索在多个候选文本元素中选取概率排名在前的目标数量的目标文本元素。
根据本公开示例性实施例,与图12相比,图13所示文案生成装置 1300还包括:
第二掩码矩阵生成模块1310,根据序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵,对变换器网络添加掩码矩阵;
第二模型输入模块1320具体用于:
利用带有掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成每一层的输出向量。
根据本公开示例性实施例,第二模型输入模块1320具体还用于:
在变换器网络中,利用掩码矩阵确定对相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在可见范围内聚合相邻的上一层的输出向量,输出每一层带有上下文信息的输出向量。
根据本公开示例性实施例,与图13相比,图14所示文案生成装置 1400还包括:
接收模块1410,在根据序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵之前,接收用户输入;
响应模块1420,响应于用户输入,获得目标段序列的长度,根据目标段序列的长度确定表征目标段序列结尾的第二序列结束标记。
由于本公开实施方式的语言模型训练装置和文案生成装置的各个功能模块与上述语言模型训练方法和文案生成方法公开实施方式中相同,因此在此不再赘述。
示例性存储介质
在介绍了本公开示例性实施方式的语言模型训练方法和文案生成方法以及语言模型训练装置和文案生成装置之后,接下来,参考图15对本公开示例性实施方式的存储介质进行说明。
参考图15所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品1500,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、 C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
在介绍了本公开示例性实施方式的存储介质之后,接下来,参考图 16对本公开示例性实施方式的电子设备进行说明。
图16显示的电子设备1600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图16所示,电子设备1600以通用计算设备的形式表现。电子设备1600的组件可以包括但不限于:上述至少一个处理单元1610、上述至少一个存储单元1620、连接不同系统组件(包括存储单元1620和处理单元1610)的总线1630、显示单元1640。
其中,存储单元存储有程序代码,程序代码可以被处理单元1610执行,使得处理单元1610执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元1610可以执行如图1或图7中所示的步骤。
存储单元1620可以包括易失性存储单元,例如随机存取存储单元 (RAM)1621和/或高速缓存存储单元1622,还可以进一步包括只读存储单元(ROM)1623。
存储单元1620还可以包括具有一组(至少一个)程序模块1625的程序/实用工具1624,这样的程序模块1625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1630可以包括数据总线、地址总线和控制总线。
电子设备1600也可以与一个或多个外部设备1700(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口1650 进行。电子设备1600还包括显示单元1640,其连接到输入/输出(I/O) 接口1650,用于进行显示。并且,电子设备1600还可以通过网络适配器 1660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1660通过总线 1630与电子设备1600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了语言模型训练装置和文案生成装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种语言模型训练方法,其特征在于,包括:
获取构成训练文本的文本元素序列,所述文本元素序列分为拼接在一起的源段序列和目标段序列,所述文本元素序列以序列开始标记开头,所述源段序列和目标段序列均以序列结束标记结尾;
按照设定规则对所述文本元素序列添加掩码;
将带有掩码的所述文本元素序列输入语言模型的变换器网络,通过所述变换器网络对所述文本元素序列中的每个文本元素编码成带有上下文信息的向量,并输出表征向量;
利用所述表征向量得到所述掩码的预测值,并根据所述预测值和真实值之间的交叉损失函数对所述变换器网络进行训练,使其收敛,得到所述语言模型。
2.根据权利要求1所述的语言模型训练方法,其特征在于,所述方法还包括:
根据所述序列开始标记和序列结束标记生成任务适用的掩码矩阵,对所述变换器网络添加所述掩码矩阵;
所述通过所述变换器网络对所述文本元素序列中的每个文本元素编码成带有上下文信息的向量,包括:
利用带有所述掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成所述每一层的输出向量。
3.根据权利要求2所述的语言模型训练方法,其特征在于,所述利用带有所述掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成所述每一层的输出向量,包括:
在所述变换器网络中,利用所述掩码矩阵确定对所述相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在所述可见范围内聚合所述相邻的上一层的输出向量,输出所述每一层带有上下文信息的输出向量。
4.一种文案生成方法,其特征在于,包括:
获取输入文本元素序列,所述输入文本元素序列包括以序列开始标记开头并以第一序列结束标记结尾的源段序列,以及用于目标段序列预测终止的第二序列结束标记;
按照设定规则在所述第一序列结束标记和第二序列结束标记之间插入标记预测目标段文本元素的掩码;
将带有所述掩码的所述输入文本元素序列输入根据权利要求1-3任一项所述语言模型训练方法训练得到的文案生成模型,通过所述文案生成模型中的变换器网络对所述输入文本元素序列中的每个文本元素编码成带有上下文信息的向量,输出表征向量;
利用所述表征向量对所述掩码预测得到目标段文本元素,直到终止于所述第二序列结束标记,并利用所述目标段文本元素生成目标段序列,并输出由所述源段序列和所述目标段序列构成的文案。
5.根据权利要求4所述的文案生成方法,其特征在于,所述方法还包括:
根据所述序列开始标记、第一序列结束标记和第二序列结束标记生成掩码矩阵,对所述变换器网络添加所述掩码矩阵;
所述通过所述文案生成模型中的变换器网络对所述输入文本元素序列中的每个文本元素编码成带有上下文信息的向量,包括:
利用带有所述掩码矩阵的变换器网络在每一层对相邻的上一层的输出向量进行编码,生成所述每一层的输出向量。
6.根据权利要求5所述的文案生成方法,其特征在于,利用带有所述掩码矩阵的变换器网络在目标层对相邻的上一层的输出向量进行编码,生成所述目标层的输出向量,包括:
在所述变换器网络中,利用所述掩码矩阵确定对所述相邻的上一层的输出向量所描述文本元素的可见范围;
利用每一层的多个自注意力头在所述可见范围内聚合所述相邻的上一层的输出向量,输出所述每一层带有上下文信息的输出向量。
7.一种语言模型训练装置,其特征在于,包括:
第一获取模块,获取构成训练文本的文本元素序列,所述文本元素序列分为拼接在一起的源段序列和目标段序列,所述文本元素序列以序列开始标记开头,所述源段序列和目标段序列均以序列结束标记结尾;
第一掩码添加模块,按照设定规则对所述文本元素序列添加掩码;
第一模型输入模块,将带有掩码的所述文本元素序列输入语言模型的变换器网络,通过所述变换器网络对所述文本元素序列中的每个文本元素编码成带有上下文信息的向量,并输出表征向量;
训练模块,利用所述表征向量得到所述掩码的预测值,并根据所述预测值和真实值之间的交叉损失函数对所述变换器网络进行训练,使其收敛,得到所述语言模型。
8.一种文案生成装置,其特征在于,包括:
第二获取模块,获取输入文本元素序列,所述输入文本元素序列包括以序列开始标记开头并以第一序列结束标记结尾的源段序列,以及用于目标段序列预测终止的第二序列结束标记;
第二掩码添加模块,按照设定规则在所述第一序列结束标记和第二序列结束标记之间插入标记预测目标段文本元素的掩码;
第二模型输入模块,将带有所述掩码的所述输入文本元素序列输入根据权利要求1-3任一项所述语言模型训练方法训练得到的文案生成模型,通过所述文案生成模型中的变换器网络对所述输入文本元素序列中的每个文本元素编码成带有上下文信息的向量,输出表征向量;
预测模块,利用所述表征向量对所述掩码预测得到目标段文本元素,直到终止于所述第二序列结束标记,并利用所述目标段文本元素生成目标段序列,并输出由所述源段序列和所述目标段序列构成的文案。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现:
权利要求1~3中任一项所述的语言模型训练方法;和/或
权利要求4~6中任一项所述的文案生成方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行:
权利要求1~3中任一项所述的语言模型训练方法;和/或
权利要求4~6中任一项所述的文案生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111340858.9A CN114048289A (zh) | 2021-11-12 | 2021-11-12 | 语言模型训练方法、文案生成方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111340858.9A CN114048289A (zh) | 2021-11-12 | 2021-11-12 | 语言模型训练方法、文案生成方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048289A true CN114048289A (zh) | 2022-02-15 |
Family
ID=80208694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111340858.9A Pending CN114048289A (zh) | 2021-11-12 | 2021-11-12 | 语言模型训练方法、文案生成方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048289A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115081428A (zh) * | 2022-07-22 | 2022-09-20 | 粤港澳大湾区数字经济研究院(福田) | 一种处理自然语言的方法、自然语言处理模型、设备 |
CN116245197A (zh) * | 2023-02-21 | 2023-06-09 | 北京数美时代科技有限公司 | 一种提升语言模型的训练速率的方法、系统、介质及设备 |
CN116822632A (zh) * | 2023-08-28 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 一种文本数据的推理方法、装置、存储介质和电子设备 |
-
2021
- 2021-11-12 CN CN202111340858.9A patent/CN114048289A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115081428A (zh) * | 2022-07-22 | 2022-09-20 | 粤港澳大湾区数字经济研究院(福田) | 一种处理自然语言的方法、自然语言处理模型、设备 |
CN116245197A (zh) * | 2023-02-21 | 2023-06-09 | 北京数美时代科技有限公司 | 一种提升语言模型的训练速率的方法、系统、介质及设备 |
CN116245197B (zh) * | 2023-02-21 | 2023-11-07 | 北京数美时代科技有限公司 | 一种提升语言模型的训练速率的方法、系统、介质及设备 |
CN116822632A (zh) * | 2023-08-28 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 一种文本数据的推理方法、装置、存储介质和电子设备 |
CN116822632B (zh) * | 2023-08-28 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 一种文本数据的推理方法、装置、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10559300B2 (en) | Generating target sequences from input sequences using partial conditioning | |
CN111222317B (zh) | 序列标注方法、系统和计算机设备 | |
CN114048289A (zh) | 语言模型训练方法、文案生成方法以及相关设备 | |
US20180357225A1 (en) | Method for generating chatting data based on artificial intelligence, computer device and computer-readable storage medium | |
CN107870902A (zh) | 神经机器翻译系统 | |
CN107705784B (zh) | 文本正则化模型训练方法和装置、文本正则化方法和装置 | |
CN112329465A (zh) | 一种命名实体识别方法、装置及计算机可读存储介质 | |
CN111078865B (zh) | 文本标题生成方法和装置 | |
JP7204802B2 (ja) | 対話生成方法、装置、電子機器及び媒体 | |
Luo et al. | Semantic-conditional diffusion networks for image captioning | |
CN111506725B (zh) | 生成摘要的方法和装置 | |
CN110782871B (zh) | 一种韵律停顿预测方法、装置以及电子设备 | |
KR102521586B1 (ko) | 텍스트 핵심정보 추출방법, 장치, 전자기기 및 기록매체 | |
WO2023201975A1 (zh) | 一种差异描述语句生成方法、装置、设备及介质 | |
CN111460135B (zh) | 用于生成文本摘要的方法和装置 | |
KR20200063281A (ko) | 신경망 자동 번역 장치 및 그 방법 | |
CN111460800A (zh) | 一种事件生成方法、装置、终端设备及存储介质 | |
CN116050496A (zh) | 图片描述信息生成模型的确定方法及装置、介质、设备 | |
CN112528669A (zh) | 多语言模型的训练方法、装置、电子设备和可读存储介质 | |
CN113434642B (zh) | 文本摘要生成方法、装置及电子设备 | |
CN116861363A (zh) | 多模态的特征处理方法、装置、存储介质与电子设备 | |
CN113901841A (zh) | 翻译方法、装置以及存储介质 | |
KR20220124389A (ko) | 사전학습 모델을 활용하는 미세조정 모델 서비스 방법 및 제공 시스템 | |
CN114490968B (zh) | 对话状态跟踪方法、模型训练方法、装置以及电子设备 | |
Maqsood | Evaluating NewsQA Dataset With ALBERT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |