ChatGPT2论文解读《Language Models are Unsupervised Multitask Learners》(2019)

news2024/12/27 0:49:01

论文总结

以下是我阅读完整篇论文做的个人总结,包含了ChatGPT-2文章的主要内容,可以仅看【论文总结】章节。

数据集

自制了一个网页爬虫,被抓取的网页部分来自于社交平台,这些网页由人工进行过滤。最终生成WebText数据集,包含45000000个链接。另一部分来自于新闻网站,数据截止2017年12月,数据总量达到8000000篇文章,总共有40GB的文本内容。文章还提到,包括wiki百科等文本也纳入训练数据集,由全世界各地数百万人参与来创建和清洗GPT-2训练所用的数据集。

输入表示

设计了一种结合单词级表示和字节级表示的混合输入表示。针对过去的单词级库去除大量重复单词,又引入字节级表示来提升泛化能力。
单词级表示具有先验优势,字节级表示具有泛化优势。

模型

针对GPT1进行了部分修改:
1.将层归一化移动到每个子块的输入。
2.在自注意块之后添加额外的层归一化。
3.改进了初始化方法(初始化时将残差层的权重按1/√N的倍数扩大,N是残差层数量)。
4.词典扩大,分词扩大,指令集扩大,批处理大小扩大。
5.GPT包含117000000参数,GPT-2包含1542000000参数

实验

因为只训练一次,却想观察模型在各个细分领域的表现,因此所有实验都可归类为零次学习(zero-shot)

测试项目测试模型的哪方面能力测试结果
儿童书籍识别不同类型的词汇ACC从85.7提升至93.3
LAMBADA测试识别文本中长依赖的能力PPL99.8降低至8.63
Winograd Schema Challenge常识性推理63.7%提升至70.7%
阅读理解需要模型具有一定记忆能力4项测试3项刷新历史记录
摘要对新闻文章提取摘要的能力与历史成绩持平
翻译大模型自动学习的翻译能力英译法较差,法译英达到基准水平
问答模型对于似是而非问题回答正确的能力准确度提升5.3倍

总结

GPT-2论文的核心内容,可以用一句话进行总结:那就是在GPT模型的基础上,作者提升了模型大小和训练数据集大小,结果发现GPT-2可以自动适应并完成NLP不同领域的任务目标的学习
举个例子来说,我们同时给一个固定的语言模型输入日常对话文本和新闻报道文本的数据集,并且这个数据集足够大、模型足够大、训练时间足够长。则最终产出的模型将会拥有区分日常对话和新闻报道的不同场景的能力,不仅如此模型还将自动拥有一些新的能力,例如编写新闻摘要的能力。
这意味着大型语言模型具有很强的泛化能力,同时也意味着大型语言模型将会具有潜在自主意识。随后本文针对作者列举的几个独立领域,陈述了实验结果。
相比于GPT论文中只提到Large Dataset,GPT-2论文中开始出现LLM(Large Language Model)的描述。


论文原文解读

原论文地址:https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

一、介绍

过去的机器学习系统已经可以很好地实现特定的目标,只要使用合适的训练模型、提供海量的数据集并进行有监督的训练。但是这些系统往往高度依赖于训练模型的方法以及数据集,一旦这些部分发生变化,模型就会被破坏甚至彻底失效。因而过去的机器学习研究仅仅在特定领域和研究方向上取得很好成果,无法得到更通用和泛化的效果。本文尝试提出一种模型,可以解决更加通用和泛化的问题,并且不需要手工标注训练用的特定目标数据集。
我们怀疑导致传统机器学习方法泛化性弱的一个原因,是过去的机器学习系统都是用一个训练模型方法、基于一个数据集进行训练。因而我们会在训练时引入更大范围的数据集,并使用多种方法进行训练得出最终模型,这种方法可以显著提升模型的泛化能力。这种方法被称为多任务学习(Multitask Learning),并且部分研究人员已经对他做了一定的研究,但是多任务学习在NLP领域依然属于前沿领域,研究甚少。
当前的机器学习系统需要成百上千的数据输入才能归纳出泛化良好的模型函数,这表明多任务学习同样需要大量的数据进行训练。受制于现有的技术,我们很难继续扩充数据集,因此我们将在模型设置上进行优化。
当前最好的语言类模型训练架构就是结合深度学习预训练和二阶段的有监督调参(这里指的就是ChatGPT1中提出的架构)。第一,将文本词汇进行向量化,并将其用作特定学习模型的输入,然后循环网络的上下文表示就会根据数据进行训练产出。最近的研究表明,要想获得较好的模型效果,不再需要特定学习模型架构设计,只需要转移更多的自注意函数(self-attention blocks)就足够了。第二,这种架构在二阶段依然需要一部分的标注数据,但是当我们没有标注数据时,模型是否还可用?另一个方向的研究表明,在缺少标注数据的场景下,语言模型依然可以很好的处理常识推理和情绪分析类的问题。
本文将结合以上几点优化,设计一个更加通用的转化方法。我们将揭示在这种多任务学习的架构设计下,即使不做任何调参和架构调整的情况下,语言模型依然可以表现的很好。

二、实现方案

本方案的核心就是语言模型。语言模型往往被设计成无监督分布式的评估架构,其输入通常是一组组合集{x1,x2,x3…},每个元素是由不定长的符号集合(s1,s2,s3…)组成。正常的语言通常具有特定的语法顺序,因此可以计算符号之间的连接概率,来预测下一个出现的单词。近几年的研究成果大大提升了这种架构设计的模型准确度,例如Transformer模型当中的self-attention架构。
语言具有很高的易变性,因此对于单任务模型而言,不同语言需要非常定制的训练目标、输入、以及输出。近期的研究成果诸如encoder和decoder,提供了更好的思路来表示语言模型需要的输入和输出形式。
基于以上原理,原则上来说,所有语言模型都应该支持无监督的学习能力。相比于无监督训练数据集,有监督训练数据集仅仅多些标记结果,因此可以看做世界上可用的无标注数据集就是有标注数据集。前期的研究表明,超大型多任务语言模型在无监督训练下可以产出和有监督训练相似的效果,但是训练时间会更久。
当今互联网存在大量可用的文本信息。我们的推测就是,在输入大量无标注文本数据之后,超大型多任务语言模型将会逐渐学习到预测文本的能力,不管这个模型采用的是什么方法或流程。本文就测试了这种零次学习(zero-shot)设置下的模型训练效果。
零次学习(zero-shot)指模型可以根据分类描述,直接预测出未训练过的数据。举例来说,模型训练数据中出现过马、条纹、黑白,并且有一个分类描述“具有黑白条纹的马是斑马”,则模型可以直接识别出斑马。

2.1训练数据集

之前的语言模型通常是基于一个垂直领域的文本集进行训练,这个文本集可以是一个新闻报道集合、维基百科、小说。而我们的目标是在尽可能广的数据集范围内进行训练,并最终得到一个效果不错的通用语言模型。一个可靠的广泛且通用文本数据集是Common Crawl,这是一种标注数据集,很多研究者已经基于该数据集进行了有监督训练并得到对应的语言模型。
我们不希望受限于标注数据集,因此我们开发了一种特定的网页爬虫工具,将从互联网爬取高质量的文本,生成我们模型的通用数据集。我们的爬虫只爬取人工过滤过的网站,但是人工过滤网页内容是及其消耗时间的,因此我们选择从Reddit社交网站中进行文本爬取。
我们将爬取到的数据定义为WebText,该数据集最终包含4500万个网页链接(links),我们使用Dragnet和Newspaper content extractors两个工具将网页中的文本提取出来。本文中介绍的模型方案,使用了一个更小的文本数据集,该数据集包含800万个文档,总共包含40GB的文本内容。我们将维基百科的文本全部移出,因为这部分文本数据集的学习效果可以在其他研究模型中看到,我们不再做重复工作。

2.2输入表示

一个通用的语言模型(Language Model,LM)应该可以计算任何字符串出现的概率。现有的LM模型依赖于文本预处理,例如全部转为小写字母、分词(tokenization)等操作。过去的认知认为,在处理标准字符集UTF-8的时候,字节级别(byte-level)的模型不如单词级别(word-level)的模型,我们在研究过程中也复现了这一结论。
字节对编码(Byte Pair Encoding,BPE)是一种介于字符级别(character-level)和单词级别(word-level)之间的符号序列,BPE通常操作Unicode符号而不是直接处理字节。对于单词级别的实现方式要求模型将整个Unicode符号字典存入内存从而实现任意字符串匹配,这意味着在没有做任何事情之前,已经在内存里面放了一个13000单词的数据。而对于字符级别的实现,仅需要放入一个256大小的字典即可。如今BPE有多种实现方案,我们观察到许多BPE方案会包含重复单词,例如dog、dog?,我们做了特定的压缩优化方式,尽可能的减少这部分重复数据。最终设计出的BPE方案完美的结合了字符级别和单词级别语言模型的优点,他为我们后续的大型语言模型识别通用语言文本提供了能力。

2.3模型

我们设计的语言模型(Language Model,LM)基于Transformer模型。基于Transformer模型,我们做了些许优化,层归一化(Layer Normalization,LN)前移至输入的每个子块,在最终的self-attention块之后再增加一个层,用一个因子1/√N 加重了初始化剩余层的权重(其中N是剩余层的数量)。最终的单词量扩大至50257,上下文token大小从512扩大至1024。

三、实验

我们最终训练了四组大模型,训练结果见表2。最小的模型正如GPT,第二小的模型相当于一个BERT模型,最大的模型我们将其定义为GPT-2。每组模型的训练速度我们都进行了手动调参,虽然最终所有模型对于WebText依然欠拟合,但随着训练时间的增加,效果有着比较明显的提升。GPT-2是在通用数据下进行训练的,而后面的所有实验都是GPT-2未经过特定的监督学习训练的,因此以下的实验都被视作零次学习(zero-shot)。
在这里插入图片描述

表2.四组大模型的参数结果数据

3.1语言模型

作为开始零次学习(zero-shot)任务的第一步,我们首先观察了过去实验的一些结果和经验。我们的模型运行在字节级,因此不需要预处理和分词,我们可以在任何语言模型的基准上对他进行评价。表3展示了我们的模型在数据集上的表现。
结果显示我们的模型在总共8个数据集中,7个数据集的表现优于过去的模型。在小模型上,我们的模型取得了巨大的提升,例如PTB和WikiText2,这些数据集只有一至两百万的单词。长句子数据集的表现也提升很大,例如LAMBADA和CBT。我们的模型在1BW数据集上表现不如过去的模型,这可能是因为过去的模型在1BW上做了很多预处理。
在这里插入图片描述

表3.模型在8个数据集下的表现。PPL越小越好,ACC越大越好

3.2儿童书籍测试(CBT, Children’s Book Test)

CBT数据集测试用来检验模型对不同类型单词的识别能力:命名实体、名词、动词和介词。CBT使用结构完形填空模式,在10个可能的词中选择一个准确的,来评估语言模型的效果。我们根据CBT原论文的设计,对模型进行了测试和评估,结果显示随着模型大小的增加,识别效果稳步提升,并最终达到了接近人类的水平。最终得到99.3%的名词分数和89.1%的命名实体分数。

3.3LAMBADA

LAMBADA数据集测试了模型对文本中的长距离依赖关系进行建模的能力。测试任务将预测句子的结尾单词。GPT-2将该测试从PPL=99.8提升到PPL=8.63。我们进行了调查检验,发现在预测错误的句子结尾处,虽然预测错误了,但是GPT-2依然给出了一个可读性很强的连接单词。
在这里插入图片描述

图2.随着参数增加,模型效果提升,接近人类的识别水准

3.4维诺格拉德模式挑战(Winograd Schema Challenge)

维诺格拉德模式挑战通过测量模型系统解决文本中的歧义的能力来衡量其进行常识性推理的能力。Trinh & Le近期的研究显著提升了语言模型(LM)在这个测试上的表现。我们按照先前的测试规范,发现GPT-2再次提升了7%的精确度,达到了70.7%。
在这里插入图片描述

图3.模型在Winograd Schema Challenge的表现

3.5阅读理解

对话问答(Conversation Question Answering, CoQA)数据集由7个不同的领域文本组成CoQA不仅测试模型的阅读理解能力,还能检验模型的历史记忆能力(例如直接问模型Why?模型需要根据前文所述进行回答才行)。最终GPT-2在4项测试中的3项取得了更好的效果。我们在过程中发现,GPT-2模型经常会使用简单的推测来回答问题。诸如被问到Who类型的问题时,模型总是会随便取一个前文中的人名进行回答。

3.6摘要提取

我们测试了GPT-2在CNN和《每日邮报》数据集上进行总结的能力,为了让模型具备总结行为,我们在文章后面添加了特殊的文字,并通过Top-k随机抽样,生成标记,我们使用这些标记中的前3个生成的句子作为文段摘要。最终发现GPT-2侧重于总结和强调文段中最后的文本内容,并且在一些细节上会出现错误,诸如有多少辆车卷入了车祸。最终的实验结果显示GPT-2的表现在综合指标上下降了6.4,这意味着自然语言模型在特定任务下具备很高的行为能力。

3.7文本翻译

我们测试了GPT-2是否具备语言翻译的能力。为了让模型知道翻译是潜在任务,我们将文本进行了配对[English sentence]=[French sentence]。在一个英文翻译法语的测试集下,GPT-2仅得到5BLUE,表现弱于先前的其他无监督翻译模型。而在法语翻译英文的测试结果中,GPT-2得到了11.5BLUE的结果,这一成绩优于相当多的同类模型,但依然不如最近研究得出的最好模型成绩33.5BLUE。即使如此,该结果依然令我们感到欣喜若狂,因为我们在数据清洗中已经特地将所有非英文内容从WebText中去除,没想到GPT-2依然具有如此强大的翻译能力。

3.8问答类

测试语言模型包含哪些信息的一个方法,就是用似是而非的问题去提问。与翻译类似,语言模型的上下文就在问答对中,GPT-2在问答理解集SQUAD测试中达到4.1%,先前最好的测试结果没有超过1%。GPT-2相比于过去的模型,正确率提升了5.3倍。这说明模型的大小对于准确率来说是一个重要的影响因子,因为GPT-2模型相比于过去的模型更大。

四、泛化效果(Generalization)对比记忆效果(Memorization)

最近在机器视觉(Computer Vision)上的研究显示,图像数据集当中存在大量重复图像,例如CIFAR-10在训练集图像和测试集图像中有3.3%是相同的,这会导致过去实验汇报的一些模型性能和表现会偏高。当数据集不断增加时,相似的问题也会出现在语言模型中。所以有必要搞清楚有多少训练集文本重复出现在了测试训练集当中。
我们制作了一个过滤器,用来查看我们实验过程中重复出现的文段。在大部分文段中都发现了训练集和测试集中存在1-6%的数据重复。鉴于这些重复数据的存在,我们得到的语言模型的实验结果,也会有细微的偏高。这种情况就是归因于基因效果。
确定基于WebText训练的语言模型的表现是否归因于记忆的另一个方法是 检查他们在自己的保留集上的表现。我们模型在训练集和测试集上的表现是相似的,并且随着模型大小的增加而提高,这表明GPT-2 在依然是低度拟合的。
关于泛化能力,我们还发现GPT-2拥有撰写新文章的能力,例如《发现会说话的独角兽》的新闻报道。

五、其他相关工作

我们验证了用更大的模型,在更大的数据集上训练的效果。许多先前的研究已经证明,更大的模型会获得更好的语言理解效果,我们的实验运行在一个噪声更多的数据集上,更加复杂更加庞大,但同样得出相似的结论。这说明对于语言模型而言,持续增加训练数据和模型大小,可以不断提升模型的效果。
关于语音模型的预训练,先前也已经做过了广泛的研究。诸如词向量伸缩、文本深度表达学习、分类表示法、RNN调参等方式都可以提升模型的效果。大量的研究证实,预训练非常重要。

六、讨论

当前有大量研究在验证有监督训练和无监督训练的效果。我们的结果证明无监督学习是一个非常重要的过程,值得探索。我们的研究也证明了加入预训练之后的自然语言处理模型可以得到更好的效果,并且我们模型的预训练不需要依赖于有监督学习。
在阅读理解领域,GPT-2在零次学习设置下,效果接近于有监督学习模型。当然也毫无疑问,GPT-2模型在许多实际任务中的表现也不是很好,例如问答和翻译,GPT-2在这些方面的表现仅仅刚刚达到及格线水准。
在零次学习场景下,我们对GPT-2进行的参数调优似乎还没有达到天花板。我们将会在后续的研究中继续加强和精细化参数调优,以挖掘GPT模型还能提升的空间。

七、总结

当一个大型语言模型(LLM)在多样化的文本数据下训练后,得到的模型将能适应多种多样不同目标的任务和需要。GPT-2在8项测试中的7项取得了历史最好成绩。GPT-2在大量训练和学习中,自动实现了零次学习的能力,并且在无显式监督的情况下,完成了对各类语言理解功能的实现。

致谢

感谢参与科研的技术人员、文章编写者、处理训练数据的数百万参与者、帮助我们提供基础硬件设施的谷歌人员。

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

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

相关文章

多种工厂模式的运用

文章目录 多种工厂模式的运用一、简单工厂模式(非23种设计模式)1.1 结构2.2 实现2.2.1 简单工厂类图2.2.2 代码2.2.3 优缺点 二、静态工厂模式(非23种设计模式)3.1 代码 三、工厂模式3.1 结构 3.2 实现3.2.1 工厂模式类图3.2.2 代…

Rust教程初识

Rust 教程 Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。 Rust 语言由 Mozilla 开发,最早发布于 2014 年 9 月。Rust 的编译器是在 MIT Licens…

bmp图片怎么转jpg格式?思路提供

BMP和JPG是两种常见的图片格式。BMP文件相对较大,无损压缩,而JPG文件则相对较小,有损压缩。当我们需要在保持图片质量的同时减小文件大小时,我们可以将BMP文件转换为JPG文件。在本文中,我们将介绍如何将BMP文件转换为J…

短视频矩阵源码技术开发

短视频矩阵是一种常见的视频编码标准,它通过将视频分成多个小块并对每个小块进行压缩来实现高效的视频传输。在本文中,我们将介绍短视频矩阵的原理和实现,并提供示例代码。 $where_time array(); // 时间 $where_time[] array(name>fbr…

第5章:SpringMVC的视图

一、SpringMVC的视图 SpringMVC中的视图是View接口,视图的作用渲染数据,将模型的Model中的数据展现给用户SpringMVC视图种类很多,默认有转发视图和重定向视图当工程引入jstl依赖,转发视图自动转换为JstlView若使用视图技术是Thym…

【新版】系统架构设计师 - 新老教材对比分析

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 新老教材比较新版教材章节分析 新老教材比较 提示:请自行购买并浏览新版系统架构设计师教材 原教材:2009年出版,共21章,572页。新教材:2022年出…

紧急防勒索病毒的防御方案

一、适用目标(校园网、企业网,windows系列的操作系统): 所有在校园内运行windows系统的电脑,并非只感染服务器操作系统,单机照样感染。会将你电脑中的所有文件全部加密,部分已感染案例有2个共同…

Yolov8轻量级:Next-vit,用于现实工业场景的下一代视觉 Transformer

1.Next-vit介绍 论文:https://arxiv.org/pdf/2207.05501.pdf 由于复杂的注意力机制和模型设计,大多数现有的视觉 Transformer(ViT)在现实的工业部署场景中不能像卷积神经网络(CNN)那样高效地执行。这就带来了一个问题:视觉神经网络能否像 CNN 一样快速推断并像 ViT 一样…

DVPP媒体数据处理图片解码问题案例

DVPP(Digital Vision Pre-Processing)是昇腾AI处理器内置的图像处理单元,通过AscendCL媒体数据处理接口提供强大的媒体处理硬加速能力,主要功能包括图像编解码、视频编解码、图像抠图缩放等。 本期就分享几个关于DVPP图片解码问题…

Web的基本漏洞--越权漏洞

目录 一、越权漏洞介绍 1.越权漏洞的原理 2.越权漏洞的分类 3.越权漏洞产生的原因 一、越权漏洞介绍 越权漏洞指的是应用在检查授权时存在纰漏,可以让攻击者获得低权限用户账户后,利用一些方式绕过权限检查,可以访问或者操作其他用户或者…

如何选择振动传感器?实现设备健康监测和预测性维护的第一步

随着工业设备的日益复杂和关键性的增加,设备健康监测和预测性维护成为保障生产效率和设备可靠性的关键要素。而振动传感器作为常用的监测工具,在设备健康监测中扮演着重要角色。 图.设备监测(iStock) 本文将介绍如何选择振动传感…

聊聊公司技术上的奇葩规定——计算机使用

首先说明下公司的技术架构。 MySQL PHP Java,纯互联网应用,Docker 容器部署微服务在 AWS 上面。 数据上没有过多敏感性,不涉及到很多敏感数据,身份识别信息通常使用的是第三方平台,我们本地不存储用户身份信息。 电…

跟着LearnOpenGL学习6--变换

文章目录 一、前言二、向量2.1、向量与标量运算2.2、向量取反2.3、向量加减2.4、长度2.5、向量相乘 三、矩阵3.1、矩阵的加减3.2、矩阵的数乘3.3、矩阵相乘 四、矩阵与向量相乘4.1、单位矩阵4.2、缩放4.3、位移4.4、旋转4.5、矩阵的组合 五、变换实战5.1、GLM配置5.2、GLM测试5…

学习HTTP2

这是有关HTTP最后一部分内容的学习啦~今天一起来学习HTTP/2! HTTP2 HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),简称为h2(基于TLS/1.2或以上版本的加密连接)或h2c(非加密连接…

javaweb session与cookie

Cookie Cookie是本地的存储数据,是键值对 注意一定要使用resp.addCookie才能返回cookie cookie修改 修改的话也是调用addCookie,对相同key的进行修改,作用于set-cookie响应头。 可以新建cookie,add进去,也可以在用户传…

投出去的简历石沉大海,1个月只有2个面试邀约,这正常吗?

我一介大专生,干了2年的点工,想着干这么长时间测试了,怎么也要涨薪冲击个12K了吧 去年我跟老板提了几次,好像都不怎么搭理我 今年金三银四,涨薪那边还是没着落,而我已经急不可耐了,既然你不给我…

28 # commander 的用法

node 和前端的区别 前端里面有 BOM 和 DOM,服务端没有,也没有 window服务端里面有 global 全局对象(浏览器也有 global,只不过访问属性的时候都是通过 window 来代理,没有直接访问 global,也不能直接访问 …

Oracle-Linux修改字符集

Oracle-修改字符集 连接查询字符集立即关闭数据库并终止所有用户会话开启挂载启用受限会话设置作业队列进程数为0设置 AQ 时间管理进程数为 0打开(Open)一个已经挂载(Mount)的数据库修改数据库字符集为AL32UTF8立即关闭数据库并终…

前端零基础入门,好程序员手把手教你!学会CSS语法规则!

今天来学习CSS语法规则,想要入门前端这一岗位,就必须得同时掌握有关于它的三门编程语言,分别是HTML、CSS以及javascript。这三门编程语言的语法各不相同,今天好程序员带大家来认识CSS语法规则。 想要学习一门编程语言,…

Linux4.9 Tomcat部署及优化

文章目录 计算机系统5G云计算第六章 LINUX Tomcat部署及优化一、Tomcat概述1.Tomcat核心组件2.什么是 servlet3.什么是 JSP4.Tomcat 功能组件结构5.Container 结构分析6.Tomcat 请求过程7. 配置文件 二、Tomcat 服务部署1.关闭防火墙,将安装 Tomcat 所需软件包传到/…