GPT的前身:Improving Language Understanding by Generative Pre-Training 论文阅读

Improving Language Understanding by Generative Pre-Training

文献简介:

《Improving Language Understanding by Generative Pre-Training》这篇文献是由OpenAI的研讨团队于2018年6月11日上宣布的,截至2023年4月,Google Scholar显现该论文的学术引用量到达5254次,这篇文献是一篇技能陈述,没有宣布在期刊或会议上,因而没有期(卷)或分区点评。

这篇文献的首要奉献是提出了一种根据生成式预练习的言语理解模型,该模型能够在各种自然言语处理使命上获得显著的性能提高。

这篇文献的核心思维是先在大规模的无标示文本上预练习一个言语模型,然后在每个具体使命上进行判别式微调,一起使用使命相关的输入变换来完成有用的迁移学习。

文献内容总结:

该文献指出,在当时的NLP领域,与计算机视觉相比,缺乏很多的标示数据集。然而,无标示的文本语料库却非常丰富。因而,作者首先在很多的非标示语料库中进行生成式预练习(Generative Pre-Training),然后针对每个特定的使命进行区别性微调(Discriminative Fine-Tuning)。这种办法使得模型能够在不同的NLP使命上获得很好的表现。

该论文选用了半监督(Semi-Supervised)的练习办法,即通过无监督学习进行预练习,再通过监督学习进行微调。在评价了RNN网络和transformer网络之后,作者发现后者能够很好地捕捉较长的言语结构,从而使得模型在处理子使命时具有更好的泛化性。这种办法为模型的练习带来了很好的效果。

无监督学习下的预练习(Pre-Training)

通过输入文本片段 U={u1,…,un}\mathcal{U}=\{u_1,\ldots,u_n\},其间u1u_1能够表明为单个字符,UU能够表明为一个包括许多字符的字符串,根据前kk个词来预测下一个词uiu_i的概率P(ui|ui−k,…,ui−1)P\left(u_i\middle| u_{i-k},\ldots,u_{i-1}\right),然后最大化似然函数来进行练习。方针函数如下所示:

L1(U)=∑i=k+1nlog⁡P(ui|ui−k,…,ui−1;)L_1\left(\mathcal{U}\right)=\sum_{i=k+1}^{n}{\log{P}\left(u_i\middle| u_{i-k},\ldots,u_{i-1};\Theta\right)}

其间kk表明给定kk个词的情况下,通过模型\Theta预测出uiu_i 的概率,并将所有呈现的词的概率取对数相加作为文本呈现的联合概率。预练习的方针即为优化该L1L_1方针函数。此外,模型仅运用了Transformer[2]的解码器(Decoder)进行预练习。预测进程触及将nn个词进行词嵌入(Word Embedding),然后加上方位嵌入(Position Embedding)。接下来,文本序列通过多层 Transformer 块进行处理,并在最终一层 Transformer 块后进行最终一次投影。最终,经由 Softmax 操作,输出文本中每个词的概率散布。

监督学习下的微调(fine-tuning)

在进行很多无标示的文本语料库练习后,模型还需要在某些特定的方针使命下进行微调。给定文本 x1,…,xmx^1,\ldots,x^m和相应的标示信息yy,将它们输入到预练习模型中进行微调。在微调进程中,hlmh_l^m 表明最终一层 Transformer 块的输出,WyW_y表明最终一层输出层的参数。

P(y∣x1,…,xm)=softmax(hlmWy)L2(C)=∑(x,y)log⁡P(y∣x1,…,xm)P\left(y\mid x^1,\ldots,x^m\right)=softmax\left(h_l^mW_y\right) \\ L_2\left(\mathcal{C}\right)=\sum_{\left(x,y\right)}{\log{P}\left(y\mid x^1,\ldots,x^m\right)}

可是作者并不仅仅只将L2L_2作为微调阶段的方针函数,而是选用L3(C)=L2(C)+∗L1(C)L_3\left(\mathcal{C}\right)=L_2\left(\mathcal{C}\right)+\lambda\ast L_1\left(\mathcal{C}\right)办法,将预练习模型的方针函数加权求和。

特定使命下的微调:

图1展示了文中说明的四种特定使命,通过增加的线性层(Linear),也是上文说的W_y参数,而且不修改transformer的结构来进行微调。

  1. 分类 (Classification):输入开端符(Start),文本(Text),抽取符(Extract),线性层即输出分类数。
  2. 包括(Entailment):输入开端符(Start),文本(Text),分隔符(Delim),假定(Hypothesis),抽取符(Extract),线性层输出相似包括,不包括,无关三分类。
  3. 相似(Similarity):输入开端符(Start),文本(Text 1),分隔符(Delim),文本(Text 2),抽取符(Extract);输入开端符(Start),文本(Text2),分隔符(Delim),文本(Text1),抽取符(Extract)。通过相加后进入线性层,输出两端文本在不同语境下是否相似的。
  4. 多选(Multiple Choice):输入开端符(Start),文本(Context),分隔符(Delim),答案(Answer 1),抽取符(Extract);输入开端符(Start),文本(Context),分隔符(Delim),答案(Answer N),抽取符(Extract);每个输入都通过一个线性层而后通过softmax操作求出每个答案的置信度。

GPT的前身:Improving Language Understanding by Generative Pre-Training 论文阅读

试验

最终试验是在包括7000篇没有宣布的书籍上进行练习,运用12层的transformer解码器,每一层包括768维的网络进行练习,运用了3072维数的FFN(Position-wise Feed-Forward Network)层,运用了Adam优化器和GELU激活函数,其间运用了4000个兼并的[3]字节对编码(BPE),而且在方位嵌入运用了自学习的方位嵌入(learned position embedding)。

文献研讨内容思考:

为什么GPT模型的网络结果有必要选用解码器

GPT预练习模型仅仅只选用transformer的解码器(decoder),是源于解码器中的第一层多头注意力(Multi-Head Attention)选用了掩码(Masked)的操作,具体操作相似于输入图像只裁剪中心信息,将部分像素通过与掩码矩阵相乘进行消除,使得输出时只能获取未被掩码掉的部分,而论文中选用该办法,将k作为上下文窗口,涂抹掉信息来预测下一个词。这种掩码操作被称为自回归性质,它能够保证模型在生成序列时遵从言语的线性顺序,而不会呈现随意跳跃或重复生成的情况。这样,通过很多的文本数据来预练习该模型,能够使其学习到自然言语中的语法结构、词汇等知识。

为什么GPT的方位嵌入没有运用transformer的方位编码

GPT的方位嵌入并没有运用原transformer的正弦函数(sinusoidal)的办法求得。其间transformer提出的办法见如下公式。通过查阅,发现Bert[4]也不是选用transformer的正弦函数,或许自学习的方位嵌入愈加贴合数据集,而且现在的单一输入文本长度也不会过长,但在将来越来越大的数据集下,这种能够扩展到无限长度的办法自身具有的泛化性或许会愈加有优势。

PE(pos,2i)=sin⁡(pos/100002i/d)PE(pos,2i+1)=cos⁡(pos/100002i/d)PE_{\left(pos,2i\right)}=\sin{\left(pos/{10000}^{2i/d}\right)}\\ PE_{\left(pos,2i+1\right)}=\cos{\left(pos/{10000}^{2i/d}\right)}

结论

GPT这篇论文奠定了ChatGPT的基础,GPT2论文和GPT3论文主是对预练习办法的改善和不断地增大模型的参数,Instruct GPT[5]提出的RLHF, 就是根据人类反应(Human Feedback)对言语模型进行强化学习(Reinforcement Learning),人工练习出一个符合人类行为或反应的奖励模型,然后使用PPO算法进行言语模型的微调,即以强化学习办法依据人类反应优化言语模型,自此ChatGPT才得以从量的堆集到质的改动,而且这也是ChatGPT能很好避开违法犯罪、种族歧视等话题的一种最为有用的手法。

参考文献:
  1. Radford A, Narasimhan K, Salimans T, et al. Improving language understanding by generative pre-training[J]. 2018.
  2. Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.
  3. Sennrich, Rico, Barry Haddow, and Alexandra Birch. “Neural machine translation of rare words with subword units.”arXiv preprint arXiv:1508.07909(2015).
  4. Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
  5. Ouyang L, Wu J, Jiang X, et al. Training language models to follow instructions with human feedback, 2022[J]. URL arxiv.org/abs/2203.02….
  6. Lambert, et al., “Illustrating Reinforcement Learning from Human Feedback (RLHF)”, Hugging Face Blog, 2022. URL huggingface.co/blog/rlhf
参考资料:

GPT,GPT-2,GPT-3 论文精读【论文精读】