从GPT到chatGPT(一):GPT1

GPT1

文章目录

  • GPT1
    • 前言
    • 正文
      • 模型架构
        • 无监督学习
        • 有监督学习
        • 处理不同特定任务
      • 实验
        • 训练细节
        • 实验结果
      • 分析
        • 预训练层参数转移的影响
        • zero-shot的表现
        • 消融实验
      • 总结

前言

GPT1,出自于OpenAI的论文《Improving Language Understanding by Generative Pre-Training》,是最早的将transformer以多层堆叠的方式构成语言模型的模型,其出现时间早于BERT,但二者有一个最大的区别在于BERT只用的是transformer的encoder层,而GPT1只用了transformer的decoder层。除此以外二者在目标函数等地方也有各自的方法,感兴趣的可以自行阅读对比,这里不再展开。

正文

模型架构

GPT1的训练主要分成无监督预训练有监督微调两部分:

  • 无监督预训练指的是现在大规模语料下,训练一个语言模型;
  • 有监督微调指的是基于下游任务的标注数据进行模型参数调整。

无监督学习

给一组无监督学习语料的tokens: U = { u 1 , u 2 , . . . , u n } \cal{U}=\{u_1, u_2,...,u_n\} U={u1,u2,...,un},我们以语言模型的目标函数作为目标,最大化其似然函数:
L 1 ( U ) = Σ i log ⁡ P ( u i ∣ u i − k , . . . , u i − 1 ; Θ ) (1) L_1(\cal{U})=\Sigma_{i}{\log{\it{P}}(u_i|u_{i-k},...,u_{i-1};\Theta)} \tag{1} L1(U)=ΣilogP(uiuik,...,ui1;Θ)(1)
其中 k k k表示窗口大小, P P P表示由参数 Θ \Theta Θ决定的神经网络所输出的条件概率值。
这里再简单用公式阐述下前言中提到的本文核心的多头transformer-decoder层:
h 0 = U W e + W p h l = t r a n s f o r m e r _ b l o c k ( h l − 1 ) , ∀ i ∈ [ 1 , n ] P ( u ) = s o f t m a x ( h n W e T ) (2) h_0=UW_e+W_p\\h_l=\mathrm{transformer\_block}\mathit (h_{l-1}),\forall{i\in[1,n]}\\P(u)=\mathrm{softmax}(\mathit h_nW_e^T)\tag{2} h0=UWe+Wphl=transformer_block(hl1),i[1,n]P(u)=softmax(hnWeT)(2)
其中 U = ( u − k , . . . , u − 1 ) U=(u_{-k},...,u_{-1}) U=(uk,...,u1)是文本的tokens向量, n n n是transformer的层数, W e W_e We是token embedding矩阵, W p W_p Wp是position embedding矩阵。

有监督学习

在完成了无监督学习后,我们希望在有标签的数据集上对模型进行有监督的微调。我们定义标注数据集为 C \cal{C} C,对于每一组序列tokens: x = { x 1 , x 2 , . . . , x m } x=\{x^1,x^2,...,x^m\} x={x1,x2,...,xm},都对应一个标签 y y y。输入 x x x通过预训练模型后得到最后一层transformer层的隐向量 h l m h_l^m hlm,通过一个线性层+softmax预测标签y:
P ( y ∣ x 1 , . . . , x m ) = s o f t m a x ( h l m W y ) (3) P(y|x^1,...,x^m)=\mathrm{softmax}(h_l^mW_y)\tag{3} P(yx1,...,xm)=softmax(hlmWy)(3)
由此我们的目标是使下面这个目标函数最大化:
L 2 ( C ) = Σ ( x , y ) ( l o g P ( y ∣ x 1 , . . . , x m ) ) (4) L_2(\cal{C})=\Sigma_{(x,y)}(\mathrm{log}\it P(y|x^1,...,x^m))\tag{4} L2(C)=Σ(x,y)(logP(yx1,...,xm))(4)
我们发现在在有监督微调的训练中,如果加入语言模型的目标函数,可以有两个好处:(a)使得有监督模型具备更强的生成能力;(b)加快训练的收敛。所以我们如下定义最终的目标函数:
L 3 ( C ) = L 1 ( C ) + λ ∗ L 2 ( C ) L_3(\cal{C})=L_1(\cal{C})+\lambda*L_2(\cal{C}) L3(C)=L1(C)+λL2(C)

处理不同特定任务

对于某些任务,如文本分类,我们可以直接如上所述对模型进行微调。某些其他任务,如QA或文本蕴含,其具有结构化输入,如有序的句子对,或文档、问题和答案的三元组。因为我们的预训练模型是在连续的文本序列上训练的,我们需要一些修改才能将其应用于这些任务。先前的工作提出了基于迁移学习的学习任务特定架构,这种方法重新引入了大量特定于任务的定制,对这些额外的架构组件使用迁移学习。相反,我们在这里不这么做,我们使用遍历样式方法,将结构化输入转换为预训练模型可以处理的格式,这些输入转换让我们避免对不同的任务都要进行任务架构改变。下面我们通过一些例子和一个示意图来解释。

  • 文本蕴含:我们将前提和假设的序列token按照顺序给拼接起来(可以用$等特殊标识符)
  • 文本相似度:将两个句子拼接起来,但由于相似度不存在前后关系,所以我们把句子以a b 和 b b和b bba两种方式均拼接一遍,最后将输出的两个 h l m h_l^m hlm逐个元素相加后再进入线性输出层。

具体示例如下图所示,包括了transform层的基本结构(mask多头attention+残差链接+LaryerNorm+FNN)
在这里插入图片描述

实验

训练细节

包括数据获取,数据处理,无监督训练参数设置,有监督训练参数设置等,这里不一一介绍。

实验结果

首先展示在Natural Language Inference常见公开数据集上的结果,以及和当前一些sota方法的效果对比:
在这里插入图片描述然后是在Question answering and commonsense reasoning常见公开数据集上的结果,以及和当前方法的效果对比:
在这里插入图片描述还有文本相似度任务以及分类任务等:
在这里插入图片描述

分析

预训练层参数转移的影响

我们想观察下从预训练模型中转移参数值作为有监督学习模型的初始化参数,到底会有多少提升:
在这里插入图片描述可以看到,如果将模型的参数随机初始化,并在RACE和MultiNLI任务上进行训练,在验证集上的acc只有40%左右,但是如果将预训练模型的参数迁移过来的话,可以使acc提升到80+,这个提升确实十分明显。

zero-shot的表现

我们想更好的理解为什么基于transformer的预训练语言模型是有效的。一个假设说一方面,底层的生成模型学习如何在许多我们通常评估的任务上表现更好,以此来提高语言模型的能力;另一方面,transformer比LSTM在迁移学习上表现得更好。我们设计了一系列启发式解决方案,使用底层生成模型执行任务,而无需监督微调,并将其进行饿了可视化(Figure 2的右图)。
我们观察到这些启发式算法的表现是稳定的,并且随着训练而稳步增加,这表明生成性预训练支持多种任务相关功能的学习。另外我们也观察到LSTM在各种任务上的表现参差不齐,而且整体也不如transormer。

消融实验

最后是喜闻乐见的消融实验,主要关注有监督训练的时候加入aux目标函数对效果的影响,顺便对比了下finetune后的模型、没有进行finetune模型和LSTM模型的效果。transformer的效果显然好于LSTM,不必多说。但加入aux后finetune的模型在不同的任务上表现不一,但总的来说有一个趋势:在大数据集下,加入aux会提升最终的finetune效果,但是小数据集下,不加入aux目标函数效果更好。
在这里插入图片描述

总结

我们通过单一任务不可知(task-agnostic)模型实现了一个强大的自然语言理解框架,主要包括生成性预训练和区分性微调两部分。通过在长的连续文本的不同语料库上进行预训练,我们的模型获得了重要的世界知识和处理长距离依赖的能力,然后成功地将这些知识和能力转移到解决诸如问题回答、语义相似性评估、文本蕴含、文本分类等任务上,改善了我们研究的12个数据集中的9个数据集的sota。
长期以来,使用无监督(预)训练来提高辨别性任务的性能一直是机器学习研究的一个重要目标。我们的工作表明,实现显著的性能提升确实是可能的,并提供了关于哪些模型(Transformers)和数据集(具有长范围依赖关系的文本)最适合这种方法的一些提示。我们希望这将有助于对自然语言理解和其他领域的无监督学习进行新的研究,进一步提高我们对无监督学习如何工作的理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20095.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT+MindShow快速制作ppt

一、ChatGPT&MindShow简介 1、什么是ChatGPT? ChatGPT是一种基于自然语言处理和深度学习技术的人工智能语言模型,使得人们可以更加方便地与计算机进行交互,如智能问答等。 2、什么是MindShow? MindShow只需要在网页上登录即可,可以…

玩转ChatGPT:回答审稿人问题

一、写在前面 前段时间一篇时间序列预测的文章返修,还挺幸运的,给了个小修。 不过问题也问得有点刁钻,应该是个行家。 想到手头有小Chat,打算使用TA来辅助我回答审稿人问题。 以下展示仅仅提供一个工作流和思路,具体…

Jina AI 创始人肖涵博士:揭秘 Auto-GPT 喧嚣背后的残酷真相

Auto-GPT 究竟是一个开创性的项目,还是一个被过度炒作的 AI 实验?本文为我们揭开了喧嚣背后的真相,并揭示了 Auto-GPT 不适合实际应用的生产局限性。 背景介绍 这两天,Auto-GPT,一款让最强语言模型 GPT-4 能够自主完成…

两款吾爱破解优秀软件,批量查找文本,图像视频画质增强

批量查找文本 By:tuao 我们在电脑中查找文件的方式有很多,只要知道文件名便能很容易找到 但如果只记得文档中的某个关键词,而忘记文件名称的话,找起来就有些费劲了 这款工具便可以批量的在word、wps、excel、pdf和txt中查找文本…

吾爱破解论坛2021年11月11日,光棍节免费开放注册

点击上方蓝字"优派编程"选择“加为星标”,第一时间关注原创干货 官方原话: 吾爱破解论坛从2008年3月13日建立以来,陪伴众多坛友走过了12年艰辛而辉煌的风雨历程,以带领新手走入密界大门为基础,汇集了一大批爱…

吾爱出品,必属精品

前言 吾爱破解论坛是一个非常老牌的软件技术交流地,虽然经过多次整改,人气不如从前了 但也依旧能找到很多好玩好用的东西,小编不少分享的软件都是在这个论坛找到的 今天又收集了4款吾爱上高评霸榜的小工具,都很实用&#xff01…

txt工具吾爱版

每次在网上复制的文本内容都是乱七八糟的?那么可以配合txt工具来处理,这是由吾爱破解pgzzh用户出品的一款非常实用、绿色小巧的电脑排版工具,不要看该软件大小才几百KB,其功能是非常好用的,主要就是为用户们提供了去除…

吾爱studio3T

根本逻辑讲解:通过注册表更改studio3T试用时间到期的两种方 法 本例逻辑为通过不断重置studio 3t的试用时间达成伪永久,此软件少有永久免费版,如有永久的请在评论区我。 第一种方法 第一步:winr输入 regedit打开注册表 第二步&…

吾爱第二课-去除网页弹窗

目录 WindowsAPI实例1实例2修改主页内置广告1 用到的工具RestoratorFix ResourceProcexpProcmon WindowsAPI API函数提供应用程序所需要的窗口管理、图形设备接口、内存管理等服务功能。这些功能以函数库的形式组织在一起,形成了Windows应用程序编程接口。 A代表A…

python安卓吾爱_申请会员ID:吾爱Python

1、申请ID:吾爱Python 2、个人邮箱:792800132qq.com 3、原创技术文章:通过Python来实现网页的自动登录。 原创内容介绍:通过Python中的selenium库实现网页的自动登录(以今日头条为例) 第一步&#xff1…

HTML和xml有哪些区别?

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言HTML和XML的概述HT…

从零开始的Python编程指南:掌握基础语法与实用技巧

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言Python简介准备工作…

技术写作过程:如何写出好的技术文章

💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 2020 年,我…

突破传统,AI在加速“孵化”你的数字人

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 背景数字人的定义数字人…

37岁,公司把整组都裁了,只剩我一人干所有活,但不给涨薪!想主动换工作,又想要赔偿,该怎么办?...

很多时候,工作就像鸡肋,食之无味,弃之可惜。 一位网友求助: 37岁,在如今公司工作4年。公司今年裁员,部门设计组从5人缩减到1人,只剩他自己。侧面了解到公司并没有裁他的打算。现在他心情很复杂&…

职场新人如何使用ChatGPT提高工作效率

刚刚从象牙塔中毕业,走向社会战场。作为职场新人的同学们刚刚进入公司和部门,难免会被安排做些本职工作之外的事务工作,被上级安排做些零零碎碎的小东西,俗称打杂。这些工作说难不难,想要做漂亮也并不简单,…

ChatGPT 最佳实践指南

GPT Best Practices GPT 最佳实践指南 This guide shares strategies and tactics for getting better results from GPTs. The methods described here can sometimes be deployed in combination for greater effect. We encourage experimentation to find the methods that…