GPT1解读:Improving Language Understanding by Generative Pre-Training

news2024/11/18 15:22:36

自然语言处理NLP是当代人工智能的关键领域,包含文本识别、智能问答等多个方向任务,通过监督学习方式一般需要大量带标签数据,而对某些特定任务,获取带标签数据成本非常高。GPT通过大量的未标记文本数据来学习一个通用预训练(generative pre-training)的语言模型,并通过语言模型可以学习到内在语义信息,之后针对特定任务只需要用少量的标签数据进行fine-tuning,而不需要对模型结构进行较大改变。其通过一系列实验表明,通用预训练(generative pre-training)的语言模型确实可以学习到潜在语义信息,并在多个不同NLP任务中都取得非常好的效果。

半监督的学习方法在NLP领域并不少见,早期通过无监督word2vec学习词的embedding向量,然后输入给特定任务的模型进行监督训练,但都必须要求足够的标签数据。GPT想要通过通用预训练(generative pre-training)的语言模型来学习到更为深层次的语义信息,为达成目标,这里包含了两个问题:如何去学习更为深层次的语义信息表达?所学习的语义信息能否有效的帮助目标任务?

GPT采用了两阶段的训练方式:通过大量未标记的文本数据进行非监督学习,再用结合特定任务用少量标记数据进行fine-tuning。

1. 训练目标

A. 非监督的预训练

通用预训练(generative pre-training)语言模型的目标是预测下一文本的概率,假设存在一段训练文本{u1,u2,...,un},其中u表示文本序列中的词元,预训练的损失函数为:

L_1 = \sum_i log(P(u_i|u_{i-1},u_{i-2},...,u_{i-k}; \Theta))

B. 监督的fune-tuning过程

监督的fune-tuning主要是针对于特定任务,假设对于分类任务,一段训练文本{u1,u2,...,un}的label为y,此时存在分类任务的准确性loss:

L_2 = \sum_{(u,y)}log(P(y|u_1,u_2,...,u_n; \Theta))

此外还有类似于预训练过程中预测下一文本准确性的辅助训练目标Auxiliary training objectives,这一训练目标一方面是为了帮忙模型学习到特定任务中本身的语义内容,另一方面帮忙收敛。其在之后实验中也表明当特定任务中包含了大量文本时,辅助训练明显提升效果,因此监督的fune-tuning过程的整体LOSS可以表示为,其\lambda是一个可调整的超参数。

L=L_2 +\lambda L1

2. 模型结构

 GPT-1的模型结构非常简明,其采用的12层Transformer decoder作为语言模型,之所以选择Transformer,因为其内部采用了self-attention来作为特征提取器,其计算量相比于fc等网络更少,同时可以支持并行计算,并能获取长范围词间信息。为什么只采用decoder层,是因为GPT-1是一个自生成的网络,换而言之,GPT-1输入是文本序列,其输出是下一词,而encoder-decoder一般用于类似于翻译,encoder和decoder分别用于提取不同输入和目标的不同信息。因为没有encoder层,因此在decoder层中移除了同encoder层输出交互的多头模块。

此外对于Transformer中的激活函数采用的是Gaussian Error Linear Unit (GELU),其相对于Relu,要更为平滑,而且是处处可导的。

GPT-1另一个调整是position向量是可学习的,而针对于特定任务的监督的fune-tuning过程中,只需要原来的transformer之后额外添加一个线性层。

因此针对于输入序列U,预测文本的整体通路可以用如下公式表示:

h_o=UW_e +W_p \\ h_l=transformer(h_{l-1})\\ P(u)=softmax(h_nW_e)

  • 式1表示输入序列U在经过文本embedding以及叠加位置embedding,这里W表示embedding矩阵,都是可以学习的参数。
  • 式2表示经过隐层经过多层Transformer的过程
  • 式3表示最后Transformer层输出经过文本embedding还原为文本的过程

对于特定任务,会在最后Transformer层输出再通过一个线性层得到。此外通过上面模型图中可以看出,虽然GPT本身是生成式模型,但将所有的NLP任务都转换为判别式模型。

P(y)=softmax(h_nW_y)

3. 训练细节

A. 数据

GPT-1的训练数据是BooksCorpus,内部包含了7,000本小说内容,这些小说内容为很多长段连续的文本,可以帮助模型学习长范围的信息,其通过实验分析,其相比于其他单句且前后不连贯的数据集要好很多。

另一个是bytepair encoding (BPE)的字符压缩方法,传统的NLP都是根据词来划分词典,但当针对于多语言模型时,这个词典将非常大,会极大增加模型的训练负担,而GPT采用的是从字符上去压缩,最终的词典大概在40000左右。

B. 训练

训练过程采用的Adam优化,但在学习率设置,一方面在前2000轮,学习率是从0开始线性提升的,其之后是通过AdamWR方式训练的,AdamWR相比于标准的Adam,一方面引入weight decay来增加L2正则约束,另一方面是引入warm restart,该方法会周期性调整学习率,从而避免学习率在一直减少中陷入了局部最优。

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

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

相关文章

ZiKiT DICOM 存档(PACS)模态服务器 Crack

ZiKiT结合了DICOM存档(PACS),模态工作列表服务器和HL7消息代理,它们共享相同的数据库并相互通信。 最新版本 – ZiKiT 2020 ZiKiT 提供动态映射规则和消息结构定义,同时保持合规性并遵守标准。该套件使非程序员能够在…

电动力学:电偶极辐射场

电磁辐射的产生条件 存在时变源(时变的电荷源、时变的电流源,或时变的电磁场)时变源的频率应足够高(辐射系统的尺寸大小和电磁波波长差不多时,才有可能产生明显的辐射效应)波源电路必须开放(源电…

Android 如何获取有效的DeviceId

目录 前言官方唯一标识符建议使用广告 ID使用实例 ID 和 GUID不要使用 MAC 地址标识符特性常见用例和适用的标识符 解决方案DeviceIdANDROID_IDMac地址UUID补充 总结 前言 从 Android 10 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可…

新手建站:腾讯云轻量服务器安装宝塔镜像和使用方法

腾讯云轻量应用服务器宝塔面板怎么用?轻量应用服务器如何安装宝塔面板?在镜像中选择宝塔Linux面板腾讯云专享版,在轻量服务器防火墙中开启8888端口号,然后远程连接到轻量服务器执行宝塔面板账号密码查询命令,最后登录和…

Java内存模型介绍

Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念&…

系列四、vue3 初始化项目(图形化界面方式)

一、启动UI界面 vue ui 二、创建项目 2.1、在此创建项目 2.2、创建新项目-详情配置 2.3、创建新项目-预设 2.4、创建新项目-功能 2.5、创建新项目-配置 2.6、运行项目 任务》serve》运行》启动app 2.7、首页 三、安装element-plus 3.1、步骤 ①、运行 vue ui 命令&#…

【C++初阶】想要编译器为你干活吗?来试试模板吧(模板初阶)

一.泛型编程 引入 我们之前都写过交换函数Swap,例如这样的: //交换两个整型 void Swap(int*x1, int *x2) {int tmp *x1;*x1 *x2;*x2 tmp;} 如果要交换其它的类型该怎么办呢? 那只能当个CV工程师了,然后再修修改改,…

java枚举enum

目录 一、概念二、声明枚举三、枚举类四、为枚举添加方法五、EnumMap 与 EnumSet 一、概念 枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能…

CAN总线通讯协议学习

s目录 CAN(controller Area Network) 控制器局域网 CAN通讯 CAN总线的数据帧 解析 CAN(controller Area Network) 控制器局域网 CAN总线应用最多的是汽车领域,这里的控制器在汽车领域的专业术语是ECU.(electronic control unit)电子控制单元。可以看成…

【计算机网络之HTTP篇】HTTP协议详解

目录 一、HTTP协议概念 二、HTTP 协议格式 三、HTTP请求详解 认识URL 认识HTTP方法 GET POST Host Content-Length Content-Type User-Agent (简称 UA) Referer Cookie 四、HTTP 响应详解 状态码 200 OK 404 Not Found 403 Forbidden 500 Internal Server E…

IMX6ULL裸机篇之DDR3初始化

一. DDR3L初始化简介 I.MX6U-ALPHA 开发板上带有一个 256MB/512MB 的 DDR3 内存芯片,16 位宽,型号为 NT5CC128M16JR/MT5CC256M16EP,nanya 公司出品的,分为对应 256MB 和 512MB 容量。 我自己用的开发板上 DDR3L内存芯片型号为…

【论文阅读】REPLUG: Retrieval-Augmented Black-Box Language Models

文章目录 前言REPLUGREPLUG LSR: Training the Dense RetrieverComputing Retrieval LikelihoodComputing LM likelihood 前言 原文地址:REPLUG: Retrieval-Augmented Black-Box Language Models 本文提出REPLUG,一个将语言模型视为黑盒检索增强的语言模…

45道SQL题目陆续更新

文章目录 学习视频配置环境第一天内连接 外连接第二天 学习视频 学习视频 配置环境 四张表 配置四张表的sql语句 #创建发据库 create database frogdata charsetutf8;use frogdata;# 学生表 Student create table Student( SId varchar(10), Sname varchar(1…

网易云音乐开发--SongDetail搭建

SongDetail静态页面搭建 我们再新建一个页面songDetail 先写结构 再写结构 然后在写样式,把这个图片放进去 这样就放进去了,这里有一个新的让元素居中的方式就是,子绝父相,然后 position: absolute;top: 0;left: 0;right: 0;bot…

MultipartFile来上传单个及多个文件代码示例

目录 一、MultipartFile上传单个文件代码示例1.1、MultipartFile上传单个文件,不包含其它参数1.2、MultipartFile上传单个文件,包含其它参数1.3、MultipartFile上传单个文件,包含其它请求实体 二、MultipartFile上传多个文件代码示例2.1、MultipartFile上传多个文件,不包含其它…

java(springboot+ssm)/python/php/nodejs/基于vue的景区门票预约管理系统

后端:java(springbootssm)/python/php/nodejs/ 开发运行:微信开发者/hbuilderx 后端:idea/eclipse/vscode/pycharm 模块划分:公告类型、公告信息、用户信息、用户咨询、地区信息、景区信息、景区开放、景区预约、统计信息 本技术是Java平台的…

国考省考行测:年均增长率,等速率增长率问题

国考省考行测:年均增长率,平均增长率 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申…

异常和中断

异常和中断机制 ​ 现代计算机中都配有完善的异常和中断处理系统,CPU的数据通路中有相应的异常检测和响应逻辑,外设接口中有相应的中断请求和控制逻辑,操作系统中有相应的中断服务程序。 异常和中断的基本概念 异常(内中断&#…

数据结构之树,实现堆的增删改查接口及堆的应用

目录 一、树 1.树的概念及结构 1.1树的概念 1.2树的相关概念 1.3树的表示 2.二叉树的概念及结构 2.1二叉树的概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树的存储结构 3.二叉树的顺序结构及实现 3.1二叉树的顺序结构 3.2堆的概念及结构 二、堆的实现 0.定义堆…

神经网络:Zero2Hero 2 - MLP、Embedding

Zero → \to → Hero : 2 接上篇,Zero → \to → Hero : 1,进一步的扩展模型: 增加输入字符序列的长度,通过多个字符预测下一个字符的概率分布增加模型的深度,通过多层的MLP来学习和预测字符的生成概率增加嵌入层&…