CN113326693B - 一种基于词粒度的自然语言模型的训练方法与系统 - Google Patents
一种基于词粒度的自然语言模型的训练方法与系统 Download PDFInfo
- Publication number
- CN113326693B CN113326693B CN202110588758.1A CN202110588758A CN113326693B CN 113326693 B CN113326693 B CN 113326693B CN 202110588758 A CN202110588758 A CN 202110588758A CN 113326693 B CN113326693 B CN 113326693B
- Authority
- CN
- China
- Prior art keywords
- words
- word
- frequency
- training
- natural language
- 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.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 109
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000013598 vector Substances 0.000 claims abstract description 45
- 230000003044 adaptive effect Effects 0.000 claims abstract description 29
- 230000011218 segmentation Effects 0.000 claims abstract description 25
- 238000007667 floating Methods 0.000 claims abstract description 16
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 9
- 239000011159 matrix material Substances 0.000 claims abstract description 9
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- 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/047—Probabilistic or stochastic networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Biomedical Technology (AREA)
- Machine Translation (AREA)
Abstract
本公开提供了一种基于词粒度的自然语言模型的训练方法和系统,所述方法包括:根据词典将训练语料分词,所述分词的粒度为词语;根据词频,将分词的结果按照词频大小排序,分为三组词语,分别为高频词语、中频词语、低频词语;将所述三组词语嵌入向量;通过变形层进行编码与解码,得到带有浮点数的多个向量;将所述带有浮点数的多个向量通过自适应线性层,将其中概率超过阈值的向量选择为输出,并转化为预测词语;训练自然语言模型时,使用中文句子为样本数据,以及预先确定的预测词语为样本标签;使用自适应优化器训练自然语言模型,所述自适应优化器使用矩阵的低秩分解来压缩训练中产生的变量。
Description
技术领域
本公开涉及自然语言处理技术领域,特别涉及一种基于词粒度的自然语言模型的训练方法、系统、电子设备及计算机可读存储介质。
背景技术
目前常见的中文自然语言模型往往是以字为粒度进行处理,即每一个中文语句都会被拆分为一个个汉字来进行处理,目前以词为粒度的中文自然语言模型很少。但是,词在汉语中扮演了非常重要的角色。在汉语中的很多词所表达的含义往往与字并没有直接的联系,如音译的国家名,音译的商品名等。从这方面来看,纯粹以词为单位存在的中文自然语言模型可以表达出字所不具备的语义。此外,训练词的语言模型能够得到高质量的上下文相关的词向量,这些词向量可以使用到各种应用和下游任务之中。
因此,急需一种基于词粒度的自然语言模型的训练方法,可以使用词粒度训练中文自然语言模型,每一条中文语句会被拆分为词而不是一个个汉字,这样做可以大大缩短一句话所需要的编码长度,从而大大加快语言模型处理任务的时间。
发明内容
有鉴于此,本公开实施例的目的在于提供一种基于词粒度的自然语言模型的训练方法,可以使用词粒度训练中文自然语言模型,每一条中文语句会被拆分为词而不是一个个汉字,可以得到高质量的上下文相关的词向量,这些词向量可以使用到各种应用和下游任务之中,也可以大大缩短一句话所需要的编码长度,从而大大加快语言模型处理任务的时间,同时,减缓未登陆词出现的频率,减少训练的溢出的问题。
根据本公开的第一方面,提供了一种基于词粒度的自然语言模型的训练方法,包括:
根据词典将训练语料分词,所述分词的粒度为词语;
根据词频,将分词的结果按照词频大小排序,分为三组词语,分别为高频词语、中频词语、低频词语;
将所述三组词语嵌入向量;通过变形层进行编码与解码,得到带有浮点数的多个向量;
将所述带有浮点数的多个向量通过自适应线性层,将其中概率超过阈值的向量选择为输出,并转化为预测词语;
训练自然语言模型时,使用中文句子为样本数据,以及预先确定的预测词语为样本标签;使用自适应优化器训练自然语言模型,所述自适应优化器使用矩阵的低秩分解来压缩训练中产生的变量。
在一个可能的实施例中,其中,所述自适应线性层首先只使用高频词语预测,当发现表示预测词语是中频或低频词语的第一预测概率较高时,则继续使用中频或低频词语进行预测,在得到表示预测词语是中频或低频词语的第二预测概率时,则预测词语的实际概率即为第一预测概率与第二预测概率的乘积。
在一个可能的实施例中,其中,所述训练自然语言模型时,预加载了基于字粒度自然语言模型的权重,所述基于词粒度的自然语言模型的词权重是由组成该词的每一个字的基于字粒度的自然语言模型的字权重的和的平均值。
在一个可能的实施例中,其中,所述分词还包括:采用将长词切分成短词和字的分词方法。
在一个可能的实施例中,还包括:得到所述预测词语后,训练还包括预测下一句话的任务。
在一个可能的实施例中,还包括:所述训练使用多卡分布式策略,在多个GPU上同时进行。
在一个可能的实施例中,还包括:调整高频词语、中频词语、低频词语的比例,使得训练时,每次训练的数据样本数量维度可以适应GPU计算能力。
根据本公开的第二方面,提供了一种用于训练基于词粒度的自然语言模型的系统,包括:
分词单元,用于根据词典将训练语料分词,所述分词的粒度为词语;
词频单元,用于根据词频,将分词的结果按照词频大小排序,分为三组词语,分别为高频词语、中频词语、低频词语;
分析单元,用于将所述三组词语嵌入向量;通过变形层进行编码与解码,得到带有浮点数的多个向量;
预测单元,用于将所述带有浮点数的多个向量通过自适应线性层,将其中概率超过阈值的向量选择为输出,并转化为预测词语;
训练自然语言模型时,使用中文句子为样本数据,以及预先确定的预测词语为样本标签;使用自适应优化器训练自然语言模型,所述自适应优化器使用矩阵的低秩分解来压缩训练中产生的变量。
根据本公开的第三方面,提供一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,该指令被处理器执行时使处理器执行如第一方面所述的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了根据现有技术的典型的基于字粒度的编码方法的示意图。
图2示出了根据本公开实施例的典型的基于词粒度的编码方法的示意图。
图3示出了根据本公开实施例的典型的词语分组的示意图。
图4示出了根据本公开实施例的典型的用于训练基于词粒度的自然语言模型的方法的示意图。
图5示出了根据本公开实施例的典型的基于词粒度BERT训练模型框架的示意图。
图6示出了根据本公开实施例的典型的预加载字权重的方法的示意图。
图7示出了根据本公开实施例的典型的用于训练基于词粒度的自然语言模型的系统的示意图。
图8示出了用于实现本公开实施例的电子设备的结构示意图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
目前常见的中文自然语言模型往往是以字为粒度进行处理,即每一个中文语句都会被拆分为一个个汉字来进行处理,如谷歌发布的中文BERT模型,以及哈工大发布的RoBERTa-wwm-ext模型,MacBERT模型等。目前以词为粒度的中文自然语言模型很少。但是,词在汉语中扮演了非常重要的角色。在汉语中的很多词所表达的含义往往与字并没有直接的联系,如音译的国家名,音译的商品名等。从这方面来看,纯粹以词为单位存在的中文自然语言模型可以表达出字所不具备的语义。此外,训练词的语言模型能够得到高质量的上下文相关的词向量,这些词向量可以使用到各种应用和下游任务之中。
但现有技术中,谷歌原生的BERT模型、RoBERTa-wwm-ext、MacBERT等字粒度模型的词典中提前留出的【unused】空位只有99个,对于词来说显然是不够用的,不能直接将词补充到原词典内;若要替换掉谷歌中文BERT模型的原生词典,直接建立一个新的可以覆盖住大部分语料的词典,则会因为可训练参数过多而在训练BERT模型时出现显存溢出的问题;若是缩小词典规模,语料又会出现未登陆词过多的情况,影响训练效果。这样来看,基于词粒度直接做训练虽然可行,但在训练时也往往存在着很大的难度,而且如何减缓未登陆词出现的频率也是个难题。
有鉴于此,本公开实施例的目的在于提供一种基于词粒度的自然语言模型的训练方法,可以使用词粒度训练中文自然语言模型,每一条中文语句会被拆分为词而不是一个个汉字,可以得到高质量的上下文相关的词向量,这些词向量可以使用到各种应用和下游任务之中,也可以大大缩短一句话所需要的编码长度,从而大大加快语言模型处理任务的时间,同时,减缓未登陆词出现的频率,减少训练的溢出的问题。
以下结合附图详细描述本公开。
图1示出了根据现有技术的典型的基于字粒度的编码方法的示意图。
如图1所示,在现有技术的一个自然语言模型BERT中,对于一句话的编码是以字为单位的,例如“今天天气真不错”这句话,将被赋予6个id进行编码,如编码103所示,导致组成词语的字的连接关系被打断,编码长度也较长。
图2示出了根据本公开实施例的典型的基于词粒度的编码方法的示意图。
如图2所示,本公开根据公开语料和本公开使用场景的网站的语料,建立了理想的中文词粒度词典,将“今天天气真不错”,在训练前按照词粒度“今天、天气、真不错”编码,仅仅使用3个id就可以,如编码203所示,减少了编码长度,防止了训练时的溢出。
图3示出了根据本公开实施例的典型的词语分组的示意图。
除了按照中文词粒度词典进行训练前的编码,本公开还根据词频,将分词的结果按照词频大小排序,分为三组词语,分别为高频词语、中频词语、低频词语。
词语301包含的word1、word2、word3为高频词语,将会首选被用来预测,中频词语的分302包括word4、word5、word6,低频词语的分组303包括词语word7、word8、word9、word10;当使用高频词语预测后发现预测词语是中频或低频词语的概率较高时,才会使用中频、低频词语预测,这样可以节约大量的显存。
图4示出了根据本公开实施例的典型的用于训练基于词粒度的自然语言模型的方法的示意图。
所述训练方法包括步骤:
步骤401:根据词典将训练语料分词,所述分词的粒度为词语;
步骤402:根据词频,将分词的结果按照词频大小排序,分为三组词语,分别为高频词语、中频词语、低频词语;
步骤403:将所述三组词语嵌入向量;通过变形层进行编码与解码,得到带有浮点数的多个向量;
在一个可能的实施例中,所述词语可以通过wordembedding转化为向量,输入至BERT模型的Transformer层,以实现编码、解码,最后得到带有浮点数的多个向量。
步骤404:将所述带有浮点数的多个向量通过自适应线性层,将其中概率超过阈值的向量选择为输出,并转化为预测词语;
在一个可能的实施例中,可以将Transformer层连接自适应线性层,进行归一化线性分类,将其中概率超过阈值的向量选择为输出向量,并转化为预测词语。
其中,训练自然语言模型时,使用中文句子为样本数据,以及预先确定的预测词语为样本标签;使用自适应优化器训练自然语言模型,所述自适应优化器使用矩阵的低秩分解来压缩训练中产生的变量。
目前,大部分基于谷歌原生BERT开发的训练模型使用的都是AdamWeightDecay优化器。但是,实验证明AdamWeightDecay优化器对于大规模词表的词粒度BERT训练来说是不合适的,以128为序列长度,使用90万词表与自适应优化器技术的词粒度BERT模型训练时的batch_size最大只能为4。
为了能够正常的对使用90万词表与自适应优化器技术的模型进行训练,本公开的训练模型使用自适应优化器。AdamWeightDecay优化器在更新时除了需要计算梯度,还需要的维护变量m和v,即滑动梯度的前两阶矩,而这两组变量的每一组都和训练参数本身一样大。对于本公开的训练模型这样的大参数模型来说这两组变量也会消耗非常多的显存。与之相对的,自适应优化器抛弃了变量m,并为了自适应学习率功能而保留了变量v,同时使用矩阵的低秩分解来压缩了变量v所占用的空间。这样,自适应优化器既具有自适应学习率的功能,同时也节省了很多显存空间。实验证明,以128为序列长度,使用90万词表与自适应优化器技术的本公开的训练模型训练时的batch_size可以由4扩大为128。
在一个可能的实施例中,其中,所述自适应线性层首先只使用高频词语预测,当发现表示预测词语是中频或低频词语的第一预测概率值较高时,则继续使用中频或低频词语进行预测,在得到表示预测词语是中频或低频词语的第二预测概率时,则预测词语的实际概率值即为第一预测概率与第二预测概率的乘积。
一般来说,在原始的BERT模型中,token embedding层与最后的softmax层的参数往往随着词典大小呈线性变化。例如,在BERT-base模型中,如果词表大小为2万,则tokenembedding与softmax层共有2*20000*768=3072万个参数,;但如果将词表的规模扩充到了90万,那么token embedding与softmax层就会一共有2*900000*768=13.824亿个参数,以128的sequence length,在TeslaV100上训练一定会存在显存溢出的问题。
一种对softmax层优化的方式,也是一种解决在训练引入大词典时显存溢出的有效手段如下:
如图3所示,若将一个10个单词的词典按照词频的高低分成3份,那么自适应线性层就由三个前向神经网络组成,分别为head,tail1与tail2。其中head预测高频词语,tail1预测中频词语,tail2预测低频词语。由于高频词占据了语料中的绝大多数,所以自适应线性层往往只需要用head来做预测,这样做很大程度上减少了计算量。当要预测低频词时(如word7),模型先使用head预测,发现tail2的概率较高,表示需要继续使用tail2的前向神经网络进行预测,在得到tail2中对于word7的预测值时,word7的实际概率值即为head中tail2出现的概率与tail2中的word7出现的概率的乘积。
在具体实现中,如果head的维度为768,那么中间频率词语tail1的维度就可以缩减到768的1/4,即192;低频词语tail2的维度可以缩减到192的1/4,即48。假如词表大小还是90万,以10万高频词,20万中间频率词,60万低频词的方式划分,那么softmax层的参数就可以由原来的6.412亿缩减到768*100000+192*200000+48*600000=1.44亿,仅为原来参数量的22%,节约了大量显存。实验表明,如果在Tesla V100上,使用90万词表按照10万高频词,20万中间频率词,60万低频词的方式划分,那么可训练是最大的batch_size可以扩展到128。也可以调整高频词语、中频词语、低频词语的比例,使得训练时,每次训练的数据样本数量维度可以适应GPU计算能力,本公开对此不做限制。
图5示出了根据本公开实施例的典型的基于词粒度BERT训练模型框架的示意图。
输入501为一个不完整的句子“今天(空缺2个字)真不错,一起出来(空缺1个字)吧”,需要预测空缺处的内容。
通过分词,将输入501分成多个id,如id序列502所示,分词时,根据词典,以词语为粒度建立id编号。
将id序列502输入至embedding层503,使用其他训练模型进行权重的初始化,例如使用基于字粒度的BERT模型的字权重对本模型的词权重进行初始化赋值,得到向量序列504。
将向量序列504输入至Transformer层505,经过该层的处理,得到了多个带有浮点数的向量序列506。
将向量序列506通过自适应线性层507,选择其中概率最大的两个向量作为输出,并转化为文字“天气”、“玩”作为预测词语508。
训练时,使用自适应优化器509。自适应优化器509抛弃了变量m,并为了自适应学习率功能而保留了变量v,同时使用矩阵的低秩分解来压缩了变量v所占用的空间。
图6示出了根据本公开实施例的典型的预加载字权重的方法的示意图。
在一个可能的实施例中,所述训练自然语言模型时,预加载了基于字粒度自然语言模型的权重,所述基于词粒度的自然语言模型的词权重是由组成该词的每一个字的基于字粒度的自然语言模型的字权重的和的平均值。
从头开始训练一个BERT模型往往需要耗费很大的时间成本与计算资源。例如,RoBERTa-wwm-ext模型以128的seq length,使用2560的batch_size训练了10万步后,又以512的seq length,使用512的batch_size训练了10万步。换算过来,若以同样的方式现在128的seq length使用128的batch_size进行训练,则需要梯度累积在一张Tesla V100上训练200万步,大约需要花费3周左右的时间;模型总的训练周期甚至长达一个半月。
本公开的训练模型使用预加载字粒度模型权重的方式来减缓这一问题。也就是说,本公开的训练模型是在加载其他训练模型后继续在本公开使用场景的网站的语料以及其他外部语料上进行训练的,这样模型“见过”的语料不仅仅丰富了很多,而且一般都是质量较高的中文通用语料。使用这种方法,模型的训练周期不仅能大大缩短,模型的性能也能得到不小的提升。
但是,目前可以加载的训练模型均为字粒度的。也就是说,并没有可以匹配词粒度模型token embedding层的权重。因此,本公开设计了一种完全加载字粒度训练模型的权重的方法。本公开的训练模型的token embedding权重由组成这个词的字粒度训练模型中字embedding的权重的平均初始化。
如图6所示,“今天”的词权重603是“今”的字权重601和“天”的字权重602的算术平均值。
综合实验效果,本公开的训练模型的预加载方式为完全加载字粒度训练模型的权重,使用了MacBERT-base版训练模型权重。
在一个可能的实施例中,其中,所述分词还包括:采用将长词切分成短词和字的分词方法。
在以词为基本单位进行BERT训练的一大问题就是总会有一定比例的OOV(未登陆词)。目前的90万词典选取的是RoBERTa-wwm-ext模型词典的15385个汉字,以及本公开使用场景的网站的回答和文章分词得到的词频排序的前91000个词,可以覆盖住99.5417%的所需语料。但是,这个词典对于外部语料(中文维基百科、百科问答、新闻)来说仍然会有0.8%~2%的UNK比例,覆盖率并不是十分理想。
为了解决这一问题,本公开的训练模型采用了中文wordpiece的分词方式对语料进行切分,即将长词切分成短词或字。例如,如果“消费者购置”这个词在词典中并不存在,但“消费者”与“购置”均存在于词典中,那么“消费者购置”就会被切分为“消费者”与“购置”两个词;如果“消费者”与“购置”也不存在于词典中,词典中只收录了“消费”一词,那么“消费者购置”就会被切分为“消费”、“者”、“购”、“置”四个词,从而在一定程度上解决了出现“消费者购置”这样的未登陆词的问题。经过wordpiece分词后,外部语料的UNK比例由0.8%~2%下降到了0.04%~0.06%,其中有超过50%的长词可以被切分出短词而不是全部被切分为字,提升了模型生成的词向量的质量。本公开的训练模型采用了全词遮罩的方式来处理MLM(词预测任务)训练任务的数据,即会对切分为短词或字的长词进行全词覆盖。
在一个可能的实施例中,还包括:得到所述预测词语后,训练还包括预测下一句话的任务。
尽管目前RoBERTa等模型都抛弃了NSP(下一句预测任务),只保留了MLM(词预测任务)任务进行训练。但是,从NLP下游任务的实验结果来看,NSP任务依然会对一些句子相关性较强的下游任务起到一定的积极作用(如句对分类等)。所以,本公开的训练模型的训练依然保留了NSP任务。实验结果证明,保留了NSP任务的本公开的训练模型能在搜索相关的下游任务上有进一步的提升。
在一个可能的实施例中,还包括:所述训练使用多卡分布式策略,在多个GPU上同时进行。
本公开的训练模型的训练代码在不仅能进行单GPU训练,还改用普通的Estimater与tensorflow提供的MirroredStrategy函数,使其可以使用多个GPU上进行训练,batch_size从128扩大到了512,大大提升了训练的速度。
总之,通过本公开的训练方法,模型的推理速度提升了很多。目前中文训练模型都是字粒度的,是将句子按字切分后再进行编码的,而词粒度BERT模型是按照将句子按词切分后再进行编码的。例如,“今天天气真不错,一起出来玩吧!”会被字粒度模型切分为:“今”、“天”、“天”、“气”、“真”、“不”、“错”、“,”、“一”、“起”、“出”、“来”、“玩”、“吧”、“!”,编码的序列长度为15;会被词粒度模型切分为:“今天”、“天气”、“真不错”、“,”、“一起”、“出来”、“玩”、“吧”、“!”,编码的序列长度为8。即相比于字粒度的BERT模型,同一句话输入词粒度BERT模型后,编码的序列长度可以缩小约50%,但Transformer层的推理速度依然保持不变,从而在全局缩减了BERT模型的推理时间。例如,在搜索相关性下游任务中,对于同一批测试语料而言,使用90万词典的词粒度BERT模型进行预测时需要的句子序列长度为35,字粒度BERT模型需要的句子序列长度为60;词粒度BERT模型需要的序列长度为字粒度BERT模型的58.3%,推理时间由字粒度的BERT模型需要的497s缩短为341s,是原来耗时的68.6%。
此外,相比于字粒度的BERT模型,词粒度BERT模型的性能不会有明显的下降。在上述搜索相关性下游任务中,词粒度BERT模型的表现要优于BERT开源模型:ndcg@1超过谷歌模型0.36%,ndcg@5超过谷歌模型0.76%,ndcg@10超过谷歌模型0.79%,速度比原来提升了31.4%。
本公开的训练模型训练时间短,从头开始训练的字粒度BERT模型往往需要耗费大量计算资源和时间成本,而词粒度BERT模型在加载字训练模型后以128的序列长度,512的batch_size在4张Tesla V100上训练5万步即可,训练时间约为1天,也比一般使用GPU从头开始训练的BERT模型花费的时间短很多。
图7示出了根据本公开实施例的典型的用于训练基于词粒度的自然语言模型的系统的示意图。
如图7所示的系统700,包括:
分词单元701,用于根据词典将训练语料分词,所述分词的粒度为词语;
词频单元702,用于根据词频,将分词的结果按照词频大小排序,分为三组词语,分别为高频词语、中频词语、低频词语;
分析单元703,用于将所述三组词语嵌入向量;通过变形层进行编码与解码,得到带有浮点数的多个向量;
预测单元704,用于将所述带有浮点数的多个向量通过自适应线性层,将其中概率超过阈值的向量选择为输出,并转化为预测词语;
训练自然语言模型时,使用中文句子为样本数据,以及预先确定的预测词语为样本标签;使用自适应优化器训练自然语言模型,所述自适应优化器使用矩阵的低秩分解来压缩训练中产生的变量。
图8示出了用于实现本公开的实施例的电子设备的结构示意图。如图8所示,电子设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有电子设备800操作所需的各种程序和数据。CPU801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,包括承载指令的在计算机可读介质,在这样的实施例中,该指令可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该指令被中央处理单元(CPU)801执行时,执行本公开中描述的各个方法步骤。
尽管已经描述了示例实施例,但是对于本领域技术人员来说显而易见的是,在不脱离本公开构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述示例实施例不是限制性的,而是说明性的。
Claims (8)
1.一种基于词粒度的自然语言模型的训练方法,包括:
根据词典将训练语料分词,所述分词的粒度为词语;
根据词频,将分词的结果按照词频大小排序,分为三组词语,分别为高频词语、中频词语、低频词语;
将所述三组词语嵌入向量;通过变形层进行编码与解码,得到带有浮点数的多个向量;
将所述带有浮点数的多个向量通过自适应线性层,将其中概率超过阈值的向量选择为输出,并转化为预测词语;
训练自然语言模型时,使用中文句子为样本数据,以及预先确定的预测词语为样本标签;使用自适应优化器训练自然语言模型,所述自适应优化器使用矩阵的低秩分解来压缩训练中产生的变量;
其中,所述自适应线性层首先只使用高频词语预测,当发现表示预测词语是中频或低频词语的第一预测概率较高时,则继续使用中频或低频词语进行预测,在得到表示预测词语是中频或低频词语的第二预测概率时,则预测词语的实际概率即为第一预测概率与第二预测概率的乘积;所述训练自然语言模型时,预加载了基于字粒度自然语言模型的权重,所述基于词粒度的自然语言模型的词权重是由组成该词的每一个字的基于字粒度的自然语言模型的字权重的和的平均值。
2.如权利要求1所述的方法,其中,所述分词还包括:采用将长词切分成短词和字的分词方法。
3.如权利要求1所述的方法,还包括:得到所述预测词语后,训练还包括预测下一句话的任务。
4.如权利要求1所述的方法,还包括:所述训练使用多卡分布式策略,在多个GPU上同时进行。
5.如权利要求1所述的方法,还包括:调整高频词语、中频词语、低频词语的比例,使得训练时,每次训练的数据样本数量维度可以适应GPU计算能力。
6.一种用于训练基于词粒度的自然语言模型的系统,包括:
分词单元,用于根据词典将训练语料分词,所述分词的粒度为词语;
词频单元,用于根据词频,将分词的结果按照词频大小排序,分为三组词语,分别为高频词语、中频词语、低频词语;
分析单元,用于将所述三组词语嵌入向量;通过变形层进行编码与解码,得到带有浮点数的多个向量;
预测单元,用于将所述带有浮点数的多个向量通过自适应线性层,将其中概率超过阈值的向量选择为输出,并转化为预测词语;
训练自然语言模型时,使用中文句子为样本数据,以及预先确定的预测词语为样本标签;使用自适应优化器训练自然语言模型,所述自适应优化器使用矩阵的低秩分解来压缩训练中产生的变量;
其中,所述自适应线性层首先只使用高频词语预测,当发现表示预测词语是中频或低频词语的第一预测概率较高时,则继续使用中频或低频词语进行预测,在得到表示预测词语是中频或低频词语的第二预测概率时,则预测词语的实际概率即为第一预测概率与第二预测概率的乘积;所述训练自然语言模型时,预加载了基于字粒度自然语言模型的权重,所述基于词粒度的自然语言模型的词权重是由组成该词的每一个字的基于字粒度的自然语言模型的字权重的和的平均值。
7.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至5任一项所述方法。
8.一种计算机可读存储介质,其上存储有可执行指令,所述可执行指令被处理器执行时使处理器执行如权利要求1至5任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110588758.1A CN113326693B (zh) | 2021-05-28 | 2021-05-28 | 一种基于词粒度的自然语言模型的训练方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110588758.1A CN113326693B (zh) | 2021-05-28 | 2021-05-28 | 一种基于词粒度的自然语言模型的训练方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113326693A CN113326693A (zh) | 2021-08-31 |
CN113326693B true CN113326693B (zh) | 2024-04-16 |
Family
ID=77421942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110588758.1A Active CN113326693B (zh) | 2021-05-28 | 2021-05-28 | 一种基于词粒度的自然语言模型的训练方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326693B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106257441A (zh) * | 2016-06-30 | 2016-12-28 | 电子科技大学 | 一种基于词频的skip语言模型的训练方法 |
CN107273355A (zh) * | 2017-06-12 | 2017-10-20 | 大连理工大学 | 一种基于字词联合训练的中文词向量生成方法 |
CN108417210A (zh) * | 2018-01-10 | 2018-08-17 | 苏州思必驰信息科技有限公司 | 一种词嵌入语言模型训练方法、词语识别方法及系统 |
WO2018157703A1 (zh) * | 2017-03-02 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 自然语言的语义提取方法及装置和计算机存储介质 |
CN109815456A (zh) * | 2019-02-13 | 2019-05-28 | 北京航空航天大学 | 一种基于字符对编码的词向量存储空间压缩的方法 |
CN111737994A (zh) * | 2020-05-29 | 2020-10-02 | 北京百度网讯科技有限公司 | 基于语言模型获取词向量的方法、装置、设备及存储介质 |
CN111737996A (zh) * | 2020-05-29 | 2020-10-02 | 北京百度网讯科技有限公司 | 基于语言模型获取词向量的方法、装置、设备及存储介质 |
CN111753550A (zh) * | 2020-06-28 | 2020-10-09 | 汪秀英 | 一种自然语言的语义解析方法 |
CN111914551A (zh) * | 2020-07-29 | 2020-11-10 | 北京字节跳动网络技术有限公司 | 语言表示模型系统、预训练方法、装置、设备及介质 |
CN112528650A (zh) * | 2020-12-18 | 2021-03-19 | 恩亿科(北京)数据科技有限公司 | 一种Bert模型预训练方法、系统及计算机设备 |
-
2021
- 2021-05-28 CN CN202110588758.1A patent/CN113326693B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106257441A (zh) * | 2016-06-30 | 2016-12-28 | 电子科技大学 | 一种基于词频的skip语言模型的训练方法 |
WO2018157703A1 (zh) * | 2017-03-02 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 自然语言的语义提取方法及装置和计算机存储介质 |
CN107273355A (zh) * | 2017-06-12 | 2017-10-20 | 大连理工大学 | 一种基于字词联合训练的中文词向量生成方法 |
CN108417210A (zh) * | 2018-01-10 | 2018-08-17 | 苏州思必驰信息科技有限公司 | 一种词嵌入语言模型训练方法、词语识别方法及系统 |
CN109815456A (zh) * | 2019-02-13 | 2019-05-28 | 北京航空航天大学 | 一种基于字符对编码的词向量存储空间压缩的方法 |
CN111737994A (zh) * | 2020-05-29 | 2020-10-02 | 北京百度网讯科技有限公司 | 基于语言模型获取词向量的方法、装置、设备及存储介质 |
CN111737996A (zh) * | 2020-05-29 | 2020-10-02 | 北京百度网讯科技有限公司 | 基于语言模型获取词向量的方法、装置、设备及存储介质 |
CN111753550A (zh) * | 2020-06-28 | 2020-10-09 | 汪秀英 | 一种自然语言的语义解析方法 |
CN111914551A (zh) * | 2020-07-29 | 2020-11-10 | 北京字节跳动网络技术有限公司 | 语言表示模型系统、预训练方法、装置、设备及介质 |
CN112528650A (zh) * | 2020-12-18 | 2021-03-19 | 恩亿科(北京)数据科技有限公司 | 一种Bert模型预训练方法、系统及计算机设备 |
Non-Patent Citations (4)
Title |
---|
High-risk learning: acquiring new word vectors from tiny data;Aurelie Herbelot 等;《arXiv:1707.06556 v1》;20170720;1-5 * |
文本词向量与预训练语言模型研究;徐菲菲;冯东升;;上海电力大学学报;20200815(第04期);320-328 * |
融合知识的词向量表示方法研究;冯煜博;《中国优秀硕士学位论文全文数据库 信息科技辑》;20210415(第04期);I138-903 * |
词向量语义表示研究进展;李枫林;柯佳;;情报科学;20190501(第05期);155-165 * |
Also Published As
Publication number | Publication date |
---|---|
CN113326693A (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022022421A1 (zh) | 语言表示模型系统、预训练方法、装置、设备及介质 | |
CN111916067A (zh) | 语音识别模型的训练方法、装置、电子设备及存储介质 | |
CN110134968A (zh) | 基于深度学习的诗歌生成方法、装置、设备及存储介质 | |
CN112699216A (zh) | 端到端的语言模型预训练方法、系统、设备及存储介质 | |
CN110956037B (zh) | 多媒体内容重复判断方法及装置 | |
CN113051368B (zh) | 双塔模型训练方法、检索方法、装置及电子设备 | |
CN110956038B (zh) | 图文内容重复判断方法及装置 | |
CN112861524A (zh) | 一种基于深度学习的多层次中文细粒度情感分析方法 | |
CN116756577B (zh) | 模型训练方法、装置、设备及存储介质 | |
CN114626529B (zh) | 一种自然语言推理微调方法、系统、装置及存储介质 | |
CN112101042A (zh) | 文本情绪识别方法、装置、终端设备和存储介质 | |
CN114298055B (zh) | 基于多级语义匹配的检索方法、装置、计算机设备和存储介质 | |
CN115062718A (zh) | 语言模型训练方法、装置、电子设备及存储介质 | |
CN115759062A (zh) | 基于知识注入的文图预训练模型处理方法和文图检索系统 | |
CN117034950A (zh) | 一种引入条件掩码对比学习的长句子嵌入方法和系统 | |
US20220083745A1 (en) | Method, apparatus and electronic device for determining word representation vector | |
CN113326693B (zh) | 一种基于词粒度的自然语言模型的训练方法与系统 | |
CN114648005B (zh) | 一种多任务联合学习的多片段机器阅读理解方法及装置 | |
CN115130470B (zh) | 一种文本关键词的生成方法、装置、设备及介质 | |
CN114781356B (zh) | 一种基于输入共享的文本摘要生成方法 | |
CN115906879A (zh) | 一种垂直领域的翻译模型训练方法和存储介质 | |
CN115270809A (zh) | 基于多模态语义融合的中文关系抽取方法及系统 | |
CN115757680A (zh) | 关键词提取方法、装置、电子设备及存储介质 | |
CN114254080A (zh) | 一种文本匹配方法、装置及设备 | |
CN110688487A (zh) | 一种文本分类的方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |