GPT-2:无监督多任务学习语言模型
创始人
2024-06-01 12:41:34
0

论文标题:Language Models are Unsupervised Multitask Learners

论文链接:https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf

论文来源:OpenAI

一、概述

机器学习系统现在通过使用大型数据集、高容量模型和监督学习的组合,在任务中表现出色。然而这些系统很脆弱,对数据分布和任务规范的微小变化很敏感。目前的机器学习系统更像一个狭隘的专家而非合格的通用人才。我们希望转向更通用的系统,可以执行许多任务,最终不需要为每个任务手动创建和标注训练数据集。建立机器学习系统的主要流程是为想要执行的任务训练数据来表现特定的行为,然后训练一个系统来模仿这些行为,并且在独立同分布的测试集上测试性能。这样的模式在特定场景效果的确不错,但是对于一些特定的任务(如描述模型、阅读理解、图像分类等)来说,输入的多样性和不确定性就会把缺点给暴露出来。

我们怀疑,单一领域数据集上单一任务训练的流行是当前系统中观察到的缺乏泛化性的主要原因。在当前体系结构下,向鲁棒系统的进展可能需要在广泛的领域和任务上进行训练和评估性能。最近GLUE和decaNLP这些benchmark数据集被提出以研究这一点。多任务学习是一种提升泛化性能的很有前景的框架。然而在NLP领域多任务训练才刚刚起步。最近的两项研究分别在10个和17个(dataset, objective)对上进行训练。从元学习的视角来看,每个(dataset, objective)对都是从数据集和目标函数的分布中采样出来的单个训练样本。然而目前的机器学习系统需要成本上千个样本才能获得较好的泛化性能。多任务训练可能需要同样数量的有效训练对来达成目标。使用当前的技术,要继续扩展数据集的创建和目标设计的规模,以强制实现这一点将非常困难。因此,需要探索其他方式来执行多任务学习。

目前最优的自然语言处理系统采用预训练加有监督微调的框架。这一类的方法为了执行特定的任务仍然需要监督训练。当只有很少或者没有监督数据可用时,另一类的方法为语言模型执行特定任务展现了可观的前景,比如常识推理(commonsense reasoning)和情感分析(sentiment analysis)。在本文中,我们将这两类工作联系起来,并继续采用更通用的迁移方法。我们展示了语言模型可以在zero-shot设置下执行下游任务——无需任何参数或架构修改。我们通过强调语言模型在zero-shot设置下执行广泛任务的能力,证明了这种方法的潜力。本文的GPT-2在多个任务上取得了可观的结果。

二、方法

  1. 主要思想

GPT-2的核心是语言建模。语言建模通常是基于一组样本上的无监督分布估计,每个样本也就是一个变长的符号序列。由于语言序列具有天然的顺序,因此很自然地可以将符号序列的联合概率建模成条件概率的乘积:

❝❞

这种方法允许对以及任何这样形式的条件概率进行易于处理的抽样和估计。近年来,可以计算这些条件概率的模型的表达能力有了显著的改进,例如Transformer这样的自注意架构。

学习执行单个任务可以在概率的框架中表示为估计条件分布。由于一个通用的系统应该能够执行许多不同的任务,即使对于相同的输入,它不仅应该以输入为条件,而且还应以要执行的任务为条件,也就是说应该要建模。这在多任务和元学习的形式中广泛应用。任务条件化通常可以在模型架构层面上实现,比如采用特定于任务的encoder和decoder,或者也可在算法的层面上实现,比如MAML的内外循环优化框架。不过在语言领域,正如McCann等人(2018)所示,语言提供了一种灵活的方式来将任务、输入和输出特别表示为符号序列。举例来说,一个翻译训练样本可以被写作序列(translate to french, english text, french text),一个阅读理解训练样本可以被写作序列(answer the question, document, question, answer)。McCann等人认为可以训练一个单独的模型(也就是MQAN)在这种格式的样本上推断和执行多种不同的任务。

原则上,语言建模也能够学习McCann等人(2018)的任务,而不需要明确监督哪些符号是要预测的输出。由于监督目标与无监督目标相同,监督任务只是在序列的子集上进行测试,无监督目标的全局最小值也是监督目标的全局最小值。这意味着,如果我们可以在无监督目标函数下找到全局最小值,那么监督目标函数也会得到优化。在这种简要的设置中,对密度估计作为一个合理的训练目标的关注是被回避的。这个问题转而变成了我们能否在实践中将无监督的目标函数优化到收敛。初步的实验证实,足够大的语言模型能够在这种toy-ish的设置下执行多任务学习,但学习速度比显式监督的方法要慢得多。

从精心设计的实验设置转向从“混乱”的自然语言中学习是很大的一步。Weston(2016)认为在对话的背景下需要开发能够直接从自然语言中学习的系统,并证明了一种概念——通过对teacher模型的输出进行前向预测来学习问答任务,而不需要奖励信号。问答任务虽然是种有吸引力的方法,但是本文认为这会受到一些限制,主要是因为互联网中的大量信息只需要被动获取,而非需要(像问答任务一样)互动交流。作者的推测是,一个具有足够容量的语言模型将开始学习推断和执行自然语言序列中展示的任务,以更好地预测它们,而不管它们的获取方法如何,下图是GPT-2训练语料中的一些翻译任务的自然语言演示。如果一个语言模型能够做到这一点,它将实际上执行无监督的多任务学习。作者通过分析语言模型在zero-shot设置下的表现来测试这个想法的可行性。

3c1fb4ec1225ebced34fa88f86f0bb44.png
自然语言演示
  1. 训练数据集

大多数先前的研究在一个域的文本上训练语言模型比如新闻文章、维基百科、小说类书籍等。我们的方法促使构建尽可能大且多样化的数据集,以便在尽可能多的领域和上下文中收集任务的自然语言演示。本文利用网络爬虫来构建大规模的训练文本数据,然而常规的不加筛选的爬取方式将会导致数据集面临严重的文档质量问题。因此本文采用一种新的强调文档质量的网络爬取方式。为了做到这一点,我们只抓取了由人类策划/过滤的网页。我们从社交媒体平台Reddit抓取了所有的出站链接,每个链接至少得到3个karma(Reddit平台通过被点赞获得的分数)。这可以被认为是一种启发式指标,用于判断其他用户是否认为该链接有趣、有教育意义或只是好笑。通过这种方式本文构建了WebText数据集,其包含这样的4500万个链接的文本子集。本文使用初步版本的WebText,它包含超过800万份文档,总文本量为40GB。

  1. 输入表示

通用语言模型应该能够计算任何字符串的概率或者生成任何字符串。目前大规模的语言模型包括一些预处理步骤,如小写、token化和out-of-vocabulary token的处理,这些步骤限制了可建模字符串的空间。将Unicode字符串处理成UTF-8字符序列可以满足这个需求,然而目前的研究表明字符级的语言模型相比与word级的语言模型并没有竞争力,本文在实验中也观察到了这一点。

Byte Pair Encoding (BPE)是一种实际上介于字符和word级别语言建模之间的方法,它有效地插值了频繁出现的符号序列的word级别输入和不频繁出现的符号序列的字符级别输入。然而,BPE的实现通常是基于Unicode编码点而不是字节序列的,这要求包括Unicode的全部符号才能建模所有的Unicode字符串。这会导致一个超过130,000的基本词汇表(不包括多符号token),与BPE通常使用的32,000到64,000令牌词汇表相比,这是无法承受的。如果采用字符级别的BPE版本,它只需要大小为256的基本词汇表。然而,直接将BPE应用于字符序列会导致合并效果不佳,因为BPE使用一种贪心的基于频率的启发式算法来构建token词汇表。作者发现BPE包括了许多常见单词的多个版本,比如dog.、dog!、dog?等,这会导致有限的词汇槽和模型容量的分配不够优化。为了避免这种情况,作者防止BPE在任何字节序列中跨字符类别(dog和.!?属于不同的字符类别)合并。他们为空格添加了一个例外,这显著提高了压缩效率,同时只对多个词汇token中的单词进行了最小的分段处理。

这种输入表示允许我们将词级语言模型的好处与字符级方法的一般性结合起来。由于我们的方法可以为任何Unicode字符串计算概率,这允许我们在任何数据集上评估,而不管预处理、token化或词汇表大小。

  1. 模型

GPT-2的模型与GPT差不多,只是做了一些修改。Layer normalization被转移到每个sub-block的输入上,并且在最后一个自注意力block后添加一个layer normalization。采用一种改进的初始化方法,该方法考虑了残差路径与模型深度的累积。在初始化时将残差层的权重按的因子进行缩放,其中是残差层的数量。词汇表扩大到50,257。我们还将上下文大小从512增加到1024个token,并使用512的更大的batchsize。

三、实验

  1. 模型大小

GPT-2主要包括四个size的模型:

58623576ee26cd94e7fefdf1bb2913bd.png
模型大小
  1. 主要实验结果

GPT-2在多个数据集上的zero-shot实验性能:

de66df8059a901271090d99f852f023d.png
实验
  1. 其他实验

Children’s Book Test数据集上性能与模型容量的关系:

d8f06e9905e08fae137d2334994a9ffb.png
实验

Winograd Schema challenge实验性能与模型容量的关系:

e51d2469780401d85f75c9280eab10fa.png
实验

Summarization实验:

f1a6e05b87c5b5f33d3e75e3a9ca9985.png
实验

问答实验的前30个信心分数最高的回答:

3ba6d88c7671d19fc105f9df4c77b51f.png
实验

为了分析模型是在泛化还是记忆,调研了数据集直接的重复比例:

c8b2f48fe9e4fd86a4d12a2973d5c8bd.png
实验

WebText上的性能,下图表明即使是最大size的GPT-2对于WebText数据集仍然是欠拟合的:

52c38ce57e6151dd9be1a7b8feff0a75.png
实验

相关内容

热门资讯

安卓系统app和ios系统的区... 你有没有发现,手机里的APP就像是个大杂烩,各有各的特色,各有各的玩法。今天,咱们就来聊聊安卓系统和...
宿迁综合办公系统安卓,便捷高效... 你有没有听说最近宿迁市推出了一款超级方便的安卓应用——宿迁综合办公系统?这可是个大新闻,让我来给你详...
小米平板4系统安卓下载,畅享智... 亲爱的数码爱好者们,你是否在寻找一款性价比超高、性能稳定的平板电脑呢?小米平板4绝对是你的不二之选!...
安卓系统易用性盘点,人性化设计... 你有没有发现,手机里的安卓系统就像一个万能的小助手,无论你是喜欢玩游戏、看视频,还是处理工作,它都能...
鸿蒙系统中出现安卓代码 鸿蒙系统中的安卓代码奇缘在当今科技飞速发展的时代,智能手机已经成为了我们生活中不可或缺的一部分。而在...
安卓系统的双开免费的,免费畅享... 《探索安卓系统的双开免费新世界》在数字化时代,智能手机已经成为我们生活中不可或缺的一部分。而在这众多...
转国外的安卓系统,探索国外安卓... 你有没有想过,让你的安卓手机体验一下国外的风味呢?想象那些国外的应用、游戏,还有那独特的系统设置,是...
安卓系统韩国能用吗,兼容性与使... 你有没有想过,如果你去韩国旅游或者工作,你的安卓手机还能不能用呢?这个问题可真是让人好奇啊!毕竟,每...
安卓手机系统占多少储存 你有没有发现,你的安卓手机越来越慢了?是不是觉得存储空间不够用,连个新应用都装不下?别急,今天就来给...
freemeos是安卓系统吗,... 你有没有听说过freemeOS这个系统?是不是好奇它是不是安卓系统呢?今天,我就来给你揭秘这个神秘的...
安卓系统其他应用耗电大,那些默... 手机电量总是不够用?是不是觉得安卓系统的其他应用耗电特别大?别急,今天就来给你揭秘这个谜团,让你手机...
华为os系统怎么换安卓系统,轻... 你有没有想过,你的华为手机里那个自家的OS系统,突然间想换换口味,试试安卓的精彩世界呢?别急,今天就...
诺基亚回用安卓系统吗,新篇章的... 你有没有听说最近的大消息?诺基亚,那个曾经手机界的巨头,竟然有可能会重新启用安卓系统!这可不是开玩笑...
安卓软件开发考勤系统 你有没有想过,在忙碌的安卓软件开发工作中,如何轻松管理团队考勤呢?别急,今天就来给你揭秘一款特别实用...
炉石传说安卓系统要求,解锁全新... 亲爱的玩家们,你是否已经迫不及待地想要在安卓设备上畅玩《炉石传说》了呢?别急,在这之前,你得先确保你...
安卓手机刷掌阅系统 你有没有想过,你的安卓手机可以变成一个掌阅小能手呢?没错,就是那种随时随地都能畅读各种电子书的掌阅系...
飞车手游ios系统跟安卓系统,... 你有没有发现,最近手机上的一款飞车手游特别火呢?这款游戏不仅画面精美,操作流畅,而且玩法多样,吸引了...
安卓平板显示系统不兼容,安卓平... 你有没有遇到过这种情况?买了一款心仪的安卓平板,满怀期待地想要体验各种精彩应用,结果却发现有些应用显...
安卓系统安装破解app病毒,安... 你知道吗?在安卓系统上安装破解版的APP,听起来是不是有点刺激?但别高兴得太早,这背后可是隐藏着不少...
安卓版桌面操作系统,探索安卓桌... 你有没有想过,你的安卓手机桌面操作系统,其实就像是一个小小的魔法世界呢?在这个世界里,你可以随意布置...