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

相关文章

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

使用SpringBoot创建一个RESTful API的详细步骤

《使用SpringBoot创建一个RESTfulAPI的详细步骤》使用Java的SpringBoot创建RESTfulAPI可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤... 目录一、创建 Spring Boot 项目二、创建控制器类(Controller Class)三、运行

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

Redis与缓存解读

《Redis与缓存解读》文章介绍了Redis作为缓存层的优势和缺点,并分析了六种缓存更新策略,包括超时剔除、先删缓存再更新数据库、旁路缓存、先更新数据库再删缓存、先更新数据库再更新缓存、读写穿透和异步... 目录缓存缓存优缺点缓存更新策略超时剔除先删缓存再更新数据库旁路缓存(先更新数据库,再删缓存)先更新数

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public