从GPT-1到GPT-3 预训练语言模型的演进与突破

news/2024/7/7 7:08:55/文章来源:https://www.cnblogs.com/chatlin/p/18283230

本文由 ChatMoney团队出品
前言
Generative Pre-trained Transformer(GPT)系列是由OpenAI开发的预训练语言模型,它们在多种NLP任务中取得了令人瞩目的成绩,包括文章生成、代码生成、机器翻译和问答等。GPT系列模型的核心思想是通过无监督学习在大规模语料库上进行预训练,再通过少量数据进行微调以适应特定任务。随着模型容量的增加和训练数据的扩大,GPT系列模型的能力也在不断提升。

模型
发布时间
参数量
预训练数据量
GPT
2018 年 6 月
1.17 亿
约 5GB
GPT
2019 年 2 月
15 亿
40GB
GPT
2020 年 5 月
1,750 亿
45TB

GPT-1:无监督学习与通用预训练
在GPT-1问世之前,传统的自然语言处理(NLP)模型主要依赖于有监督学习,这种方法要求大量带有明确标签的数据进行任务特定的模型训练。然而,有监督学习存在两大局限性:

  1. 数据标注的挑战:高质量的标注数据往往难以获取,特别是在一些复杂场景中,如图像标注或情感分析,数据的标签可能模糊或不清晰。
  2. 模型泛化能力的局限:通过某一特定任务训练的模型往往难以直接应用于其他任务,这使得模型更像是“领域专家”而非真正理解NLP的“通才”。
    GPT-1打破了这一局限,它采用了一种全新的思路:先通过无标签数据学习一个通用的语言模型,再根据具体任务进行微调。GPT-1能够处理的有监督任务包括:
  • 自然语言推理:判断两个句子之间是否存在蕴含、矛盾或中立关系。
  • 问答与常识推理:类似于多选题,给定文章、问题和多个候选答案,模型需要预测每个答案的概率。
  • 语义相似度判断:确定两个句子在语义上是否相关。
  • 文本分类:识别输入文本的类别归属。
    这种将无监督学习作为有监督模型预训练目标的方法,被称为通用预训练(Generative Pre-training,GPT)。
    GPT-1的训练过程
    GPT-1的训练分为两个阶段:无监督的预训练和有监督的微调。
    1.1.1 无监督预训练
    GPT-1的无监督预训练基于语言模型进行。给定一个无标签的文本序列,模型的优化目标是最大化序列中每个词的条件概率乘积,即最大化似然值。这一过程中,GPT-1使用了滑动窗口机制,并在每个窗口内计算条件概率。这些参数通过随机梯度下降(SGD)等优化算法进行更新。
    GPT-1的模型结构基于Transformer架构,特别是其中的解码器部分。它采用了12个Transformer块堆叠而成,每个块都包含多头自注意力机制和全连接层,用于生成输出概率分布。
    通过这种方式,GPT-1能够在无标签数据上学习语言的通用表示,为后续的有监督任务微调提供强有力的基础
    1.2 GPT-1的数据集
    GPT-1的训练主要基于BooksCorpus数据集,这是一个包含大量未发布书籍的集合。选择这个数据集的原因主要有两点:首先,书籍中的文本通常具有较长的上下文依赖关系,这有助于模型学习长期的依赖模式;其次,由于这些书籍未公开发布,因此在其他NLP数据集中出现的可能性较低,这进一步验证了GPT-1模型的泛化能力。
    1.3 网络结构的细节
    GPT-1采用了基于Transformer的架构,具体包含12层的Transformer解码器。以下是一些关键的网络结构细节:
  • 掩码自注意力机制:GPT-1使用了掩码自注意力头,确保模型在预测某个词时不会看到该词之后的任何信息,这有助于模型学习语言的自然顺序。
  • 字节对编码(BPE):GPT-1使用BPE进行文本编码,共有固定的字节对数量,这种编码方式能有效处理罕见的和未见过的词汇。
  • 词编码长度:词编码的长度设定为固定的长度,以适应不同长度的词汇。
  • 位置编码:GPT-1也学习位置编码,以捕捉序列中词的位置信息。
  • Transformer层数与头数:GPT-1包含12层的Transformer,每个Transformer块有多个自注意力头,头数设定为固定值。
  • 正则化机制:GPT-1使用了包括Attention、残差连接、Dropout等多种机制进行正则化,以防止过拟合。
  • 激活函数:GPT-1的激活函数为GELU(Gaussian Error Linear Unit),这是一种平滑的ReLU变种,有助于模型更好地学习非线性关系。
  • 训练参数:GPT-1的训练参数包括batch size、学习率、序列长度、训练轮数(epoch)等,这些参数的选择对模型的性能有重要影响。GPT-1的模型参数数量达到了数十亿级别。
    1.3.1 无监督训练
    在无监督训练阶段,GPT-1主要关注于最大化给定文本序列的似然值。这通过调整模型的参数,使模型能够预测序列中每个词的出现概率来实现。
    1.3.2 有监督微调
    在有监督微调阶段,GPT-1使用无监督训练得到的模型作为起点,针对特定NLP任务进行微调。这通常涉及调整模型的顶层结构,以适应不同任务的输出要求。通过微调,GPT-1能够在保持模型泛化能力的同时,提高在特定任务上的性能。
    1.4 GPT-1的性能
    GPT-1在多个NLP任务上展示了强大的性能。在有监督学习的12个基准任务中,GPT-1在9个任务上的表现超过了当时的最佳模型。在零次学习(zero-shot)任务中,GPT-1也显示出较好的稳定性,并且随着训练次数的增加,性能逐渐提升。这表明GPT-1具有较强的泛化能力,可以应用于与训练任务不直接相关的其他NLP任务中。
    然而,值得注意的是,GPT-1在未经微调的任务上虽然也有一定的效果,但其性能通常低于经过微调的有监督任务。这说明GPT-1虽然在语言建模方面取得了显著进展,但仍需要在特定任务上进行微调才能充分发挥其潜力。因此,GPT-1可以被视为一个强大的“领域专家”,但还不是一个通用的语言学家。

GPT-2:多任务学习与更大的模型
GPT-2旨在通过扩展模型容量和采用更大的数据集来训练一个泛化能力更强的词向量模型。与GPT-1相比,GPT-2在模型结构上并未进行大的创新,但它在网络参数和数据集规模上有了显著的增加。下面我们将对GPT-2进行详细的介绍。
2.1 GPT-2的核心思想
GPT-2的核心思想是使用无监督的预训练模型来执行有监督的任务。基于文本数据的时序性,GPT-2将语言建模任务转化为根据已知上文预测未知下文的条件概率问题。具体来说,一个输出序列可以表示为一系列条件概率的乘积,这实际上是一个序列生成任务。
GPT-2进一步扩展了这一思想,认为当模型的容量足够大且数据量足够丰富时,仅通过训练语言模型就可以覆盖大部分有监督学习任务。这是因为有监督学习任务可以看作是无监督语言模型的一个子集。例如,在训练了包含“Micheal Jordan is the best basketball player in the history”的语料后,模型不仅学会了语言模型,还隐含地学会了回答类似“who is the best basketball player in the history?”的问题。
2.2 GPT-2的数据集
GPT-2采用了名为WebText的数据集,该数据集来源于Reddit上的高赞文章。WebText共包含约800万篇文章,总数据量约为40GB。为了避免与测试集冲突,WebText移除了与Wikipedia相关的文章。
2.3 模型参数
GPT-2在多个方面对模型参数进行了调整和优化:

  • 字典大小:使用字节对编码(BPE)构建字典,字典的大小设定为特定值,以适应不同长度的词汇。
  • 滑动窗口大小:根据模型需要设定滑动窗口的大小,用于捕获文本中的上下文信息。
  • Batch Size:为了加速训练和提高模型性能,GPT-2增大了batch size的大小。
  • Layer Normalization:在Transformer块的输入部分添加了Layer Normalization,并在每个self-attention之后也添加了一个Layer Normalization,以增强模型的稳定性。
  • 残差层缩放:GPT-2对残差层的初始化值进行了缩放,缩放因子与残差层的个数相关,以改善深层模型的训练效果。
    GPT-2训练了四组不同层数和词向量长度的模型,这些模型在多个NLP任务上均取得了显著的性能提升。实验结果表明,随着模型规模的增大,GPT-2的泛化能力和性能也在不断提升。

参数量
层数
词向量长度
117M(GPT-1)
12
768
345M
24
1024
762M
36
1280
1542M
48
1600

GPT-3:海量参数与In-context Learning
GPT-3是目前最强大的语言模型之一,它凭借其巨大的参数量、庞大的训练数据集以及创新的训练方式,在各种NLP任务上均展现出了出色的性能。无需大量有标签的训练数据,GPT-3仅需零次或少数几次学习即可在下游任务中取得优异的表现。
3.1 In-context Learning
GPT-3的出色性能在很大程度上归功于其采用的In-context Learning方法。为了理解In-context Learning,我们先来探讨一下元学习(Meta-learning)的概念。元学习的核心思想是通过学习如何学习,来找到一种有效的学习策略或初始化参数,使得模型能够在新的、未见过的任务上快速适应并取得良好的性能。
In-context Learning是元学习思想的一种具体实现,它允许模型在给定一些示例的情况下,直接通过这些示例来学习并完成任务,而无需显式地更新模型参数。在GPT-3中,这种学习方式被应用于各种NLP任务中。具体来说,当给定一个新的任务时,我们可以向GPT-3提供少量的示例输入和对应的输出(即“上下文”),然后让GPT-3根据这些示例来推断并生成针对新输入的输出。通过这种方式,GPT-3能够在不依赖大量有标签训练数据的情况下,快速适应并完成各种NLP任务。
GPT-3的In-context Learning能力得益于其巨大的参数量和训练数据集。通过在大规模无监督文本数据上进行预训练,GPT-3已经学习到了丰富的语言知识和模式。这使得它能够在给定少量示例的情况下,快速理解并应用这些知识来完成新任务。同时,GPT-3的巨大参数量也使其具备了强大的表征能力,能够捕捉并表达复杂的语言现象和语义关系。
除了In-context Learning外,GPT-3还采用了多种先进的技术和策略来提高其性能和泛化能力。例如,GPT-3采用了Transformer架构的变体,并引入了稀疏自注意力机制来降低计算复杂度。此外,GPT-3还使用了混合精度训练、数据并行等技术来加速训练过程并减少资源消耗。这些技术和策略共同使得GPT-3成为了一个强大而高效的语言模型。

总结
GPT系列模型的发展历程展示了预训练语言模型的强大潜力和广阔前景。随着模型容量的不断增加和训练数据的不断扩大,我们可以期待未来会有更加强大和智能的NLP模型出现。
关于我们
本文由ChatMoney团队出品,ChatMoney专注于AI应用落地与变现,我们提供全套、持续更新的AI源码系统与可执行的变现方案,致力于帮助更多人利用AI来变现,欢迎进入ChatMoney获取更多AI变现方案!

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

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

相关文章

java中的测试片段和include控制器使用

1.作用 可复用,提高测试计划的可维护性和效率。 2.具体使用 2.1在jmeter中将写好的一组请求保存为测试片段,保存到一个jmx文件 2.2新建一个线程组,添加include控制器,选择刚刚保存的测试片段文件即可将刚刚的测试片段重用。

splay-前驱后继

在平衡树中,经常会让我们查一下一个值的前驱或后继是谁,写两个函数就非常麻烦好吧,所以这里咱们用一点小技巧来让他变 成一个函数(这里的前驱后继定义时包括与本身相等的值) 代码点击查看代码 int nxt(int k){if(!m[rt].size) return 0;int root=rt;while(k!=m[root].val&…

softlockup detector

1 简介 从内核稳定性问题的角度来看内核安全,是基础,也是必备技能。很多时候,一个内核稳定性问题,就是造成系统安全的罪魁祸首。 当出现异常死锁、Hang up、死机等问题时,watchdog的作用就很好的体现出来。Watchdog主要用于监测系统运行情况,一旦出现以上异常情况,就会重…

drduino串口通信中文乱码

​ 第一次使用 Arduino 板学习时,遇到了串口工具接收乱码的问题。 最初认为可能是数据位或停止位设置不正确。当前设置如下:波特率:9600 数据位:8 校验位:无 停止位:1在 Arduino 代码中使用 Serial.begin(9600) 进行初始化。 Serial.begin(9600):- 波特率:9600- 数据位…

合理利用符号,用负反馈解决正反馈系统

首先,系统框图:此处的Kyrg当成是1,aircraft的状态方程系数为:A=[-0.0558 -0.9968 0.0802 0.0415; 0.598 -0.115 -0.0318 0; -3.05 0.388 -0.4650 0; 0 0.0805 1 0]; B=[0.00729 -0.475 0.153 0]; C=[0 1 0 0]; D=0;使用函数ss2tf和tf求出系统的传递函数为:sysGs =-0.475 …

若依框架前端表格自适应

1. 背景 问题描述: 如图,若依前端表格高度都是固定写死的,因此会出现底部空一部分,现在希望自适应表格,使得表格一屏展示,且在隐藏查询条件等操作,导致屏幕大小变化时,表格可以同步自适应。问题现状:很多时候,前端开发都是尽可能本机调整到刚刚好的高度,但不同用户不…

CentOS 7 升级 OpenSSH 9.8p1

背景 OpenSSH 官方发布安全通告,披露CVE-2024-6387 OpenSSH Server远程代码执行漏洞。 环境操作系统 内核 openssh 版本 openssl 版本7.8.2003 3.10.0-1127 7.4p1 1.0.2k-fips安装编译软件和下载 OpenSSH9.8p1 软件包 mkdir -p /data/software cd /data/software/yum install…

ComfyUI基础篇:为什么要学 ComfyUI?

前言:在AI生成图像领域,有许多产品,例如 Midjourney 和 Stability AI 等。为什么要学习 ComfyUI 呢?我斗胆带大家一起分析一下。目录1.Midjourney VS Stable Diffusion2.SD Web UI VS ComfyUI3.总结Midjourney VS Stable Diffusion在回答这个问题之前,我觉得有必要介绍下目…

功能齐全!一套基于AGPL3开源协议开源的智慧物业社区系统!!

ejyy —— 一套开源的智慧物业解决方案。实现了微信公众号、小程序、PC、H5、智能硬件多端打通,旨在提升物业公司效率、规范物业服务流程、提升物业服务满意度、加强小区智慧化建设、便捷业主服务。大家好,我是 Java陈序员。 今天,给大家介绍一套开源的物业社区管理系统,涵…

关于搭建可商用AI平台的小感想

AI时代已经到来,建立自己的AI平台不仅能提升技能,还能带来更多职业和商业机会。我们的开源AI平台解决了技术难题,并提供全套商业化解决方案,让你专注于业务拓展。想学习从0-1搭建AI平台的朋友,欢迎加入我们的开发者交流群,一起交流学习。前言 AI时代已经到来,从智能客服…

QChartView显示实时更新的温度曲线图(二)

目录参考图说明1. 项目结构2. TempChartView.pro3. main.cpp4. TemperatureSeries.qml5. main.qml详细说明 参考图说明Qt Charts 提供了一系列使用图表功能的简单方法。它使用Qt Graphics View Framework 图形视图框架,因此可以很容易集成到用户界面。可以使用Qt Charts作为QW…

程序人生日记20240704|工作零食:米饭+十分米莲藕汁+饼干(减脂记录)

程序员的工作饮食减脂记录打卡 餐别:早餐 零食详情:(同事给的不算统计内) 零食名称:十分米莲藕汁配饼干 其他选择:米饭+海盐饼干。 大致热量估算: 莲藕汁约50卡,低脂全麦饼干2片约80卡,米饭约500卡,总计约630卡。 初始数据: 体重:90公斤 目标:80公斤 完成情况:完…

开发一个题库系统App和小程序的心得

开发一个题库系统App和小程序的心得序言 对于一名开发者来说,独自开发一款小程序与App,也许总会有一些疑问:1. 需要掌握哪些技术? 答:java、vue、及常规Linux命令2. 需要多少成本? 答:服务器购买,云服务器新人50多三年; 域名购买,10块的域名够用,后续每年30左右的续…

SFE人才需要具备哪些能力

SFE(销售队伍效力)人才在企业中扮演着至关重要的角色,他们需要具备一系列的能力来确保销售队伍的高效运作和业绩提升。关于SFE的角色和能力,可以从业务理解、数据洞察、向上管理以及效率提升等几个方面来通俗地解释。01 懂业务 SFE人才首先需要深入了解公司的业务,像医药企…

doris 数据库与mysql的不同之处

1.doris与mysqldoris可以使用mysql驱动进行连接,也支持mysql的部分语法。 2.具体分析清空表数据 在mysql中,清空表数据有两种方式: 一种是delete from table_name,一种是truncate table table_name。 而在doris中,清空表数据只能使用truncate table table_name。delete fr…

Kylin V10SP2安装openGauss5.0.2企业版

一、本地系统环境 [root@localhost ~]# cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Sword)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)" ANSI_COLO…

VMware ESXi 8.0U3 macOS Unlocker OEM BIOS Huawei (华为) FusionServer 定制版

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Huawei (华为) FusionServer 定制版VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Huawei (华为) FusionServer 定制版 ESXi 8.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitac…

常见数据摆渡系统全面比较,哪一款才是众望所归?

数据摆渡是一种利用物理隔离或特定设备,在不相连的计算机或系统之间传输数据的方法。其原理主要基于中间层的数据处理和转换,确保数据在不同系统之间能够进行有效的交换和共享。对于企业而言,数据摆渡场景主要发生在企业隔离网间。基于网络安全管理需要,企业采用防火墙等网…

PHP 真的不行了?透过 PHP 的前世今生看真相

时代造就了马云,同样也成就了 PHP。大家好,我是码农先森。 1994年我出生在湖南的农村,就在同年加拿大的拉斯姆斯勒多夫创造了 PHP,这时的 PHP 还只是用 Perl 编写的 CGI 脚本。或许是时间的巧合 PHP 变成了我后半生谋生的手段,当时拉斯姆斯勒多夫写这些脚本的目的,只是为…

智慧校园视频监控系统

智慧校园视频监控系统助力学校传统安防监控智能升级,借助智慧校园视频监控系统可以避免传统视频监控“被动”监控,有效监控价值低,不能及时预警预防的能力。智慧校园视频监控具备大规模智能检测、多场景智能分析、机器自主学习、实时告警、实时分析、全天运行,实现校园管理…