GPT系列之:GPT-1,GPT-2,GPT-3详细解读

2024-09-09 05:12
文章标签 系列 解读 详细 gpt

本文主要是介绍GPT系列之:GPT-1,GPT-2,GPT-3详细解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、GPT1

论文:Improving Language Understanding by Generative Pre-Training
链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf

启发点:生成loss和微调loss同时作用,让下游任务来适应预训练模型

(一) Introduction

  • Abstract:generative pre-training of a language model on a diverse corpus of unlabeled text, followed by discriminative fine-tuning on each specific task. 在大量无标注数据集上做生成式预训练,在下游特定任务做微调。
  • Motivation:The ability to learn effectively from raw text is crucial to alleviating the dependence on supervised learning in natural language processing 有效从原始文本学习的能力有助于减轻nlp对有监督学习的依赖
  • Introduction: Explore a semi-supervised approach using a combination of unsupervised pre-training and supervised fine-tuning, learn a universal representation that transfers with little adaptation. 探索一种新的半监督的方式,融合了无监督预训练和有监督微调,学到通用表示以在迁移时只需要小的改变。
(二) Methods

Framework:two-stage training procedure - 大量文本无监督学习后进行微调模式 generative pre-training and discriminative fine-tuning

  1. First Stage
    语言模型建模,k为上下文窗口大小
    在这里插入图片描述
    仅包含decoder模块,多层Transformer&多头自注意力机制
    在这里插入图片描述

  2. Second Stage
    有监督微调阶段主要预测Label y
    在这里插入图片描述
    为了提高有监督学习的泛化性以及加速收敛,加入语言模型的loss,所以在微调阶段仅需引入一个参数矩阵W_y
    在这里插入图片描述
    在这里插入图片描述
    对于特定任务需要进行输入转换: 文本分类任务可以直接输入,但是文本蕴含和问答任务需要一些特定转换,如图所示。
    (1)Textual entailment:concat premise and hypothesis with delimiter $
    (2)Similarity:两个句子没有顺序关系,输入包含所有句子序的组合,two emb added element-wise,最后输入线性层
    (3)Question Answering and Commonsense Reasoning:normalized via a softmax produce an output distribution over possible answers

(三) Experiments
  1. 预训练
    a. 数据:BooksCorpus 超过 7000 unpublished books,长连续文本使生成模型更好地学习长范围信息 + 1B Word Benchmark shuffled at a sentence level
    b. 模型细节:12-layer decoder-only transformer(768 dimensional states and 12 attention heads),3072 dimensional inner states
    c. 训练细节:100 epoch,bs=64,max-seq-len=512,bytepair encoding (BPE) vocabulary with 40,000 merges

  2. 微调
    a. 训练细节:3 epoch,bs=32,lr small than pretrain,语言模型损失权重0.5
    b. 实验结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    与 LSTM 相比,Transformer 的结构化注意力记忆有助于迁移,语言建模能力更强,下图右边在zero shot方差较大
    两个方向:
    • 模型在ZERO-SHOT的设定下,模型的表现与堆叠的解码器层数有直接的正相关性
    • 研究大规模语料下的生成式预训练模型为什么对下游任务有帮助
    在这里插入图片描述

  3. 消融实验:w LM在更大的数据集受益与辅助目标
    在这里插入图片描述

二、GPT2

论文:Language Models are Unsupervised Multitask Learners
链接:https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf

启发点:能不能有一种模型完全不需要对下游任务进行适配就可以表现优异

(一) Introduction
  • Abstract:The capacity of the language model is essential to the success of zero-shot task transfer and increasing it improves performance in a log-linear fashion across tasks.
  • Motivation:Machine learning systems now excel (in expectation) at tasks they are trained for by using a combination of large datasets, high-capacity models, and supervised learning,these systems are brittle and sensitive to slight changes in the data distribution and task specification。narrow experts rather than competent generalists。move towards more general systems which can perform many tasks – eventually without the need to manually create and label a training dataset for each one。现有模型受益于大量的数据集,大模型参数以及监督学习的组合训练,但对数据分布和特定任务的微小变化非常敏感,成为狭隘的专家而非通用。所以需要转向更通用的系统,不需要为每个任务手动创建标记数据集。简而言之,单领域单任务的训练使模型缺少泛化性。
  • Introduction: 结合多任务学习提升性能的泛化性与预训练微调下游任务两条线,引入zero-shot。Language models can perform down-stream tasks in a zero-shot setting – without any parameter or architecture modification.
(二) Methods

Framework:由建模p(output|input)转为p(output|input, task),通用系统应不仅以输入为条件,对要执行的任务进行条件处理。
For example: a translation training example can be written as the sequence (translate to french, english text, french text). a reading comprehension training example can be written as (answer the question, document, question, answer).
优势:without the need for explicit supervision of which symbols are the outputs to be predicted
观点:Our speculation is that a language model with sufficient capacity will begin to learn to infer and perform the tasks demonstrated in natural language sequences in order to better predict them, regardless of their method of procurement. 不论什么任务,只要模型足够大,就可以很好地预测语言序列。

  1. 数据集构建
    a. 出发点:构建尽可能大和多样的各种领域和上下文数据集
    b. 问题:数据爬取虽然数量级大,但是质量参差不齐,有很多难以理解的内容。下采样至原有数据集的方法虽然可以提高特定任务性能,但是应避免对任务做出假设
    c. 方案:a new web scrape which emphasizes document quality(curated/filtered by humans)但由于人工过滤昂贵,又爬取了Reddit数据,容易判断网页是否有趣等。
    d. 45 million links,Dragnet和Newspaper提取内容,文章中用到的数据8 million documents for a total of 40 GB of text(去重去老),去掉了Wikipedia
  2. 输入表征
    a. Byte Pair Encoding (BPE) between character and word level effectively interpolates between word level inputs for frequent symbol sequences and character level inputs for infrequent symbol sequences.
  3. 模型
    a. 模型基本和GPT-1保持一致,只有少量修改,Layer normalization移至每个sub-block之前,在最后一个自注意力模块之后新增一个layer normalization。
    b. 词表大小50257,上下文大小由512增长至1024,bs=512
    c. 参数量如下:最小的参数量=GPT-1,参数量1.5B的被称为GPT-2
    在这里插入图片描述
(三)Experiments

PPL:给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好,其计算公式如下,P(w1…)为句子概率,句子概率越大越好

在这里插入图片描述
在这里插入图片描述

完形填空任务准确率
在这里插入图片描述

The Winograd Schema challenge:通过测量系统解决文本中歧义的能力来衡量系统执行常识推理的能力
在这里插入图片描述

摘要:专注于文章中的最新内容或混淆特定细节,效果不好,TL;DR是指加了标记,这证明了在具有自然语言的语言模型中调用特定于任务的行为的能力。
在这里插入图片描述

翻译&问答也做了实验
Generalization vs Memorization:
在这里插入图片描述

三、GPT3

论文:Language Models are Few-Shot Learners
链接:https://arxiv.org/pdf/2005.14165.pdf

启发点:扩大模型规模至175B,让模型像人类一样只需要简单的指令和少量的示例就可以完成新的语言任务。few-shot,首次提出"in-context learning"

(一) Introduction

背景:(1)每个新任务都需要大量标记数据集,限制了语言模型的适用性。(2)并且模型被设计为在预训练期间吸收信息很大,然后在非常狭窄的任务分布上进行微调,导致模型泛化性能不好,虽然预训练-微调范式能够在某一任务达到非常好的效果,实际性能很差。(3)很多任务只需要简短的自然语言指令,不需要大型监督数据集,而且语言模型允许在很多任务之间切换,具有通用性。
方案:

  • meta-learning(指模型在训练时拥有广泛的技能和模式识别能力并在推理时快速适应和识别所需要的任务) & in context-learning,并使用"zero-shot", “one-shot”, or "few-shot"表示使用了多少示例。(指出GPT-2效果比微调还差很远)。
    在这里插入图片描述

  • 作者发现很多任务使用8B、11B乃至17B的任务带来了性能提升,这表明对数损失与许多下游任务的提升正相关。

  • 上下文学习又能解决多任务和多技能的问题,结合二者提出了GPT-3 to measuring its in-context learning abilities。

  • 文中给出性能曲线,模型越大,上下文越多性能越好,越大的模型越适合上下文学习。
    在这里插入图片描述
    在这里插入图片描述

此外,作者对数据污染进行了系统研究(测试集包含在训练集合中),这对模型效果进行夸大。

(二) Method

Model, data, and training 和GPT-2相似,只是对模型和数据大小与多样性进行了缩放。系统的探索了不同的配置下上下文学习的效果。
在这里插入图片描述

  1. 8个不同大小的模型,模型结构与GPT-2的区别是:alternating dense and locally banded sparse attention patterns。上下文窗口大小均为2048.
    在这里插入图片描述

  2. 训练数据集:Common Crawl dataset,万亿数据,通过3步提高数据集质量:(1)根据与一系列高质量参考语料库的相似性下载和过滤了 CommonCrawl 版本,(2)在文档级别、内部和跨数据集执行模糊重复数据删除,以防止冗余并保持我们保留验证集的完整性作为过度拟合的准确度量(3)将已知的高质量参考语料库添加到训练混合中以增强 CommonCrawl 并提高其多样性。训练期间数据集不会按其大小成比例采样,更高质量的数据集更频繁地采样。
    在这里插入图片描述

  3. 评估:示例数通常为10-100,较大的 K 值通常但不总是更好。beam=4,长度惩罚=0.6

(三) Experiments
  1. 训练曲线对于上面给出的8个模型,后续实验任务包括:完形填空、问答、翻译、Winograd Schema、常识推理、阅读理解等,还探索了为上下文学习能力而设计的额外任务
    在这里插入图片描述

  2. 语言建模能力(困惑度)
    在这里插入图片描述
    LAMBADA衡量输入很长的段落预测最后一个词的能力
    在这里插入图片描述

  3. Closed Book Question Answering,反映了模型容量直接转化为模型参数中吸收的更多“知识”
    在这里插入图片描述

  4. 翻译:翻译成英文的效果比从英文翻译的更好
    在这里插入图片描述
    在这里插入图片描述
    后续还有很多实验可以自行翻看原文

Conlusion:尽管有许多局限性和劣势,结果表明,非常大的语言模型可能是开发适应性通用语言系统的重要因素。

这篇关于GPT系列之:GPT-1,GPT-2,GPT-3详细解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150257

相关文章

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S