GPT-1

GPT 系列是 OpenAI 的一系列预训练模型,GPT 的全称是 Generative Pre-Trained Transformer,顾名思义,GPT 的目标是通过 Transformer,使用预训练技术得到通用的语言模型。目前已经公布论文的有 GPT-1、GPT-2、GPT-3。

最近非常火的 ChatGPT 也是 GPT 系列模型,主要基于 GPT-3.5 进行微调。OpenAI 团队在 GPT3.5 基础上,使用人类反馈强化学习 (RLHF) 训练。首先使用了人类标注师撰写约1.2w-1.5w条问答数据,并用其作为基础数据预训练。随后让预训练好的模型(SFT)针对新问题列表生成若干条回答,并让人类标注师对这些回答进行排序。这些回答的排名内容将以配对比较的方式生成一个新的奖励模型(RM)。最后让奖励模型在更大的数据集上重新训练SFT,并将最后两个步骤反复迭代以获得最终的模型。

在介绍 GPT-1 之前,我们先让 ChatGPT 帮我们回答下 GPT 系列模型的基础信息,如下图所示。

前言

GPT-1 是 OpenAI 在论文 Improving Language Understanding by Generative Pre-Training 中提出的生成式预训练语言模型。该模型的核心思想:通过二段式的训练,第一个阶段是利用语言模型进行预训练(无监督形式),第二阶段通过 Fine-tuning 的模式解决下游任务(监督模式下)。GPT-1 可以很好地完成若干下游任务,包括文本分类、文本蕴含、语义相似度、问答。在多个下游任务中,微调后的 GPT-1 系列模型的性能均超过了当时针对特定任务训练的 SOTA 模型。

备注:文本蕴含(Textual entailment)是指两个文本片段有指向关系。给定一个前提文本,根据这个前提去推断假说文本与前提文本的关系,一般分为蕴含关系(entailment)和矛盾关系(contradiction),蕴含关系表示从前提文本中可以推断出假说文本;矛盾关系即前提文本与假说文本矛盾。

1. GPT-1 模型结构

GPT-1模型结构

从上图可以看出,GPT-1 只使用了 Transformer 的 Decoder 结构,而且只是用了 Mask Multi-Head Attention。

Transformer 结构提出是用于机器翻译任务,机器翻译是一个序列到序列的任务,因此 Transformer 设计了Encoder 用于提取源端语言的语义特征,而用 Decoder 提取目标端语言的语义特征,并生成相对应的译文。GPT-1 目标是服务于单序列文本的生成式任务,所以舍弃了关于 Encoder 部分以及包括 Decoder 的 Encoder-Dcoder Attention 层(也就是 Decoder中 的 Multi-Head Atteion)。

GPT-1 保留了 Decoder 的Masked Multi-Attention 层和 Feed Forward 层,并扩大了网络的规模。将层数扩展到12层,GPT-1 还将Attention 的维数扩大到768(原来为512),将 Attention 的头数增加到12层(原来为8层),将 Feed Forward 层的隐层维数增加到3072(原来为2048),总参数达到1.5亿。

将预训练和 Fine-tuning 结合起来,GPT-1 的结构可以用下面的图表示:

图2:GPT-1 结构(包含预训练与 Fine-tuning)

图中最下层 E 表示输入句子单词的 Embedding,中间的 Trm 表示 GPT 的单层 Transformer,最上层的 T 表示预测输出。

除了上面提到的,GPT-1 的 Transformer 结构还有哪些差异?

Q1:GPT-1 采用的是单向的语言模型?

A1:在 GPT 中采用了 Masked Multi-Head Attention,而 Masked Multi-Head Attention 只利用上文对当前位置的值预测,所以 GPT-1 被认为是单向的语言模型。

Q2:GPT-1 中 Position Encoding 的操作有何不同?

A2:在 Transformer 中,由于 Self-Attention 无法捕获文本的位置信息,因此需要对输入的词 Embedding 加入Position Encoding,在 Transformer 中采用了 sin 和 cos 的计算方法,而在 GPT-1 中,不再使用正弦和余弦的位置编码,而是采用与词向量相似的随机初始化,并在训练中进行更新。

从图1的最右侧可以看到,GPT-1 的训练包含两阶段,第一阶段是 GPT-1 模型的预训练过程,得到文本的语义向量;第二阶段是在具体任务上 Fine-tuning,以解决具体的下游任务。

2. 第一阶段:无监督预训练

对于 GPT-1 模型的预训练,同样采用标准语言模型,即通过上文预测当前的词,目标函数表示如下:

 其中k是窗口大小。

GPT-1 使用了12个 Transformer 模块,这里的 Transformer 模块是图1经过变体后的结构,只包含 Decoder 中的Mask Multi-Head Attention 以及后面的 Feed Forward,表示如下:

其中是当前单词u的上文单词向量(比如[3222, 439, 150, 7345, 3222, 439, 6514, 7945],其中数字3222是词在此表中的索引),是词向量矩阵(词的 Embedding 矩阵),是 position embedding, n是 Transformer 层数。

3. 第二阶段:有监督 Fine-tuning

在 GPT-1 模型的下游任务中,需要根据 GPT-1 的网络结构,对下游任务做适当的修改,具体如下图所示:

图3:GPT-1 用于下游任务

假设带有标签的数据集为C,其中,词的序列为 ,标签为y。词序列输入到预训练好的 GPT-1 模型中,经过最后一层 Transformer block 得到输出,然后输入到下游任务的线性层中,得到最终的预测输出:

 此是目标函数为:

 合并之前的预训练目标函数,最终的目标函数表示如下:

4. 不同下游任务的输入转换

针对不同的下游任务,需要对输入进行转换,从而能够适应 GPT-1 模型结构,比如:

  • 分类任务。只需要在输入序列前后分别加上开始(Start)和结束(Extract)标记

  • 句子关系任务。除了开始和结束标记,在两个句子中间还需要加上分隔符(Delim)

  • 文本相似性任务。与句子关系判断任务相似,不同的是需要生成两个文本表示 

  • 多项选择任务。文本相似任务的扩展,两个文本扩展为多个文本。

5. 代码实现

我们看一下ChatGPT是怎么实现的:

有个大致的流程,但是这里面没有体现出 GPT-1 的核心部分:Mask Multi-Head Attention,下一篇文章我们介绍具体的代码实现,并给一个具体的例子,方便大家理解。

总结

GPT-1 是2018年6月提出的模型,比 Bert 还早几个月,当时在9个NLP任务上取得了 SOTA 的效果,但 GPT-1 使用的模型规模和数据量都比较小,这也就促使了 GPT-2 的诞生。

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

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

相关文章

Go协程的底层原理(图文详解)

为什么要有协程 什么是进程 操作系统“程序”的最小单位进程用来占用内存空间进程相当于厂房,占用工厂空间 什么是线程 进程如果比作厂房,线程就是厂房里面的生产线: 每个进程可以有多个线程线程使用系统分配给进程的内存,线…

【linux-汇编-点灯之思路-程序】

目录 1. ARM汇编中的一些注意事项2. IMXULL汇编点灯的前序:3. IMXULL汇编点灯之确定引脚:4. IMXULL汇编点灯之引脚功能编写:4.1 第一步,开时钟4.2 第二步,定功能(MUX)4.3 第三步,定电…

服务器遭受攻击后的黑洞状态应对策略及防护机制解析

引言 在网络安全领域中,当服务器遭受大规模DDoS攻击或其他恶意流量冲击时,为了保护服务的稳定性和其他正常用户的使用体验,往往会采取一种紧急防护手段——将服务器置于黑洞状态。所谓黑洞状态,即网络服务商暂时屏蔽掉对服务器的…

Windows 下安装 jupyter notebook

先安装 python 环境,具体不再讲了。有了 python 环境,就可以用 pip 命令安装了。为了加快速度,下面的命令选择的清华大学的镜像源。 pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple/安装完成后,我在下面的文件…

【at89s52单片机的冒泡排序使用指针】2022-4-30

缘由at89s52单片机的冒泡排序-编程语言-CSDN问答 #include "REG52.h" unsigned char code smgduan[17]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07 ,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-9A-F void smxs(unsigned char mz, unsigned char w) {unsigned cha…

“中国汉字”的英语表达|柯桥考级英语生活英语商务口语培训

汉字,又称中文字、中国字、方块字。汉字是表意文字,一个汉字通常表示汉语里的一个词或一个语素,这就形成了音、形、义统一的特点。 我们通常用“Chinese character”表示“汉字”而不用“Chinese word”. 🔴 例句: C…

保护您的连接:无线网络安全探究

目录 一.无线局域网安全 1. 概述 2. WEP 安全协议 3. WPA/WPA2/WPA3 安全协议 二.移动网络安全 三.实际案例 KRACK 漏洞 Stagefright 漏洞 四.结论 一.无线局域网安全 1. 概述 无线局域网(WLAN)安全是保护家庭和企业网络免受未经授权访问和攻击…

QT:信号和槽

文章目录 信号和槽connect函数槽自定义槽第一种第二种 信号和槽 这里的信号和Linux的信号一样吗? 答案是差不多,但是也有一定的区别,而且也是两个不同的概念 信号有三个概念,一个是信号源,这个信号是由谁发送的&…

解决Git提交失败的问题:配置user.name和user.email

文章目录 一、场景描述二、原因分析三、解决办法1、全局配置2、单个项目配置3、验证配置 四、总结 在软件开发过程中,使用Git进行版本控制是必不可少的。然而,有时候在用Visual Studio Code提交代码时可能会遇到提交失败的情况,其中一个常见的…

信息管理与信息系统就业方向及前景分析

信息管理与信息系统(IMIS)专业的就业方向十分广泛,包含计算机方向、企业信息化管理、数据处理和数据分析等,随着大数据、云计算、人工智能、物联网等技术的兴起,对能够处理复杂信息系统的专业人才需求激增,信息管理与信息系统就业…

Storm 技术揭秘:掌握实时大数据处理的终极神器!

Storm 是一个开源的分布式实时计算系统,由 Twitter 公司开发并贡献给 Apache 基金会。它可以处理大量的数据流,进行实时的数据挖掘、数据分析和数据可视化等任务。Storm 具有高容错性、可扩展性和低延迟的特点,适用于需要快速响应的场景&…

15、ESP32 Wifi

ESP32 的 WIFI 功能是模块内置的&#xff0c;通过 ESP32 的基础库调用一些函数就可以轻松使用它。 Wifi STA 模式&#xff1a; 让 ESP32 连接附近 WIFI&#xff0c;可以上网访问数据。 // 代码显示搜索连接附近指定的 WIFI // 通过 pin 按键可断开连接#include <WiFi.h>…

纯血鸿蒙APP实战开发——主页瀑布流实现

介绍 本示例介绍使用ArkUIWaterFlow组件和LazyForEach实现瀑布流场景。该场景多用于购物、资讯类应用。 效果图预览 使用说明 加载完成后显示整个列表&#xff0c;超过一屏时可以上下滑动。 实现思路 创建WaterFlowDataSource类&#xff0c;实现IDataSource接口的对象&…

Furion项目的单元测试

.Net项目中如果要对Controller或者服务进行测试一般要用mock创建需要注入的实例, 要配置好这些实例还挺复杂的 在Furion帮我们实现了单元测试的构造函数注入, 让单元测试变得简单, 具体步骤如下 在解决方面里面新增一个xunit的测试项目TestProject1, 测试项目一般单独放在test…

Java学习第04天-方法

文章目录 方法方法的定义、调用方法使用的常见问题方法案例方法调用的内存图方法的参数传递机制基本类型参数引用类型参数案例 方法重载单独使用return关键字 方法 方法是一种语法结构&#xff0c;它可以把一段代码封装成一个功能&#xff0c;以方便重复调用 好处 提高了代码的…

查看mysql数据库大小、表大小和最后修改时间

1.查看数据库表基本信息。 select * from information_schema.TABLES where information_schema.TABLES.TABLE_SCHEMA ‘数据库名’ and information_schema.TABLES.TABLE_NAME ‘表名’; 2.查看MySQL数据库大小 SELECT sum(DATA_LENGTH)sum(INDEX_LENGTH) FROM informati…

JAVA面试之MQ

如何保证消息的可靠传输&#xff1f;如果消息丢了怎么办 数据的丢失问题&#xff0c;可能出现在生产者、MQ、消费者中。 &#xff08;1&#xff09;生产者发送消息时丢失&#xff1a; ①生产者发送消息时连接MQ失败 ②生产者发送消息到达MQ后未找到Exchange(交换机) ③生产者发…

pcb沉金工艺有什么作用:为何它成为电子制造的必备工艺?

在电子制造业中&#xff0c;PCB&#xff08;印刷电路板&#xff09;的质量和性能对于产品的整体表现至关重要。沉金工艺因其能够显著提升pcb的焊接性能、耐腐蚀性和导电性能&#xff0c;已成为电子制造不可或缺的一部分。 一、沉金工艺的作用 1.焊接性能的提升&#xff1a;工…

第一次用ssh登录树莓派or linux服务器出现Permission denied (publickey)

authenticity of host ) cant be established ssh userip Permission denied (publickey) 解决办法&#xff1a; 第一步&#xff1a; PasswordAuthentication yes 第二步&#xff1a; service sshd restart 这两步一步都不能少 注意&#xff01;

游资宁波桑田路悟道心法

“书藏古今&#xff0c;港通天下”–说的是甬城。 孙中山先生说&#xff0c;“凡吾国各埠&#xff0c;莫不有币人事业&#xff0c;即欧洲各国&#xff0c;亦多雨商足迹”&#xff0c;“甬人开风气之先&#xff0c;为各省之模范”–说的是甬人。 “炒股不跟解放南&#xff0c;…