GPT系列论文解读:GPT-2

news2024/12/30 3:48:01

GPT系列

GPT(Generative Pre-trained Transformer)是一系列基于Transformer架构的预训练语言模型,由OpenAI开发。以下是GPT系列的主要模型:

  1. GPT:GPT-1是于2018年发布的第一个版本,它使用了12个Transformer编码器层和1.5亿个参数。GPT-1的训练数据包括了互联网上的大量文本。

  2. GPT-2:GPT-2于2019年发布,是GPT系列的第二个版本。它比GPT-1更大更强大,使用了24个Transformer编码器层和1.5亿到15亿个参数之间的不同配置。GPT-2在生成文本方面表现出色,但由于担心滥用风险,OpenAI最初选择限制了其训练模型的发布。

  3. GPT-3:GPT-3于2020年发布,是GPT系列的第三个版本,也是目前最先进和最强大的版本。它采用了1750亿个参数,拥有1750亿个可调节的权重。GPT-3在自然语言处理(NLP)任务中表现出色,可以生成连贯的文本、回答问题、进行对话等。

  4. GPT-3.5:GPT-3.5是在GPT-3基础上进行微调和改进的一个变种,它是对GPT-3的进一步优化和性能改进。

GPT系列的模型在自然语言处理领域取得了巨大的成功,并在多个任务上展示出了强大的生成和理解能力。它们被广泛用于文本生成、对话系统、机器翻译、摘要生成等各种应用中,对自然语言处理和人工智能领域的发展有着重要的影响。

GPT系列是当前自然语言处理领域下最流行,也是商业化效果最好的自然语言大模型,并且他的论文也对NLP的领域产生巨大影响,GPT首次将预训练-微调模型真正带入NLP领域,同时提出了多种具有前瞻性的训练方法,被后来的BERT等有重大影响的NLP论文所借鉴。

目录

  • GPT系列
  • 前言
  • Zero-Shot
  • 贡献
  • GPT-2提出的方法
    • 训练数据集
    • 输入表示
    • 模型架构

前言

BERT的横空出世,利用与GPT相似的思路,使用Transformer编码器训练了更大的模型,得到了比GPT更好的效果,但是GPT的作者Alec Radford仍然坚定Transformer解码器在此类任务中的效果同样好,几个月后发表了GPT-2,Alec Radford训练一个比BERT更大的模型,,但他发现将GPT-1模型在更大的数据集训练一个更大的模型(15亿参数)仍然与BERT模型对比优势不太明显,提到了Zero-Shot的概念(当然这个概念在GPT-1中就提到了,在GPT-2论文将其作为主要卖点)

Zero-Shot

“Zero-shot” 是一个术语,通常用于机器学习和自然语言处理领域。这个术语指的是模型在没有事先接受相关任务的训练数据的情况下执行任务的能力。换句话说,这是模型能够在未见过的情境中进行推理和处理的能力。

在自然语言处理中,zero-shot 学习通常指的是模型能够处理未知词汇或主题的能力。例如,如果一个文本分类模型在训练时没有见过关于某个特定主题的样本,但在测试时却能够正确分类相关文本,那么我们就可以说这个模型具有 zero-shot 学习能力。

这种能力的实现通常涉及到使用预训练的模型,这些模型在大量数据上进行了训练,从而学到了通用的语言和知识表示。这样的模型能够泛化到新领域或任务,即使它们在训练时没有见过相关的数据。

在这篇论文中,Zero-shot指的是在使用GPT来完成一些下游任务的时候,不需要下游任务任何标注的信息,也不需要训练模型,最终他们也得到了一些有说服力的结果。

贡献

我们先说GPT-2的贡献:

我们都知道自然语言处理任务,例如问答、机器翻译、阅读理解和摘要,通常通过对特定任务数据集的监督学习来完成。

作者证明了GPT模型可以在没有任何有标签的数据(也就是上面讲的Zero-shot)进行训练后就可以在多个任务中取得良好的效果。他们在包含数百万个网页(称为 WebText)的新数据集上进行训练时,语言模型开始在没有任何显式监督的情况下学习这些任务。当以文档加问题为条件时,语言模型生成的答案在 CoQA 数据集上达到 55 F1 - 在不使用 127,000 多个训练示例的情况下,匹配或超过 4 个基线系统中的 3 个的性能。语言模型的容量对于零样本任务迁移的成功至关重要,增加它的容量可以提高跨任务的对数线性方式的性能。我们最大的模型 GPT-2 是一个 1.5B 参数 Transformer,它在零样本设置下的 8 个测试语言建模数据集中的 7 个上取得了最先进的结果,但仍然不适合 WebText。模型中的示例反映了这些改进并包含连贯的文本段落。这些发现为构建语言处理系统提供了一条有希望的道路,该系统可以从自然发生的演示中学习执行任务。

GPT-2提出的方法

下面我们讲讲GPT-2做了什么事情:
GPT团队有很大野心,他们认为自己开发的通用系统框架应该能够执行不同的任务,即使对于相同的输入,它不仅以输入为条件,也要以执行的任务为条件。简单来说我们知道一般的语言模型都基于下面的公式:
P ( 输出 ∣ 输入 ) P(输出|输入) P(输出输入)
但是GPT-2对于下面的公式建模:
P ( 输出 ∣ 输入 , 任务 ) P(输出|输入,任务) P(输出输入,任务)

举个例子:
对于翻译任务,训练集的形式应为如下:
( 翻译为法语 , 中文文本 , 法语文本 ) (翻译为法语, 中文文本,法语文本) (翻译为法语,中文文本,法语文本)
对于阅读理解的任务,训练集的形式应为如下:
( 回答问题 , 段落 , 问题 , 答案 ) (回答问题,段落,问题,答案) (回答问题,段落,问题,答案)

训练数据集

一般以任务为驱动的模型训练都是基于一个特定领域的数据集上的,但是GPT想要做的是通用的模型,所以在数据集上,他们选择的是网络爬虫。

GPT团队创建了一个强调文档质量的新的网页抓取方法。为了做到这一点,他们只抓取了经人工筛选/过滤的网页。手动筛选完整的网页抓取将非常昂贵,因此作为起点,我们抓取了所有来自社交媒体平台Reddit的外部链接,这些链接至少获得了3个赞(karma)。这可以被视为一个启发式指标,用于判断其他用户是否认为该链接有趣、有教育意义或仅仅是好笑的。

简单介绍一下Reddit:
Reddit是一个社交新闻聚合、讨论和内容分享的网站。它是由史蒂夫·霍夫曼(Steve Huffman)和亚伦·斯沃茨(Aaron Swartz)于2005年创建的。Reddit的用户可以在各种主题的论坛(称为"subreddit")上发布文本、链接、图像和视频等内容,并与其他用户进行讨论和互动。

利用上面的方法抓取出了4500万个链接,GPT团队获取其HTML响应,经过一些预处理后,提出其中有自然语言意义的内容,创建了WebText数据集,它包含超过800万个文档,总共40GB的文本。

论文中给出在WebText数据集中部分有关法语和英语翻译的自然发生的演示示例:
在这里插入图片描述

输入表示

GPT团队认为:通用语言模型(LM)应该能够计算(并生成)任何字符串的概率。当前的大规模 LM 包括预处理步骤,例如小写、标记化和词汇表外标记,这些步骤限制了可建模字符串的空间。

字节对编码(Byte Pair Encoding,简称BPE)是一种介于字符级和词级语言建模之间的实用方法,它有效地在常见符号序列使用词级输入,在不常见符号序列使用字符级输入之间进行插值。尽管其名称中包含"byte"(字节),但参考的BPE实现通常是基于Unicode代码点而不是字节序列进行操作的。为了对所有Unicode字符串进行建模,这些实现需要包含完整的Unicode符号空间。这将导致基本词汇量超过130,000个,在添加任何多符号标记之前就已经非常庞大。相比之下,通常使用BPE的标记词汇量为32,000到64,000个,这是可以接受的范围。

与此相反,字节级的BPE版本只需要一个大小为256的基本词汇表。然而,直接将BPE应用于字节序列会导致合并的次优选择,因为BPE使用基于频率的贪心启发式方法来构建标记词汇表。我们观察到BPE会包含许多常见单词的多个变体,比如dog、dog!、dog?、dog.等。这导致词汇表有限的位置和模型容量分配不够优化。为了避免这种情况,我们阻止BPE在任何字节序列中跨字符类别进行合并。我们对空格(space)做了一个例外,这显著提高了压缩效率,同时只对一些单词在多个词汇标记之间进行了最小程度的分割。

这种输入表示使我们能够将字级 LM 的经验优势与字节级方法的通用性结合起来。由于我们的方法可以为任何 Unicode 字符串分配概率,因此这使我们能够在任何数据集上评估 LM,而不管预处理、标记化或词汇大小如何。

模型架构

GPT-2模型很大程度上遵循 OpenAI GPT-1模型的细节,。对于GPT-1的架构,这里我们不过多介绍,只放出架构图供读者复习,想了解具体的细节请看之前文章:点击此处
在这里插入图片描述
有如下的细节调整:

  1. 层归一化(Ba et al., 2016)被移至每个子块的输入,类似于预激活残差网络。
  2. 在最终的自注意力块之后添加了额外的层归一化。
  3. 使用了修改后的初始化,该初始化考虑了残差路径上随模型深度的累积。我们在初始化时将残差层的权重缩放为 1 / N 1/\sqrt{N} 1/N ,其中 N 是残差层的数量。词汇量扩大到50,257个。我们还将上下文大小从 512 个标记增加到 1024 个标记,并使用更大的批量大小 512。

以上就是所有GPT-2的改动,看似改动不大,但是它却奠定了整个LLM的发展方向,给出了自然语言通用架构的解决方法,并设计了超大高质量的自然语言模型无监督训练数据集,论文主要在讨论在没有给出明确任务的情况下,使用大量语料训练出来的语言模型不需要额外的微调,也可以完成许多自然语言任务,得到比较满意的结果。

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

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

相关文章

JavaEE 网络原理——TCP的工作机制(中篇 三次握手和四次挥手)

文章目录 一、TCP 内部工作机制——连接管理1. 连接(三次握手)(1).有连接和确认应答之间的关系(2). 通过客户端和服务器详细描述三次握手 2. 断开连接(四次挥手)(1)讨论“四次握手”中间步骤的合并问题。(2) 根据简单的 TCP 代码解释断开连接(3) 四次挥手中的两个重要的 TCP 状…

计算机网络-计算机网络体系结构-物理层

目录 一、通信基础 通信方式 传输方式 码元 传输率 *二 准则 2.1奈氏准则(奈奎斯特定理) 2.2香农定理 三、信号的编码和调制 *数字数据->数字信号 数字数据->模拟信号 模拟数据->数字信号 模拟数据->模拟信号 *四、数据交换方式 电路交换 报文交换…

【刷题笔记10.5】LeetCode:排序链表

LeetCode:排序链表 一、题目描述 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 二、分析 这题咱们默认要求:空间复杂度为O(1)。所以这把咱们用自底向上的方法实现归并排序,则可以达到O(1) 的空间复杂…

[极客大挑战 2019]FinalSQL - 异或盲注

1、这题的关键是找注入点,如果选择用户名、密码作为输入点就麻烦了 2、注入点:按钮,点击就传id;当id1时,提示Click others   可以利用id的特性,构造异或匹配   payload: f"1^(ord(substr((select…

nodejs+vue中医体质的社区居民健康管理系统elementui

可以实现首页、中医体质量表、健康文章、健康视频、我的等,在我的页面可以对医生、小区单元、医疗药品等功能进行操作。目前主要的健康管理系统是以西医为主,而为了传扬中医文化,提高全民健康意识,解决人民日益增长的美好生活需要…

基于SpringBoot的图书进销存管理系统

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 图书类型管理 商品退货管理 客户信息管理 图书添加 客户添加 应收金额 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实…

Ubuntu无法引导启动的修复

TLDR:使用Boot-Repair工具。 Boot-Repair Boot-Repair是一个简单的工具,用于修复您在Ubuntu中可能遇到的常见启动问题,例如在安装Windows或其他Linux发行版后无法启动Ubuntu时,或者在安装Ubuntu后无法启动Windows时,…

[CISCN 2019华北Day2]Web1 - 布尔盲注

考点:布尔盲注【注意,sql中的substr初始位置是1不是0】 1、页面提示用id传参,而且我们发现是post传参 2、我们传了id1后提示“Hello, glzjin wants a girlfriend.“ 3、由于这题直接输入查询字符,可以通过字典爆破过滤&#xff0…

深度学习基础之参数量(3)

一般的CNN网络的参数量估计代码 class ResidualBlock(nn.Module):def __init__(self, in_planes, planes, norm_fngroup, stride1):super(ResidualBlock, self).__init__()print(in_planes, planes, norm_fn, stride)self.conv1 nn.Conv2d(in_planes, planes, kernel_size3, …

人机关系不是物理关系也不是数理关系

人机关系是一种复杂的社会技术系统,涉及到人类和机器、环境之间的相互作用和影响。它不仅限于物理接触和数理规律,同时还包括了思维、情感、意愿等方面的交流和互动。在人机关系中,人类作为使用者和机器作为工具(将来可能会上升到…

rust入门一:安装 Hello World

环境: window 11 专业版rust 1.72.1 一、下载安装 直接去官网: https://www.rust-lang.org/tools/install 下载完成后如下: 双击运行一步步安装就行。 如果是更新或卸载,在命令行中运行: rustup update&#xff1a…

ChatGPT基础使用总结

文章目录 一、ChatGPT基础概念大型语言模型LLMs---一种能够以类似人类语言的方式“说话”的软件ChatGPT定义---OpenAI 研发的一款聊天机器人程序(2022年GPT-3.5,属于大型语言模型)ChatGPT4.0---OpenAI推出了GPT系列的最新模型ChatGPT典型使用…

[GXYCTF2019]禁止套娃 无回显 RCE 过滤__FILE__ dirname等

扫除git 通过githack 获取index.php <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])){if (!preg_match(/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i, $_GET[exp])) {if(; preg_replace(/[a-z,_]\(…

DevicData-D-XXXXXXXX勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

引言&#xff1a; 在数字时代&#xff0c;数据安全成为一项至关重要的挑战。DevicData-D-XXXXXXXX勒索病毒&#xff08;以下简称DevicData病毒&#xff09;是这场战斗中的新敌人&#xff0c;它能够以毁灭性的方式加密您的数据&#xff0c;迫使您在数据和时间之间做出艰难的选择…

nodejs+vue游戏测评交流系统elementui

可以实现首页、发布招募、公司资讯、我的等&#xff0c;另一方面来说也可以提高在游戏测评交流方面的效率给相关管理人员的工作带来一定的便利。在我的页面可以对游戏攻略、我的收藏管理、实际上如今信息化成为一个未来的趋势或者可以说在当前现代化的城市典范中,发布招募等功能…

[图论]哈尔滨工业大学(哈工大 HIT)学习笔记23-31

视频来源&#xff1a;4.1.1 背景_哔哩哔哩_bilibili 目录 1. 哈密顿图 1.1. 背景 1.2. 哈氏图 2. 邻接矩阵/邻接表 3. 关联矩阵 3.1. 定义 4. 带权图 1. 哈密顿图 1.1. 背景 &#xff08;1&#xff09;以地球为建模&#xff0c;从一个大城市开始遍历其他大城市并且返回…

逆变器下垂控制单机

仿真控制参数 主电路 坐标变换 功率计算 下垂控制 电压电流双闭环控制 结果变量监控 断路器闭合&#xff0c;负载突增 负载突增&#xff0c;有功和无功突增 有功增加&#xff0c;频率减小 无功增加&#xff0c;参考电压减小

【JavaScript】相等运算符(== 和 ===)

如果x和y的类型相同&#xff0c;JavaScript会用equals 方法比较这两个值或对象。 没有出现在表格中的情况都会返回 false。&#xff08;表格中的方法都是内部规定的&#xff09; 对于 toNumber 方法&#xff1a; 对于 toPrimitive 方法&#xff1a; // 举个例子&#xff1a; c…

基于JavaWeb技术的在线考试系统设计与实现

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 考试统计管理 专业列表管理 忘记密码人员登记管理 修改密码 试卷信息 考试信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理…

GPX可视化工具 GPX航迹预览工具

背景 当我们收到别人分享的航迹文档&#xff0c;即gpx文档时&#xff0c;如何快速的进行浏览呢&#xff1f;我们可以使用GIS软件来打开gpx文档并显示gpx中所记录的航迹&#xff0c;例如常用的GIS软件有googleEarth&#xff0c; Basecamp&#xff0c; GPXsee&#xff0c; GPX E…