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
实验

相关内容

热门资讯

ip是安卓系统吗,通过IP地址... 你有没有想过,那个陪伴你每天刷剧、玩游戏、办公的IP,它是不是安卓系统呢?别急,今天就来揭开这个谜底...
安卓系统谁负责升级,揭秘幕后负... 你有没有想过,你的安卓手机为什么有时候会突然收到系统更新的通知呢?是不是好奇,是谁在背后默默地为你的...
安卓系统需要降级吗,安卓系统升... 你有没有发现,你的安卓手机最近有点儿“老态龙钟”了呢?运行速度慢吞吞的,有时候还卡个不停。这时候,你...
性价比手机安卓系统,盘点安卓系... 你有没有想过,在这个手机更新换代如此迅速的时代,如何用最少的钱,买到最满意的手机呢?没错,我要说的是...
虚拟大师安卓2.0系统,安卓新... 你有没有听说最近虚拟大师安卓2.0系统火得一塌糊涂?这可不是空穴来风,而是真的让不少手机用户都跃跃欲...
谷歌同步安卓10系统,智能体验... 你知道吗?最近谷歌又放大招了,安卓10系统正式上线啦!这可是个大新闻,咱们得好好聊聊。想象你的手机瞬...
米9安卓系统最高,小米9安卓系... 你有没有发现,最近你的手机是不是有点儿不给力了?别急,别急,让我来给你揭秘为什么你的小米9安卓系统最...
五菱安卓系统下载,开启智能出行... 你有没有听说最近五菱汽车也要玩儿高科技了?没错,就是那个我们平时在路上随处可见的“神车”——五菱宏光...
华为安卓6.0系统特点,创新与... 你知道吗?华为的安卓6.0系统最近可是火得一塌糊涂呢!作为一个紧跟科技潮流的数码达人,我必须得给你好...
安卓系统指令怎么用,或者根据标... 你有没有想过,你的安卓手机里那些神秘的系统指令其实就像是一把神奇的钥匙,能帮你解锁手机的各种隐藏功能...
最好用安卓系统排行,2023年... 你有没有想过,为什么安卓系统这么受欢迎呢?没错,就是那个几乎无处不在的操作系统。今天,就让我带你一起...
红辣椒刷安卓系统,深度解析与全... 你有没有想过,你的安卓手机里竟然也能装上红辣椒的系统?没错,就是那个让无数游戏玩家热血沸腾的红辣椒!...
surface 3跑安卓系统,... 你有没有想过,如果你的Surface 3也能跑安卓系统,那会是怎样的场景呢?想象你手中的平板瞬间变成...
安卓系统自带手机壁纸,探索安卓... 亲爱的手机控们,你是否曾好奇过,为什么你的安卓手机里会有那些精美的壁纸?今天,就让我带你一探究竟,揭...
安卓屏幕装鸿蒙系统,跨平台新体... 你知道吗?最近在手机圈子里,有个话题可是火得一塌糊涂,那就是——安卓屏幕装鸿蒙系统。是不是听起来有点...
安卓电视改造系统教程,轻松打造... 亲爱的电视迷们,你是否厌倦了安卓电视那千篇一律的系统界面?想要给它来个焕然一新的改造?别急,今天我就...
优品才子安卓系统,引领智能生活... 你知道吗?在手机操作系统界,最近可是掀起了一股“优品才子”安卓系统的热潮呢!这款系统不仅功能强大,而...
小米电视安装安卓系统,打造智能... 亲爱的读者们,你是否也像我一样,对小米电视的强大性能和智能体验情有独钟?但你是否知道,小米电视其实可...
安卓系统路由表,揭秘网络数据传... 你有没有想过,你的安卓手机里那些看似复杂的设置,其实背后隐藏着不少小秘密呢?比如,今天咱们就要来聊聊...
安卓系统的广告拦截,守护您的手... 你有没有发现,手机里的安卓系统越来越智能了,但随之而来的广告也越来越多,简直让人头疼不已。今天,就让...