GPT 1-3 简单介绍

news/2024/12/25 2:36:12/文章来源:https://www.cnblogs.com/whiteBear/p/18493950

GPT-1

简介

2018年6月,OpenAI公司发表了论文"Improving Language Understanding by Generative Pretraining"(用生成式预训练提高模型的语言理解能力), 推出了具有 1.17亿个参数的GPT-1(Generative Pre-training,生成式预训练)模型。

GPT-1 采用 传统的语言模型方法进行预训练,即使用单词的上下文来预测单词,使得GPT更擅长自然语言生成任务(NLG), 而BERT更擅长处理自然语言理解任务(NLU)

模型架构

下图中间的就是GPT-1:
image
从上图可知,GPT采用的是 单向Transformer模型。例如给定一个句子\([u_1,u_2, ..., u_n]\),GPT-1在预测单词\(u_i\)的时候,只会利用\([u_1, u_2, ..., u_{n-1}]\) 的信息,而BERT会同时利用上下文的信息\([u_1, u_2, ..., u_{(i-1)}, u_{(i+1)},.., u_n]\)

image

训练过程

GPT-1的训练包括两阶段过程:1. 无监督的预训练语言模型;2.有监督的下游任务fine-tunning

无监督的预训练语言模型

给定句子\(U=[u_1, u_2, ..., u_n]\),GPT训练语言模型时的目标是 最大化下面的似然函数:

\[L_1(U)=\sum_ilogP(u_i|u_{i-k},...,u_{i-1};\theta) \]

上述公式含义即:预测每个词\(u_i\) 的概率,这个概率是基于它前面\(u_{i-k}\)\(u_{i-1}\),以及模型\(\theta\)

这里的k表示上文的窗口大小,理论上,k取得越大,模型所能获取的上文信息越充足,模型的能力越强。

GPT-1是一个 单向语言模型,模型对输入U进行特征嵌入得到transformer第一层的输出\(h_0\),再经过多层transformer 特征编码,使用最后一层的输出即可得到当前预测的概率分布,计算过程如下:

\[h_0 = UW_e + W_p \]

\(W_p\)代表单词的位置编码,形状为\([max\_seq\_len, embedding\_dim]\),\(W_e\)的形状为\([vocab\_size, embedding\_dim]\)

得到输入张量\(h_0\)后,要将\(h_0\)传入GPT的 Decoder Block中,依次得到\(h_t\):

\[h_t = transformer\_block(h_{l-1}) l \in[l,t] \]

最后通过得到的\(h_t\)来预测下一个单词:

\[P(u)=softmax(h_tW_e^T) \]

有监督的下游任务fine-tunning

GPT预训练后,会针对具体的下游任务队模型进行微调
微调采用的是 有监督学习,训练样本包括单词序列\([x_1, x_2, ..., x_n]\)和label y
GPT微调的目标任务:根据单词序列\([x_1, x_2, ..., x_n]\)预测标签y

\[P(y|x^1, ..., x^m) = softmax(h_l^mW_y) \]

其中,\(W_y\)表示预测输出的矩阵参数,微调任务的目标是最大化下面的函数:

\[L_2 = \sum_{(x,y)}log{P(y|x^1, ..., x^m)} \]

综合两个阶段的目标任务函数,可知GPT的最终优化函数为:

\[L_3 = L_2 + \lambda L_1 \]

整体训练过程架构图

根据下游任务适配的过程分两步:

  1. 根据任务定义不同输入
  2. 对不同任务增加不同的分类层
    具体定义可以参见下图:
    image

GTP数据集

GPT使用了BooksCorpus数据集,文本大小约5GB,包含7400W+的句子。这个数据集由7000本独立的、不同风格类型的书籍组成,选择该部分数据集的原因:

    1. 书籍文本包含大量高质量长句,保证模型学习长距离信息依赖
    1. 书籍未开源公布,所以很难在下游数据集上见到,更能体验模型的泛化能力

GPT模型的特点

模型的一些关键参数为:
image

优点

  • GPT在9个任务上的表现sota
  • 更易于并行化

缺点

  • GPT-1语言模型是单向的
  • 针对不同的任务,需要不同数据集进行模型微调,相对比较麻烦

PS:

  1. GPT-1的模型架构?
    答:Transformer的Decoder模块(去掉中间第二个子层)
  2. GPT-1预训练任务?
    答:1.无监督预训练;2.有监督任务微调
  3. GPT-1模型基本参数?
    答: 12层,12个head,768维,参数量1.17亿

GPT-2

简介

2019年2月,OpenAI推出了GPT-2,同时,发表了该模型的论文"Language Model are Unsupervised Multitask Leaners"(语言模型是无监督的多任务学习者)

相比于GPT-1,GPT-2突出的思想为多任务学习,其目标旨在仅采用无监督预训练得到一个泛化能力更强的语言模型,直接应用到下游任务中。 GPT-2并没有对GPT-1的网络结构进行过多的创新与设计,而是使用了更多的网络参数与更大的数据集:最大模型共计48层,参数量达15亿
image

GPT-2模型架构

在模型方面,相对与GPT-1,GPT-2做了微小的改动:

  • LN层被放置在Self-Attention层和Feed Forward层前,而不是像原来那样后置(目的:随着模型层数不断增加,梯度消失和梯度爆炸的风险越来越大,这些调整能够减少预训练过程中各层之间的方差变化,使梯度更加稳定)

  • 在最后一层Transformer Block后增加了LN层

  • 输入序列的最大长度从512扩充到1024
    image

GPT-2 训练核心思想

GPT-2模型的学习目标:使用无监督的预训练模型做有监督的任务

GPT-2模型目的:模型从大规模数据中学到的能力能够直接在多个任务之间进行迁移,而不需要额外提供特定任务的数据进行Fine-Tuning

因此,GPT-2提出了新的观点:zero-shot,通过zero-shot,在迁移到其他任务上的时候不需要额外的标注数据,也不需要额外的模型训练

GPT-2的训练只包括无监督的预训练过程,和GPT-1第一阶段训练一样,也属于一个单项语言模型:

  • 语言模型其实也是在给序列的条件概率建模,即\(p(s_n|s_1, s_2, ..., s_{n-1})\)

在zero-shot的设定下,不同任务的输入序列应该与训练时见到的文本长得一样,也就是以自然语言的形式去作为输入,例如,下面两个任务的输入序列是这样改造的:
机器翻译任务: translate to french,{english text}, {french text}
阅读理解任务: answer the question, {document}, {question}, {answer}

为什么上述输入序列的改造是有效的?或者说为什么zero-shot是有效的?这里引用原文的一句话:

Our approach motivates building as large and diverse a dataset as possible in order to collect natural language demonstrations of tasks in as varied of domains and contexts as possible.
大致意思:从一个尽可能大且多样化的数据集中一定能收集到不同领域不同任务相关的自然语言描述示例。

综上,GPT-2的核心思想:当模型的容量非常大且数据量足够丰富时,仅仅靠语言模型的学习便可以完成其他有监督学习的任务,不需要再下游任务微调。

GPT-2的数据集

  • 为了保证zero-shot的效果,必须要足够大且覆盖面广
  • GPT-2专门爬取了大量的网络文本数据,GPT-2的文章取自Reddit上高赞的文章,命名为WebText
  • 数据集共有约800万篇文章,累积体积约40G
  • 为了避免和测试集的冲突,WebText移除了涉及Wikipedia的文章

GPT-2模型的特点

与GPT-1的区别:

    1. 主推zero-shot,而GPT-1为pre-train + fine-tuning
    1. 训练数据规模更大,GPT-2为800W 文档 40G, GPT-1为5GB
    1. 模型大小,GPT-2最大15亿参数,GPT-1 为1 亿参数
  • 4。 模型架构调整,层归一化
    1. 训练参数,batch_size 从 64 增加到 512,上文窗口大小从512 增加到 1024

优点:

  • 文本生成效果好,仅通过zero-shot学习,就有7个任务超过之前sota的方法
  • 海量数据和大量参数训练出来的词向量有迁移到其他类别任务中而不需要额外训练

缺点:

  • 无监督学习能力有待提升
  • 有些任务上的表现不如随机

GPT-2表明随着模型容量和数据量的增大,其潜能还有进一步开发的空间。也正是基于这个思想,诞生了GPT-3

PS:

  1. GPT-2模型架构?
    答:相较于GPT-1做了较小的改动:1) pre_LayerNorm;2) 最后一层加入LN层;3) 序列长度扩大到1024

  2. GPT-2预训练任务?
    答:无监督预训练

  3. GPT-2提出的新思想?
    答:zero-shot,零样本学习,达到开箱即用的效果

GPT-3

简介

2020年5月,OpenAI发布了GPT-3,同时发表论文"Language Models are Few-Shot Learner"《小样本学习者的语言模型》
GPT-3提出的核心观点:Few-Shot思想
相比GPT-2的Zero-Shot,需要使用少量样本在下游任务中去做微调,从而让模型给出更准确的答案。

GPT-3模型架构

GPT-3不是一个单一的模型,而是一个模型系列。系列中的每个模型都有不同数量的可训练参数。下表显示了每个模型、体系结构及其对应的参数:
image

在模型结构上,GPT-3延续使用GPT模型架构,但引入了Sparse Transformer中的Sparse Attention模块(稀疏注意力)
Sparse Attention与传统的Self-Attention(称为dense Attention)的区别在于:

  • dense Attention:每个token之间两两计算Attention,复杂度\(O(n^2)\)
  • sparse attention: 每个token 只与其他token的一个子集计算Attention,复杂度\(O(n*logn)\)

具体来说,Sparse Attention除了相对距离不超过k亦即相对距离不超过k,2k,3k, ..., 的token,其他所有的token的注意力都设为0,如下图所示:
image

使用sparse attention的好处主要有:

  • 减少注意力层的计算复杂度,节约显存和耗时,从而能够处理更长的输入序列
  • 具有 "局部紧密相关和远程稀疏相关"的特性,对于距离较近的上下文关注更多,对于距离较远的上下文关注较少

最大版本GPT-3 175B或"GPT-3" 模型具有175个B参数、96层的多头Transformer、Head size为96、词向量维度为12288、文本长度大小为2048

GPT-3 训练核心思想

GPT-3 模型训练的思想与GPT-2的方法相似,去除了fine-tune过程,只包括预训练过程,不同只在于采用了参数更多的模型、更丰富的数据集和更长的训练的过程

但 GPT-3 模型在进行下游任务评估和与预测时采用了三种方法:Few-shot、One-shot、Zero-shot

其中 Few-Shot、One-Shot 也被称之为情境学习(in-context learning,也可称为提示学习)。
情景学习理解:在被给定的几个任务示例或一个任务说明的情况下,模型应该能通过简单预测以补全任务中其他的实例,即情境学习要求预训练模型要对任务本身进行理解

In-context learning核心思想在于 通过少量的数据寻找一个合适的初始化范围,是的模型能够在有限的数据集上快速你和,并获得不错的效果。

以"英语到法语的翻译任务"为例,对比传统的微调策略和GPT-3三种情境学习方式:
image
image

虽然in-context learning与fine-tuning一样都需要一些有监督标注数据,但两者的区别在于:

  • fine-tuning基于标注数据对模型参数进行更新,而In-context learning使用标注数据时不做任何的梯度回传,模型参数不更新
  • In-context learning 依赖的数据量(10 ~ 100)远远小于fine-tning一般的数据量

GPT-3通过大量下游任务实验验证:few-shot效果最佳,one-shot效果次之,zero-shot效果最差

GPT-3数据集

一般来说,模型的参数越多,训练模型所需要的数据就越多,GPT-3共训练了5个不同的语料大约45TB的文本数据。
image

不同数据的介绍:

  • Common Crawl语料库来自网络爬虫中的数据,如网页数据等
  • WebText2 是来自具有3+ upvotes的帖子的所有出站Reddit链接的网页文本
  • Books1 和Books2是两个基于互联网的图书语料库
  • 英文维基百科页面 也是训练语料库的一部分

GPT-3模型的特点

与GPT-2的区别:

  • 效果上,超出了GPT-2非常多,能生成人类难以区分的新闻文章
  • 主推few-shot,相比于GPT-2的zero-shot,具有很强的创新性
  • 模型结构略微变化,具有sparse attention模块
  • 海量训练语料,45TB(清洗后570GB),相比于GPT-2的40GB
  • 海量模型参数,最大模型为1750亿,GPT-2最大为15亿参数

GPT-3 模型的特点

优点:

  • 整体上,GPT-3在zero-shot或one-shot设置下能取得尚可的成绩,在few-shot设置下有可能超过基于fine-tunel的SOTA模型
  • 去除了fine-tuning任务
    缺点:
  • 由于40TB海量数据的存在,很难保证GPT-3生成的文章不包含一些非常敏感的内容
  • 对于部分任务比如:“填空类型”等,效果具有局限性
  • 当生成文本长度较长时,GPT-3可能重复生成一段话,前后矛盾,逻辑衔接不好等
  • 陈本太大

PS:

  1. GPT-3模型架构?
    答:和GPT-2基本一致,提出了sparse attention

  2. GPT-3预训练任务?
    答:无监督预训练

  3. GPT-3提出的新思想?
    答:ICL:Few-shot、One-shot、zero-shot

ChatGPT

介绍

ChatGPT是一种基于GPT-3的聊天机器人模型,它旨在使用GPT-3的语言生成能力来与用户进行自然语言对话。例如,用户可以向ChatGPT发送信息,然后ChatGPT会根据信息生成一条回复

GPT-3是一个更大的自然语言处理模型,而ChatGPT则是使用GPT-3来构建的聊天机器人,他们之间的关系是ChatGPT依赖于Gpt-3的语言生成能力来进行对话

注:目前基于ChatGPT的论文并没有发布,下面是基于OpenAI官网的介绍对其原理进行解析:

ChatGPT原理

原始的 GPT-3 就是能力非一致模型, 类似GPT-3 的大型语言模型都是基于来自互联网的大量文本数据进行训练, 能够生成类似人类的文本, 但它们可能并不总是产生符合人类期望的输出.

ChatGPT 为了解决模型的不一致问题, 使用了人类反馈来指导学习过程,对其进行了进一步训练.所使用的具体技术就是强化学习(RLHF)

强化学习

理解强化学习基本要素,这里以flappy bird为代表,讲解强化学习的基本要素:
image

如何让AI实现自动打游戏?
image

ChatGPT强化学习步骤

从人类反馈中进行强化学习,该方法总体包括三个步骤:

    1. 监督学习(SFT 模型), 预训练的语言模型在少量已标注的数据上进行调优, 以学习从给定的 prompt 列表生成输出的有监督的策略
    1. 训练奖励模型(reward): 标注者们对相对大量的 SFT 模型输出进行收集和排序, 这就创建了一个由比较数据组成的新数据集. 在此数据集上训练新模型, 被称为训练奖励模型(Reward Model, RM)
    1. 强化学习(PPO算法): 对RM 模型用于进一步调优和改进 SFT 模型, PPO 输出结果的是策略模式
      步骤1,只进行一次,步骤二和步骤三可以持续重复执行

监督学习

工作原理:
image

训练奖励模型

奖励模型的目的是为 SFT 模型输出进行打分, 代表这些输出对于人类来说可取程度有多大. 即模仿人类偏好的系统.
image

强化学习

强化学习被应用于通过优化 RM 模型来调优 SFT 模型. 所使用的特定算法称为近端策略优化(PPO).
image

ChatGPT特点

特点

  • 回答理性又全面,ChatGPT更能做到多角度全方位回答
  • 降低学习成本,可以快速获取问题答案

缺点

  • 由于ChatGPT服务不稳定
  • 对于部分任务比如:查询某语言系统关键字等,会给出没有意义的答案

PS:

  1. ChatGPT模型原理?
    答:有监督的微调 + 奖励模型 + 强化学习
  2. 强化学习的关键信息?
    答:1. 一种机器学习方法;2. 关注智能体和环境的交互;3. 目标追求最大化

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

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

相关文章

基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现八

三、系统部分功能描述公告信息业务逻辑层Service、快递取出记录信息业务逻辑层Service、预约物品取出信息业务逻辑层Service、短信发送信息业务逻辑层Service、关于我们控制器Controller、后台用户信息控制器Controller、 快递员信息控制器Controller、物品类型控制器Controlle…

转存——Quartus II FPGA程序仿真运行时出现错误“error occurred during modelsim simulation”的解决方法

起因 使用Quartus II软件进行FPGA程序仿真,运行时出现错误“error occurred during modelsim simulation”,上网查询解决方法,找了很久都没找到,最后在一个CSDN博客的评论里找到解决方法。 现将解决方法转存如下。 错误示例解决步骤 1.依次点击simulation,option2.依次点击…

Android Studio启动安卓模拟器失败,出现The emulator process for AVD Medium_Phone_API_35 has terminated.

前言 软件版本已安装的SDK Tools包。Android Studio安装设置Proxy代理问题。可在此处设置代理,可在本窗口的左下角的Check Connection处进行检测链接的有效性。 也可以查看以下地址,设置代理的地址:阿里云Android仓库 清华大学开源软件镜像站模拟器问题如果你在这里运行安卓…

MyBatis-Spring中MyBatis概要流程

一、初始化SqlSessionFactory 核心流程 核心使用到了SqlSessionFactoryBean的afterPropertiesSet、getObject方法 afterPropertiesSet:用于初始化并封装数据 getObject:用于注入DefaultSqlSessionFactory对象到容器中 详情逻辑 一、在将SqlSessionFactoryBean放在IOC容器过程…

DP杂题专练

前言 DP 方面太菜了,要多练习,多思考,多做好题。 摘花生Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上…

基于Axure,对抖音直播,淘宝直播和b站直播的对比分析

设计思路 一、竞品分析 1.竞品选择 淘宝直播,抖音直播,b站直播 2.产品定位对比 2.1搜索指数:从2024年年初到2024年10月底,不难看出抖音直播相较于淘宝和b站直播来说,搜索指数更加的高昂,所带来的流量数据也更多。 抖音直播(绿色线)整体搜索量最高,日均值为2,694,且在…

基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现七

二、主要技术: 2.1 SpringBoot技术SpringBoot是基于Spring框架的一个开发框架,旨在简化Spring应程序的搭建和开发过程以下是关于SpringBoot技术的一些主要特点和优势: SpringBoot提供了许多自动配置的功能,可以根据的依赖和需要自动配置应程序所需的环境,大大少了开发人员…

学期2024-2025-1 学号20241306 《计算机基础与程序设计》第6周学习总结

学期(如2024-2025-1) 学号(如:20241300) 《计算机基础与程序设计》第X周学习总结 作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP))这个作业要求在哪里 [2024-2025-1计算机基础与程序设计第6周作…

九州信泰杯 第十一届山东省网络安全技能大赛

九州信泰杯 第十一届山东省网络安全技能大赛MISC1.签到这是真签到,下载后即可得到flag2.ezpic打开后,这是一个给了一张图片然后拖到010里面,在末尾找到了一半flag另一半打开打stegsloves通过改变背景颜色然后在里面找到了一个二维码扫码后得到flag的另一半最后拼接flag{cf74…

2024数模b题-问题一思路构建

2024数模b题-问题一思路构建样本量计算根据置信空间的计算公式,逆累积分布函数(ICDF):逆累积分布函数(ICDF)是从累积分布函数的值反推出对应的Z分数。在MATLAB中,norminv 函数就是计算标准正态分布的逆累积分布函数的值我们通过这个公式来得到我们可以得到对于95%置信水平…

数据结构与算法 - 串

KMP字符串匹配算法next数组的计算方法: 看该字符前的字符串的前缀和后缀有多少相同(可以交叉重叠),就让相同的数量值加一即为当前next值。 也可以这样计算:看前一个字符的next值处是否与前一个字符相同,若相同,则当前next值为上一next值加一;若不相同,则查看上一next值…

【产品经理简历模板】绿色清新产品经理求职简历模板下载

【产品经理简历模板】绿色清新产品经理求职简历模板下载,Word【可编辑】,个人简历,免费简历​产品经理求职简历模板下载 绿色清新产品经理求职简历免费下载,可编辑WORD格式简历模板免费下载直接修改,高效-便捷-实用,满足求职者的简历制作需求,简历编辑制作不求人,有效…