从GPT到chatGPT(二):GPT2

news2024/11/17 19:49:36

GPT2

文章目录

  • GPT2
    • 前言
    • 正文
      • 摘要
      • 方法
        • 概述
        • 训练数据
        • 输入表示
        • 模型结构
      • 实验
        • 语言模型
        • Children’s Book Test(CBT)
        • LAMBADA
        • Winograd Schema Challenge(WSC)
        • Reading Comprehension
        • Summarization
        • Translation
        • Question Answering
      • Generalization vs Memorization
      • Discussion
      • Conclusion

前言

在GPT1出来后不久,和GPT很相似的BERT也横空出世,并且几乎在全方位上吊打了GPT1,OpenAI扬长避短,提出了《Language Models are Unsupervised Multitask Learners》(GPT2)。它强调的通过无监督学习也能达到和finetune一样的效果,并且拥有更强的泛化能能力(个人猜测就是在finetune的情况下打不过BERT,所以主打无监督学习)

正文

摘要

自然语言处理任务,如问题解答、机器翻译、阅读理解和摘要,通常需要在特定于任务的数据集上进行监督学习。我们证明,当语言模型在名为WebText的数百万网页的新数据集上进行训练时,就算没有任何明确的监督,也能学习到上述的任务。当以文档加问题为条件时,该语言模型生成的答案在CoQA数据集上达到55的F1值,接近或超过3个(共4个)使用127000多个训练数据的baseline模型。语言模型的容量对于zero-shot任务转移的成功至关重要,并以log-linear的方式提高任务的性能。我们最大的模型GPT-2是一个1.5B参数的Transformer,它在8个测试语言建模数据集中的7个数据集上实现了sota,但仍然低于WebText。模型中的示例反映了这些改进,并包含连贯的文本段落。这些发现为构建语言处理系统提供了一条很有前途的道路,该系统可以从自然发生的演示中学习执行任务。

方法

概述

学习单个任务可以在概率框架中表示为估计一个条件分布 p ( o u t p u t ∣ i n p u t ) p(output|input) p(outputinput)。既然一个通用的系统应该能解决各种不同的任务,所以我们在考虑条件的时候不仅是通常的输入,还要考虑到任务本身,表示成公式为 p ( o u t p u t ∣ i n p u t , t a s k ) p(output|input,task) p(outputinput,task),语言模型提供了一种灵活的方式来将任务、输入和输出全部指定为一系列统一符号。举个例子,翻译训练示例可以写成序列(translate to french, english text, french text),同样,阅读理解训练示例可以写成(answer the question, document, question, answer)。
我们认为,由于有监督目标与无监督目标相同,但仅在序列的子集上进行评估,因此无监督目标的全局最小值也是有监督目标的最小值。初步实验证实,在这种玩具般的设置中,足够大的语言模型能够执行多任务学习,但学习速度比显式监督方法慢得多。

训练数据

大多数之前的工作训练的模型都是在一个特定的领域上,如新闻,维基百科,小说等。我们的方法促使构建尽可能大且多样的数据集,以便在尽可能多的领域和上下文中收集自然语言任务演示。
一个有前途的多样性和几乎无限的文本来源是诸如Common Crawl之类的网页抓取。虽然这些存档比当前的语言建模数据集大很多数量级,但它们存在严重的数据质量问题。Trinh&Le(2018)在他们关于常识推理的工作中使用了Common Crawl,但注意到大量文档“其内容大多难以理解”。我们在使用Common Crawl的初始实验中观察到了类似的数据问题。Trinh&Le(2018)的最佳结果是使用Common Crawl的一个子样本获得的,该样本仅包含与目标数据集Winograd Schema Challenge最相似的文档。虽然这是一种提高特定任务绩效的实用方法,但我们希望避免对要提前执行的任务做出假设。(个人认为这样是容易过拟合)
相反,我们创建了一个新的web抓取,强调文档质量。为了做到这一点,我们只对人类策划/过滤过的网页进行了抓取。手动过滤一个完整的网络抓取将非常昂贵,因此作为一个起点,我们从社交媒体平台Reddit抓取了所有的出站链接,该每个链接至少收到了3个karma。这可以被认为是一个启发式指标,用于判断其他用户是否觉得链接有趣、有教育意义或只是好玩。
生成的数据集WebText包含这4500万个链接的文本子集。为了从HTML响应中提取文本,我们使用了Dragnet(Peters&Leocq,2013)和Newspaper 1内容提取器的组合。本文中的所有结果都使用了WebText的初步版本,该版本不包括2017年12月之后创建的链接,并且在重复数据消除和一些基于启发式的清理之后,包含了略超过800万个文档,总共40GB的文本。我们从WebText中删除了所有Wikipedia文档,因为它是其他数据集的通用数据源,并且由于训练数据与测试评估任务重叠,可能会使分析变得复杂。

输入表示

字节对编码(BPE)(Sennrich等人,2015)是字符和单词级语言建模之间的一个实用中间点,它有效地在频繁符号序列的单词级输入和不频繁符号序列字符级输入之间进行插值。
这种输入表示允许我们将word-levl LMs的经验优势与byte-lebel方法的通用性结合起来。由于我们的方法可以为任何Unicode字符串分配概率,因此无论预处理、标记化或vocab大小如何,这都允许我们在任何数据集上评估LMs。

模型结构

GPT2和GPT1的模型结构也是非常相似的,不过还是做了一些优化,包括LayerNorm层的前置,在最后的transformer层后加了个LayerNorm,如下图所示:
在这里插入图片描述
除此之外,我们将残差层在初始化时的权重因子设置成了 1 / N 1/\sqrt{N} 1/N ,其中 N N N是残差层数,词表大小扩展成50257,文本最大长度从512增加到1024,以及使用了更大的batchsize(512)。

实验

我们训练了四个具有大致对数均匀间隔大小的模型,并对其进行了基准测试。表2总结了体系结构。最小的模型相当于原始GPT,第二个最小的模型等同于BERT的最大模型(Devlin等人,2018)。我们最大的模型,我们称之为GPT-2,其参数比GPT多了一个数量级。每个模型的学习率都是手动调整的,以便在5%的WebText样本上获得最佳困惑。所有的模型仍然在WebText数据上欠拟合,我们可能需要更多的训练时间。

语言模型

GPT2本质上还是一个语言模型,所以我们希望在一些常见的公开zero-shot任务上和当前的sota模型进行比较,详情见下表所示:
在这里插入图片描述
可以看到,在很多任务上GPT2的效果遥遥领先,这表示在基于transformer的更大语言模型和更多的训练语料确实能够取得更好的效果。

Children’s Book Test(CBT)

CBT主要是为了检测语言模型在以下识别任务中的表现:命名实体、名词、动词、介词。CBT不以困惑度作为评价指标,而是评估自动构建的完形填空测试的准确性,其任务是预测遗漏的10个“选择”中的哪一个是正确的。遵循原始论文中介绍的LM方法,我们根据LM计算每个选择的概率以及基于该选择剩余句子的概率,并预测概率最高的一个。如下图所示,分别是GPT2在名词和命名实体任务下效果:
在这里插入图片描述

LAMBADA

LAMBADA数据集(Paperno等人,2016)测试了系统对文本中的长期依赖性建模的能力。任务是预测句子的最后一个单词,人类需要至少50个上下文标记才能成功预测。

Winograd Schema Challenge(WSC)

WSC数据集(Levsque等人,2012)旨在通过系统解决文本歧义的能力来测量其在常识推理上的效果。最近,Trinh&Le(2018)使用语言模型,通过预测具有更高概率的歧义解决,在这一挑战上取得了巨大的成果。我们的效果如下图所示:
在这里插入图片描述

Reading Comprehension

对话问答数据集(CoQA)Reddy等人(2018)由来自7个不同领域的文档组成,将提问者和回答者之间关于文档的自然语言对话配对。CoQA测试阅读理解能力,以及模型回答依赖于对话历史的问题的能力(例如“Why?”)

Summarization

我们测试了GPT-2在CNN和每日邮报数据集上执行摘要的能力(Nallapati等人,2016),结果如下表所示:
在这里插入图片描述

Translation

我们在WMT-14英-法数据集上测试了GPT2的机器翻译能力,无论是英语翻法语还是法语翻英语,GPT2都比当前sota模型有较大差距。但令人惊讶的是,GPT2的训练语料在预处理时专门过滤掉了非英文网页。为了证实这一点,我们在WebText上运行了一个字节级语言检测器,该检测器仅检测到10MB的法语数据,比先前无监督机器翻译研究中常见的单语法语语料库小约500倍。

Question Answering

测试语言模型中包含哪些信息的一种潜在方法是评估它生成事实类问题正确答案的频率。从结果来看,GPT-2的性能仍然比将信息检索与提取文档问答相结合的开放域问答系统的30%到50%范围差得多(Alberti等人,2019)。 但GPT仍然有很大潜力。

Generalization vs Memorization

计算机视觉的最新研究表明,常见的图像数据集包含大量的近似重复的图像。例如,CIFAR-10在列车图像和测试图像之间有3.3%的重叠。这导致了对机器学习系统泛化性能的过度报道。随着数据集大小的增加,这个问题变得越来越可能,这表明类似的现象可能发生在WebText上。因此,分析有多少测试数据也出现在训练数据中是很重要的。
为了研究这个问题,我们创建了包含 8-grams WebText训练集标记的Bloom filter。为了提高召回率,字符串被规范化为只包含小写字母数字单词,并使用单个空格作为分隔符。Bloom filter的构造使得 the false positive rate 上限为 1 / 1 0 8 1/10^8 1/108通过生成1M字符串进一步验证了 the low false positive rate,其中0个字符串被filter发现。

在给定一个数据集时,Bloom filter让我们可以计算来自于这些数据集的8-grams 也存在于WebText训练集中的百分比。表6显示了公共LM基准测试集的这种重叠分析。普通LM数据集的测试集与WebText训练集的重叠率在1-6%之间,平均重叠率为3.2%。有些令人惊讶的是,许多数据集与它们自己的训练分割有更大的重叠,平均重叠率为5.9%。
在这里插入图片描述

Discussion

目前有许多研究致力于学习、理解和批判性评估有监督和无监督的预训练方法。我们的研究结果表明,无监督任务学习是一个很有前途的研究领域。这些发现可能有助于解释针对下游NLP任务的预训练技术的广泛成功,因为我们认为,在极限条件下,这些预训练技术能够直接解决各种任务,而无需监督适应或修改。

在阅读理解中,GPT-2在zero-shot环境下的表现与有监督的baseline相竞争。然而,在总结等其他任务上,虽然它能够执行任务,但根据量化指标,它的性能仍然只是初级的。虽然研究结果具有一定的启发性,但从实际应用来看,GPT-2的zero-shot的表现还远远不能满足要求。

Conclusion

当一个大型语言模型被训练在一个足够大和多样的数据集上时,它能够在许多域和数据集上表现良好。在八分之七的测试语言模型数据集上,GPT-2 zero-shot 到最先进的性能。该模型能够在zero-shot setting下执行的任务的多样性表明,经过训练以使文本语料库充分变化的可能性最大化的高容量模型开始学习如何执行数量惊人的任务,而不需要明确的监督。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下搭建Git服务器

目录 步骤一.安装Git: 步骤二.安装Gitosis 安装Gitosis依赖的工具 进入到Gitosis目录执行: 出现下面的信息表示安装成功 步骤三.服务器端创建git用户来管理Git服务 服务器端的Git配置公钥 步骤四.服务器端创建Git仓库 步骤五.客户端clone服务器…

PPT如何转换成PDF?三种转换方法告诉你

大家在工作中会使用PPT格式的文件来汇报工作流程吗?当上级领导要求你将这些工作内容全部汇总,并用PDF文件发给他的时候,你是怎么做的呢?是重新将内容复制黏贴到PDF文件中吗?今天告诉你一个简单的方法,其实只…

【echarts】自定义legend样式 echarts图例与⽂字对齐问题

较完整的使用介绍参考:https://blog.csdn.net/changyana/article/details/126281275 起因 今天使⽤echarts时发现官⽹⽰例图例部分并没有进⾏对齐,⼀上⼀下逼死强迫。。。 解决办法 textStyle: { // 添加height: 10, // 关键在这个height设置rich: …

前端开发-异常问题记录

Q1:Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示; 可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决 Q2:浏览器跨域问题(通过配置浏览器解决) 将chrome浏览器复制一个进行修改&#xff…

CRM如何帮助企业提高工作效率?

企业管理者在创建团队时,除了要凝聚人心,更注重效率,企业团队的工作效率直接决定了企业的生产力,生产力决定战斗力,使用CRM系统可以帮助企业提高工作效率。 前言 企业管理者在创建企业团队时,除了要凝聚人…

IOS开发基础 · SwiftUI · StanfordCS193p Lecture3-4

IOS开发Lecture3MVVMVarieties of Typesstruct & classdont care - genericsFunctionClosuresprivate(set)for函数作为参数传给函数初始化顺序Lecture4修改代码View界面预览代码修改构建View-ViewMode点击事件让bool值反转internal external nameprint("\( )")st…

NeurIPS 2022: S3GC 可扩展图聚类

talk 文章的创新性不大,meta-review是给了 如果还可接收,再考虑。 但是 本文确实是 可扩展图聚类的重要一步。已有的方法 或多或少只在 小的数据集上 进行聚类。 存在一些非聚类的通用gnn方法进行采样。本文就是利用采样降低复杂度,并进行大…

基于FPGA的UDP 通信(四)

引言 前文链接: 基于FPGA的UDP 通信(一) 基于FPGA的UDP 通信(二) 基于FPGA的UDP 通信(三) 本文基于FPGA与MATLAB作千兆以太网通信模块UDP数据接收实验板级验证:FPGA接收上位机数…

大前端 TOB 0.5 WordPress模板 漂亮大气自适应多终端多功能

tob主题基于WordPress程序,响应式布局支持电脑、平板和手机的完美展示。tob适用于各种图片展示网站、新闻站、电影站、美图站、资源站等等,扁平化设计、公众号展示、打赏功能、列表无限加载、相册功能。tob是基于WordPress程序的主题,由theme…

多线程与高并发(五)

【ReentrantLock源码】: 【AQS源码】: 【公平与非公平】: 【公平】: 线程想要获得一把锁,乖乖的去这把锁的等待队列里排队————公平。 【非公平】: 线程想要获得一把锁,不去排队&#xff0c…

嵌入式实时操作系统的设计与开发(九)

同步机制 aCoral信号量机制不仅可以实现临界资源互斥访问,控制系统中临界资源多个实例的使用,还可以用于维护线程之间、线程和中断之间的同步。 当信号量用来实现同步时,起始值为0,如一个线程正在等待某个I/O操作,当…

【外贸小知识】通过whatsapp获取流量的几种小方法

相信做外贸的小伙伴们对于是whatsap比较熟悉的,都想通过whatsapp来获取更多流量,更多用户。今天我们花漾灵动小编就给大家汇总了通过whatsapp获取流量的几种小方法,希望能对新手小白有点作用哦!通过whatsapp获取流量的几种小方法1…

【PyTorch深度学习实践】07_Dataset和Dataloader

文章目录1. Epoch,Iteration,Batch-Size2. Dataset 和 Dataloader2.1 Dataset2.2 Dataloader2.2.1 例子2.2.2 enumerate函数3. 完整代码1. Epoch,Iteration,Batch-Size 参考博客 2. Dataset 和 Dataloader 参考博客 功能概览 2…

2023年浙江建筑八大员(标准员)精选真题题库及答案

百分百题库提供建筑八大员(标准员)考试试题、建筑八大员(标准员)考试真题、建筑八大员(标准员)证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 14.根据《施工现场临…

Electron Vue之间的通讯 自定义标题栏实现最小化全屏关闭功能

方便以后定制化使用,学习记录一下。 话不多说,先看看效果吧。 效果 版本 electron ^13.0.0 知识点 Vue 相互通讯 Electron 标题栏主要逻辑代码 新建public\preload.js文件,用于前端全局发送和监听消息。 const { contextBridge, ipcRen…

【Linux】Linux权限的理解

文章目录🎪 Linux权限的理解🚀1.shell命令及其运行原理🚀2.Linux权限概念⭐2.1 用户与root身份切换⭐2.2 用户与用户身份切换⭐2.3 单条指令提权🚀3.Linux文件权限⭐3.1 文件属性(第一个字符)⭐3.2 文件角色划分与文件属性⭐3.3 文…

线性代数第四章 向量组的线性相关性

向量组及其线性组合一.向量、向量组1.向量n个有次序的数a1,a2,...,an所组成的数组称为n维向量,这n个数称为该向量的n个分量,第i个数ai称为第i个分量n维向量可以写成一行,也可以写成一列,在没有指明是行向量还是列向量时&#xff0…

Authing 入选长城战略咨询《2022中国潜在独角兽企业研究报告》

12 月 23 日,长城战略咨询(GEI)发布《2022 中国潜在独角兽企业研究报告》(下称《报告》)。作为身份云行业领先的代表企业, Authing 凭借着过硬的技术实力和突出的创新能力,首次入选中国潜在独角…

软件测试工程师为什么要写测试用例?

软件测试工程师为什么要写测试用例?相信从事软件测试行业的从业者来讲,测试用例并不陌生。因为测试用例不仅仅是一组简单的文档,它包含前提条件、输入、执行条件和预期结果等等重要内容,并且能够完成一定的测试目的和需求。下面本…

深度学习(20)—— ConvNext 使用

深度学习(20)—— ConvNext 使用 本篇主要使用convnext做分类任务,其中使用convnext-tiny,其主要有5块 stage0stage1stage2stage3head 文章目录深度学习(20)—— ConvNext 使用Part 1 ModelPart 2 Traini…