深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识

这篇具有很好参考价值的文章主要介绍了深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分类目录:《深入理解深度学习》总目录
相关文章:
· GPT(Generative Pre-Trained Transformer):基础知识
· GPT(Generative Pre-Trained Transformer):在不同任务中使用GPT
· GPT(Generative Pre-Trained Transformer):GPT-2与Zero-shot Learning
· GPT(Generative Pre-Trained Transformer):GPT-3与Few-shot Learning


《深入理解深度学习——Transformer》系列文章介绍了Transformer,该模型最初被用于机器翻译任务,其出色表现引起了学术界的极大兴趣,其优异的特征提取与语义抽象能力得到了学者的广泛认可,于是研究人员纷纷采用Transformer作为特征提取器,推出了新一代性能更优的预训练语言模型。在自然语言处理领域,最重要的预训练语言模型可以分为两个系列,一个是擅长自然语言生成任务的GPT(Generative Pre-Trained Transformer)系列模型,另一个是擅长自然语言理解任务的BERT(Bidirectional Encoder Representations from Transformers)模型。

GPT是OpenAI在论文《Improving Language Understanding by Generative Pre-Training》中提出的生成式预训练语言模型。该模型的核心思想是通过二段式的训练,以通用语言模型加微调训练的模式完成各项定制任务,即先通过大量无标签的文本训练通用的生成式语言模型,再根据具体的自然语言处理任务,利用标签数据做微调训练。这样一来,GPT就可以很好地完成若干下游任务,包括分类、蕴含、相似度、多选等。对使用者来说,直接使用训练好的模型参数作为初始状态,用少量标签数据进行微调,就可以得到针对特定领域与任务的高性能专用模型,不仅节省了训练成本,还大幅提高了模型的表现性能,而这也是预训练语言模型的魅力所在。在多个下游任务中,微调后的GPT系列模型的性能均超过了当时针对特定任务训练的SOTA模型,真正达到了“一法通,万法通”的境界。

GPT的结构:基于Transformer Decoder

GPT在无监督训练阶段,依然采用标准的语言模型,即给定无标签的词汇集合 u = { u 1 , u 2 , ⋯   , u n } u=\{u_1, u_2, \cdots, u_n\} u={u1,u2,,un},最大化以下似然函数:
L 1 ( u ) = ∑ i log ⁡ P ( u i ∣ u i − k , u i − k + 1 , ⋯   , u i − 1 ; Θ ) L_1(u)=\sum_i\log P(u_i | u_{i-k}, u_{i-k+1}, \cdots, u_{i-1};\Theta) L1(u)=ilogP(uiuik,uik+1,,ui1;Θ)

其中, k k k是上下文窗口的大小。在模型结构上,GPT选择了Transformer Decoder作为其主要组成部分。如下图所示,GPT由12层Transformer Decoder的变体组成,称其为变体,是因为与原始的Transformer Decoder相比,GPT所用的结构删除了Encoder-Decoder Attention层,只保留了Masked Multi-Head Attention层和Feed Forward层。GPT如此设计结构是合乎情理的。Transformer结构提出之始便用于机器翻译任务,机器翻译是一个序列到序列的任务,因此Transformer设计了Encoder用于提取源端语言的语义特征,而用Decoder提取目标端语言的语义特征,并生成相对应的译文。GPT的目标是服务于单序列文本的生成式任务,所以舍弃了关于Encoder的一切,包括Decoder中的Encoder-Decoder Attention层。GPT选择Decoder也因为其具有文本生成能力,且符合标准语言模型的因果性要求。
深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识
GPT保留了Decoder中的Masked Multi-Head Attention层和Feed Forward层,并扩大了网络的规模。除了将层数从6层扩展到12层,GPT还将Attention的维数扩大到768(原来为512),将Attention的头数增加到12(原来为8),将Feed Forward层的隐层维数增加到3072(原来为2048),总参数量达到1.5亿。GPT还优化了学习率预热算法,使用更大的BPE码表(融合次数为40000),将激活函数ReLU改为对梯度更新更友好的高斯误差线性单元GeLU,并将原始的正余弦构造的位置编码改成了待学习的位置编码(与模型其余部分一样,在训练过程中学习参数)。整体来说,GPT并没有提出结构上更新颖的改动,而是以Transformer Decoder为蓝本,搭建了语言模型的骨架,称为Transformer Block,扩大了模型的复杂度并更新了相应的训练参数。GPT的结构清晰,数据流如下:

  1. 输入语句的前 k k k个词通过词表转化为一维向量 U = { u − k , u − k + 1 , ⋯   , u − 1 , } U=\{u_{-k}, u_{-k+1}, \cdots, u_{-1}, \} U={uk,uk+1,,u1,}
  2. 输入 U U U右乘权重矩阵 W e W_e We W p W_p Wp(上图中的Text&Position Embedding模块,对应词向量编码和位置编码模块)转化为特征向量 h 0 h_0 h0 h 0 = U W e + W p h_0=UW_e+W_p h0=UWe+Wp
  3. 经过12层Transformer Block,最终的语义特征向量 h n h_n hn n = 12 n=12 n=12)的计算公式为: h l = Tansformer_Block ( h l = 1 ) h_l=\text{Tansformer\_Block}(h_{l=1}) hl=Tansformer_Block(hl=1)
  4. Softmax输出下一个词 u u u的概率为: P ( u ) = Softmax ( h n W e T ) P(u)=\text{Softmax}(h_nW^T_e) P(u)=Softmax(hnWeT)

以上为无监督训练阶段语言模型的数据流,此阶段利用 L 1 L_1 L1似然函数作为优化目标训练语言模型。在监督微调阶段,GPT采用附加的线性输出层作为针对不同任务的自适应层(每个自适应层都是并列关系,各自拥有独立的权重矩阵 W y W_y Wy,需要根据特定任务微调训练)。假定有带标签的数据集 C C C,其中每个实例由一系列输入词 x 1 , x 2 , ⋯   , x m x_1, x_2, \cdots, x_m x1,x2,,xm和标签 y y y组成。通过预训练的GPT先将输入转化成语义特征 h l m h_l^m hlm(下标 l l l表示层数,上标 m m m表示输入 x m x_m xm对应的语义特征),再经过任务特定的线性输出层预测 y y y
P ( y ∣ x 1 , x 2 , ⋯   , x m ) = Softmax ( h i m W y ) P(y|x^1, x^2, \cdots, x^m)=\text{Softmax}(h_i^mW_y) P(yx1,x2,,xm)=Softmax(himWy)

而需要优化的目标函数也变为:
L 2 = ∑ x , y log ⁡ P ( y ∣ x 1 , x 2 , ⋯   , x m ) L_2=\sum_{x, y}\log P(y|x^1, x^2, \cdots, x^m) L2=x,ylogP(yx1,x2,,xm)

为了使微调训练后的模型有更好的泛化性能,在监督微调的优化目标函数中加入辅助优化函数是一个已被验证可行的方法,而且可以加速模型的微调收敛。在监督微调训练阶段,GPT使用的优化目标函数为:
L 3 ( C ) = L 2 ( C ) + λ L 1 ( C ) L_3(C) = L_2(C)+\lambda L_1(C) L3(C)=L2(C)+λL1(C)

其中, L 1 L_1 L1是无监督训练阶段的目标函数, λ \lambda λ是辅助函数的权重常系数。总体来说,在GPT监督微调训练阶段,需要训练的最主要的额外权重矩阵就是 W y W_y Wy

参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[4] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[5] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[6] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[7] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.文章来源地址https://www.toymoban.com/news/detail-497131.html

到了这里,关于深入理解深度学习——GPT(Generative Pre-Trained Transformer):基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AIGC实战——GPT(Generative Pre-trained Transformer)

    注意力机制能够用于构建先进的文本生成模型, Transformer 是用于序列建模的强大神经网络,该神经网络不需要复杂的循环或卷积架构,而只依赖于注意力机制。这种方法克服了循环神经网络 ( Recurrent Neural Network , RNN ) 方法难以并行化的缺陷( RNN 必须逐符号处理序列)。 Transf

    2024年03月12日
    浏览(32)
  • 【论文阅读笔记】Pre-trained Universal Medical Image Transformer

    Luo L, Chen X, Tang B, et al. Pre-trained Universal Medical Image Transformer[J]. arXiv preprint arXiv:2312.07630, 2023.【代码开源】 【论文概述】 本文介绍了一种名为“预训练通用医学图像变换器(Pre-trained Universal Medical Image Transformer,简称PUMIT)”的新型算法,该算法旨在解决标记医学图像数据稀缺

    2024年02月04日
    浏览(35)
  • Solving 3D Inverse Problems using Pre-trained 2D Diffusion Models

    论文链接:https://arxiv.org/abs/2211.10655 GitHub链接:https://github.com/HJ-harry/DiffusionMBIR 【score-MRI作者】 扩散模型已成为具有高质量样本的新的艺术生成模型,具有模式覆盖和高灵活性等有趣的特性。它们也被证明是有效的逆问题求解器,充当分布的先验,而正演模型的信息可以在采

    2024年02月09日
    浏览(33)
  • [ACL2023] Exploring Lottery Prompts for Pre-trained Language Models

    文章链接 清深的工作,比较有意思的一篇。作者先给出假设,对于分类问题,在有限的语料空间内总能找到一个prompt让这个问题分类正确,作者称之为lottery prompt。为此,作者组织了一个prompt集合,每个prompt的组成都很简单,名词+动词+介词/形容词/副词+MASK,语料都是从常用

    2024年02月11日
    浏览(30)
  • A Survey on Knowledge-Enhanced Pre-trained Language Models

    自然语言处理(NLP)已经通过使用BERT等预训练语言模型(plm)发生了革命性的变化。尽管几乎在每个NLP任务中都创造了新的记录, 但plm仍然面临许多挑战,包括可解释性差,推理能力弱,以及在应用于下游任务时需要大量昂贵的注释数据。通过将外部知识集成到plm中,知识增强预

    2024年02月11日
    浏览(32)
  • A Survey of Knowledge-Enhanced Pre-trained Language Models

    本文是LLM系列的文章,针对《A Survey of Knowledge-Enhanced Pre-trained Language Models》的翻译。 预训练语言模型(PLM)通过自监督学习方法在大文本语料库上进行训练,在自然语言处理(NLP)的各种任务中都取得了良好的性能。然而,尽管具有巨大参数的PLM可以有效地拥有从大量训练

    2024年02月09日
    浏览(30)
  • Pre-trained Language Models Can be Fully Zero-Shot Learners

    本文是LLM系列文章,针对《Pre-trained Language Models Can be Fully Zero-Shot Learners》的翻译。 在没有标记或额外的未标记数据的情况下,我们如何将预先训练的模型扩展到许多语言理解任务?经过预训练的语言模型(PLM)对于广泛的NLP任务是有效的。然而,现有的方法要么需要对下游

    2024年02月07日
    浏览(35)
  • 【论文阅读24】Better Few-Shot Text Classification with Pre-trained Language Model

    论文标题:Label prompt for multi-label text classification(基于预训练模型对少样本进行文本分类) 发表时间:2021 领域:多标签文本分类 发表期刊:ICANN(顶级会议) 相关代码:无 数据集:无 最近,预先训练过的语言模型在许多基准测试上都取得了非凡的性能。通过从一个大型的

    2024年02月14日
    浏览(31)
  • X2-VLM: All-In-One Pre-trained Model For Vision-Language Tasks论文笔记

    Title:X2-VLM: All-In-One Pre-trained Model For Vision-Language Tasks Code CLIP这一类方法只能进行图片级别的视觉和文本对齐; 也有一些方法利用预训练的目标检测器进行目标级别的视觉和文本对齐,但是只能编码目标内部的特征,无法有效表达多目标上下文关联; 本文致力于进行多粒度(

    2024年02月09日
    浏览(32)
  • GPT(Generative Pre-Training)论文解读及实现(一)

    Given an unsupervised corpus of tokens U = {u1, . . . , un}, we use a standard language modeling objective to maximize the following likelihood: 在给定语料上下文环境下,目标时最大化下面的语言模型,即在给定前 i-1个词和参数θ前提下,使第 i 个词出现的概率最大。 we use a multi-layer Transformer decoder [34] for

    2024年02月15日
    浏览(146)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包