文献阅读:Improving Language Understanding by Generative Pre-Training

news2024/11/18 7:34:12
  • 文献阅读:Improving Language Understanding by Generative Pre-Training
    • 1. 文章简介
    • 2. 模型介绍
    • 3. 实验考察
      • 1. 训练数据
      • 2. 实验结果
      • 3. 消解实验
    • 4. 总结 & 思考
  • 文献链接:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

1. 文章简介

这篇文章是OpenAI在18年发表的一篇古早文章了,在这篇文章里面,OpenAI第一次提出了GPT模型。

因此,这篇文章放到如今,其实已经完全没有新东西了,里面的东西基本也早就被用烂了,除了OpenAI自己在此基础上引申出的GPT2,GPT3,InstructGPT以及传闻中即将放出的GPT4之外,Google也放出过大规模的LM像是PaLM之类的。到如今,做NLP相关工作的,不知道这篇文章的大概反而是少数了吧,就算没完整地读过,估摸着也知道这文章具体是做了啥的。

但是现在既然工作中涉及到了GPT相关的内容,就打算趁此机会回来把整个GPT系列的模型完整的整理一下。

2. 模型介绍

模型方面,其实就是一个Transformer Decoder模型,不过说Decoder也有点不太对,毕竟相较于原版的Transformer Decoder,这里没有cross attention layer,算是一个单向的transformer encoder吧,具体结构以及数据构造方式可以参考下图:

在这里插入图片描述

这一版本的GPT模型走的还是相对较为传统的预训练 + finetune的范式,或者说,在当时,印象中这是最早的一批开始走自监督模型预训练的工作之一了。

3. 实验考察

1. 训练数据

首先,我们来看一下模型训练所使用的数据集。

在预训练的部分,模型使用BooksCorpus数据,而在finetune阶段,文中使用了如下数据集进行了考察:

在这里插入图片描述

2. 实验结果

下面,我们来看一下GPT模型在上述各类任务当中的效果:

  1. NLI任务
  2. QA任务
  3. Sentence Similarity
  4. 分类任务

得到结果如下:

在这里插入图片描述

在这里插入图片描述

可以看到:

  • GPT在几乎全部的任务当中都获得了SOTA的结果。

3. 消解实验

除了上述基础实验之外,文中还做了一些进阶考察,具体包括:

  1. 考察了层数对模型效果的影响;
  2. 比较了Transformer与LSTM的效果;
  3. 考察了预训练模型在zero-shot下的效果;

具体如下两图所示:

在这里插入图片描述

在这里插入图片描述

可以看到:

  • 随着层数的增加,模型效果确实是持续提升的;
  • Transformer模型(Fig2中右图实线)的效果是显著由于LSTM模型(Fig2中右图虚线)的;
  • GPT预训练模型如果不经过finetune事实上也是可以呈现出不错的结果的。

4. 总结 & 思考

综上,这篇文章提出了GPT模型,主要就是提出了自回归模型的预训练模型范式,并且发现:

  1. 基于Transformer的预训练LM的效果是优于LSTM的,且效果可以随着层数和参数量的增大而持续提升;
  2. 预训练后得到的LLM即使不经过finetune,其效果也是可以的。

基于这两点,后续OpenAI发布的GPT2,GPT3乃至传闻中即将发布的GPT4,基本上都是在上述基础上不断地优化,因此虽然这篇古早到现在已经没啥值得一提的新东西了,但是意义上来说真心是开创性的牛逼工作了……

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

P1464 Function————C++

文章目录题目Function题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1解题思路Code运行结果题目 Function 题目描述 对于一个递归函数 w(a,b,c)w(a,b,c)w(a,b,c) 如果 a≤0a \le 0a≤0 或 b≤0b \le 0b≤0 或 c≤0c \le 0c≤0 就返回值$ 1$。如果 a>20a>20a&…

【Java】-【并发】

文章目录堆和方法区中的数据是可以被共享的堆中的数据是被栈中的变量所持用的,栈是线程隔离的,每个线程私有一个栈,所以栈中的数据不共享调用a方法时,jvm会给a方法创建一块内存区,让其入栈,这块区域被称为a…

linux(信号量)

信号量几个基本概念临界资源临界区原子性互斥信号量后台进程前台进程信号储存信号处理信号(信号捕捉)发送信号1、键盘产生:2、系统调用接口发送信号3、由软件条件产生信号4、硬件异常发送信号内核中的信号量**信号量在内核中的数据结构****信号集操作函数**信号的检…

YOLOv7 Falsk Web 监测平台 | YOLOv7 Falsk Web 部署

YOLOv7 Falsk Web 监测平台图片效果展示 YOLOv7 Falsk Web 监测平台视频效果展示 YOLOv7 Flask Web 检测平台 什么是Flask? 简介 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开…

电子技术——MOS管的小信号模型

电子技术——MOS管的小信号模型 在上一节,我们已经学习过了MOS管的基本线性放大原理,本节我们继续深入MOS管的小信号放大,建立MOS管的小信号模型。 我们本节继续使用上节的电路,如下图所示: DC偏置点 根据上节的知识…

2.单例模式,工厂模式,建造者模式,原型模式

单例模式 单例模式的优点: 处理资源访问冲突表示全局唯一类 实现单例的关键: 构造函数需要是 private 访问权限的,这样才能避免外部通过 new 创建实例;考虑对象创建时的线程安全问题;考虑是否支持延迟加载&#xff1b…

Deformable DETR TBD范式的不二选择

TBD范式检测和跟踪是不分家的。当前,性能较优的目标检测方法大都基于Transformer来做,CNN在目标检测的表现逐渐走低。DETR是基于Transformer的目标检测开山作,其解决了霸榜的yolo系列一些令人讨厌的事情,不需要前处理和后处理,做到了真正意义上的end to end: 前处理:Anc…

测试做得好,犯错少不了【30个最容易犯的错误】谨记

最近跟一些刚刚进入软件测试行业的朋友去交流,发现了一个有趣的现象,就是对于这个行业的很多问题的认识都是一致的片面,当然也可以理解为误区。自己利用一点时间,把他们对于这个行业的认识误区都罗列出来,然后结合自己…

Centos7搭建Hadoop集群(V3.3.4)

Centos7搭建Hadoop集群V3.3.4一、准备工作1、配置hostname2、hosts映射3、关闭防火墙4、同步时间5、关闭selinux6、配置ssh免密登陆7、重启二、安装所需环境1、jdk安装2、hadoop安装三、修改配置hadoop-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlworkers四…

web测试1:在ubuntu中运行boa

参考文档: https://blog.csdn.net/feit2417/article/details/84777523 1.下载boa源码 Boa Webserver主页:Boa Webserver 下载链接:http://www.boa.org/boa-0.94.13.tar.gz 下载后,解压 tar zxvf boa-0.94.13.tar.gz。 文件列表…

Mysql-query优化之explainProfiling

1、explain 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层,不只是MySQL ,其他大多数数据库产品都是按这种架构来进行划分的…

Spring的快速入门代码实现

Spring的快速入门代码实现前言:需要创建Maven的项目(这个一定要看下面的链接)1.如何创建Maven项目直达链接2.将这个项目的名字 命名为spring_ioc一、导入坐标(pom.xml文件中实现)1.1 代码:1.2 version的版本…

【GD32F427开发板试用】从0开始到RTthread移植

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:军军 写在前面: 很高兴获得这次试用机会,一直很想了解国内ARM MCU的发展,尤其是GD32系列的MCU。我也成功获得了第一次使…

PyQt5开发环境搭建 1.2 简单的例子

目录 基本开发步骤 创建Eric6工程目录 使用Qt Creator创建Qt项目 创建项目 Kit Selection 打开编辑窗口 打开form 放一个Label 拖动Label 放一个Button 拖动Push Button 保存UI文件 编译ui文件 当前项目下文件列表 将ui文件编译成py文件 将ui文件和py文件拷贝到…

学习记录678@项目管理之合同管理案例

案例 系统集成商 Simple 公司与生产型企业 Perfect 集团签订了一份企业MIS(管理信息系统)开发合同,合同已执行到设计和开发阶段,由于 Perfect 集团内部组织结构调整可能会影响核心业务的流程。集成商 Simple 公司提出建议,合同暂停执行至新的…

使用 Jenkins + Gitee + maven 自动化部署 Spring Boot

目录 1、前言 1 .1、插件简介 1.2、插件安装 2、创建Maven项目 2.1、新建一个全新的项目 2.2、拷贝已有项目 3、项目配置 3.1 、General 3.2、源码管理 3.3、构建触发器 3.4、构建环境 3.5、Pre Steps 3.6、Build 1)Root POM 2)Goals and…

kubenertes集群部署kubeadm方式

一、安装要求 1、3台机器),操作系统Centos7,5.4内核,CentOS 7.x 系统自带的3.10.x内核存在一些Bugs.导致运行的Docker.Kubernetes不稳定。 2、硬件配置:4GB内存,至少2个CPU或更多CPU,至少硬盘30GB或更多 3、集群中所有机器之间网…

41 锚框【动手学深度学习v2】】

41 锚框【动手学深度学习v2】】 锚框:对边框位置的猜测。 先提出多个框在某个地方,比如5个,然后去看这5个框里面到底有没有物体。 两次预测:锚框位置和锚框内物体的预测。 如何处理锚框? IoU - 交并比 比较两个框之…

Java开发实现图书管理系统(超详细)

本文用Java代码实现图书代码管理系统,有些地方可能会有纰漏,希望各位大佬鉴赏!! 文章目录 文章目录 一、Java实现图书管理系统 1.1创建book包 二、创建图书管理系统的操作包 2.1创建Operation接口 三、创建User包 3.1创建User类 四…

深度盘点时间序列预测方法

本篇介绍时间序列的定义、任务、构成以及预测方法,主要是基本概念的介绍和理解。 时间序列定义 时间序列,通俗的字面含义为一系列历史时间的序列集合。比如2013年到2022年我国全国总人口数依次记录下来,就构成了一个序列长度为10的时间序列…