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

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

arduino ide安装详细步骤

​ 大家好,我是程序员小羊! 前言: Arduino IDE 是一个专为编程 Arduino 微控制器设计的集成开发环境,使用起来非常方便。下面将介绍如何在不同平台上安装 Arduino IDE 的详细步骤,包括 Windows、Mac 和 Linux 系统。 一、在 Windows 上安装 Arduino IDE 1. 下载 Arduino IDE 打开 Arduino 官网