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

相关文章

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot中配置文件的加载顺序解读

《SpringBoot中配置文件的加载顺序解读》:本文主要介绍SpringBoot中配置文件的加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot配置文件的加载顺序1、命令⾏参数2、Java系统属性3、操作系统环境变量5、项目【外部】的ap

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

python3 gunicorn配置文件的用法解读

《python3gunicorn配置文件的用法解读》:本文主要介绍python3gunicorn配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python3 gunicorn配置文件配置文件服务启动、重启、关闭启动重启关闭总结python3 gun