gpx文件导出GPT:GPT: 通过生成式预训练提升语言理解能力 没有要告诉别人

 

大家好!今天我为大家带来了1篇新的文章,次要介绍了如何实现自己的梦想。希望通过这篇文章,能够给大家带来1些启示和帮助。

1. 简介GPT 是 Generative Pre-Training 的简写,由OpenAI于2018年提出,相关论文为:"Improving Language Understanding by Generative Pre-Training"。

NLP任务可以细分为很多种,例如QA、语义相似度、文本分类等尽管未标注的文本语料数据很富,但是在这些特定的NLP任务上的标注数据却很稀缺,从而导致模型没有能在这些任务上充分训练作者提出可以通过在没有同类型的未标注文本语料上生成式预训练1个语言模型,然后通过在每个下流的细分任务上判别式微调。

这种策略可以在微调时充分利用任务相关的输入信息,同时最小程度地改变模型的架构文章提出的模型在1系列(12其中的9个)NLU任务上取得了SOTA的效果,相比于在每个任务上单独构造训练的模型都有提升论文:

https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf代码:https://

github.com/akshat0123/GPT2. 概述许多深度学习模型依赖大量的标注数据1些模型可以利用无标注文本的语言信息提供1些有价值的输入,但是费时、成本高通过非监督的方式学习文本表征可以带来显著的提升,例如词向量技术。

然而,学习词级别以上的信息却非常难,原因在于:无法确定可以用于迁移学习的最有效文本表征应该通过何种优化目标实现如何将这些学习到的文本表征最有效地迁移到其他任务中,学界仍然没有共识为此,针对语言理解任务,作者。

提出了1种结合无监督预训练和有监督微调的半监督的方法首先利用语言模型目标从无标注的文本语料中学习模型的初始化参数,然后将这些参数迁移到特定的目标任务中,结合有监督的优化目标来微调模型架构仍然采用了Transformer,以更好地处理文本序列中的长依赖,从而可以在迁移任务中泛化。

在微调时,对任务的输入进行变换,将结构化的文本处理为单独连续的词序列作者将提出的GPT模型在QA、文本分类等1系列NLU任务长进行评测,结果表明在12个任务中的9个取得了SOTA的效果,在GLUE Benckmark上涨点5.5%,达到了72.8%。

同时,作者还验证了预训练模型在zero-shot情景下的表现3. 模型框架3.1 非监督预训练给定1个无监督的语料 U={u1,u2,...,un}\mathcal{U}=\{u_1,u_2,...,u_n\}

,通过输入窗口大小为 kk 的高低文信息,采用标准的语言模型目标(最大似然)来训练神经网络:L1(U)=∑ilog⁡P(ui|ui−k,⋯,ui−1;Θ)L_1(\mathcal U)=\sum_{i}\log P(u_i|u_{i-k},\cdots, u_{i};\Theta)

模型结构为多层Transformer的Decoder,对于序列中的第 ii 个token,在计算注意力时仅考虑

3.2 有监督微调预训练后,对于某个特定的下流任务,给定已标注的数据集 C\mathcal C ,将输入序列输入到模型中,在模型末尾增加1个线性层进行分类,微调的目标是最大化似然:L2(C)=∑(x,y

)log⁡P(y|x1,⋯,xm)L_2(\mathcal C)=\sum_{(x,y)}\log P(y|x^1,\cdots, x^m)此外,作者发现在微调时加入语言模型目标函数作为辅助目标可以提升模型的泛化能力,同时也能加速模型收敛。

因此,在微调时实现多目标优化,新增的参数仅仅为最后Softmax层的权重:L3(C)=L2(C)+λL1(C)L_3(\mathcal C)=L_2(\mathcal C) + \lambda L_1(\mathcal C)

对于文本分类任务,可以直接应用上述的微调方法,但是对于其他1些任务则需要将针对该任务的结构化的输入转化为连续序列文章提出通过 traversal 的方式来变换输入,确保转换后的输入文本序列可以被预训练的模型处理。

没有下流任务的输入变换方式:文本蕴含:将premise和hypothesis的token序列拼接起来,中央用 $分隔,输入到Transformer模型后再接1个分类器语义相似度:语义相似度无需考虑2个待比较文本的顺序,分别将两个文本按可能的排序组合,同时输入到Transformer模型中,最后将二者的隐层表征加和,输入到线性分类器中。

QA和常识推理:给定高低文文档、问题和1系列可能的答案,模型需要选择哪个答案是正确的为此,作者提出将高低文文档、问题和每个候选答案拼接起来,在问题和答案之间加入分隔符 $每个输入序列输入到Transformer模型中,最后将隐层的表征输入到线性层得到1个得分,再通过Softmax层将得分归1化为概率。

4. 实验4.1 实验设置预训练:语料库采用了 BooksCorpus 和 1B Word Benckmark 前者包含长的连续文本,可以让模型学习长距离建模;后者打乱句子顺序,进而破坏长距离的结构采用 BPE 词典,约40000个token。

预训练时目标函数(preplexity)降到18.4模型结构:12层Transformer(Decoder-only),隐层768维,12个注意力头激活函数为GeLU,位置编码可学习模型优化:Adam优化器,最大学习率为2.5e,采用cosine学习率策略,warmup步数为2k;训练100 epochs,batch size=64,序列最长为512个token。

模型通过正态分布 N(0,0.02)\mathcal N(0, 0.02) 初始化,dropout比例0.1,L2正则项系数为0.01微调:分类器的dropout 比例为0.1,学习率为6.25e,batch size=32,微调3 epoch,线性衰减学习率策略,warmup比例为0.2%。

多目标优化时的 λ\lambda 为0.54.2 实验结果NLI任务:GPT在5个数据集上取得SOTA效果:在MNLI上涨点1.5%,SciTail涨点5%,ONLI涨点5.8%,SNLI涨点0.6%

QA和常识推理任务:GPT 在Story Cloze和RACE上涨点8.9%和5.7%

语义相似度和文本分类:GPT在两个数据集上取得了SOTA的效果,在STSB和QQP分别涨点1%和4.2%GLUE总体得分为72.8,涨点3.9%,且在没有同大小的数据集上均能取得相对没有错的结果

4.3 消融实验迁移没有同层数的参数:每1层的迁移都能模型性能的增益。Zero-shot表现:预训练越彻底,zero-shot的性能更好。

语言模型辅助目标函数:微调时,引入语言模型的辅助目标函数,对于大的标注数据集有增益,但是对于小数据集没有增益Transformer结构:采用LSTM结构比Transformer平均低了5.6个点预训练:。

预训练相比于随机初始化提升了14.8%。

本文原文链接:https://www.yuque.com/docs/share/bab726b7-dc16a02639-bd959e7cb02d?# 《GPT: 通过生成式预训练提升语言理解能力》

这就是今天要分享的内容了。希望你能喜欢这篇文章。如果你觉得有价值的话,请给我1个赞吧。也可以关注我。收藏我的文章。让我们1起探索更多有意思的事情吧。

为您推荐

gpx文件导出GPT:GPT: 通过生成式预训练提升语言理解能力 没有要告诉别人

gpx文件导出GPT:GPT: 通过生成式预训练提升语言理解能力 没有要告诉别人

1. 简介GPT 是 Generative Pre-Training 的简写,由OpenAI于2018年提出,相关论文为:"Improving Language Un...

2023-08-26 栏目:互联网+

当前非电脑浏览器正常宽度,请使用移动设备访问本站!