NLP预训练模型系列-GPT-2

NLP预训练模型




系列文章目录

1. BERT

2. GPT

3. GPT-2

4. GPT-3





前言

GPT-2论文的标题:《Language Models are Unsupervised Multitask Learners》

它声称语言模型是无监督多任务学习器。

1. 
Abstract

        首先摘要中讲到他们的语言模型在一个包含数百万网页的WebText数据集上没有任何显式监督的情况下进行学习。提到了语言模型的容量是零次学习任务成功的关键,且呈对数线性关系。他们的GPT-2模型是一个有1.5B(15亿)参数的Transformer,在zero-shot setting下,在8个任务中的7个任务上都取得的sota。

2. Introduction

        当前的机器学习对数据分布的微小变化脆弱而敏感,是狭隘的专家模型,而不是一个多面手。我们的目标是构建能执行很多任务的通用系统,最终不需要为每个任务创建和标准训练集。

        我们任务单任务,单领域任务的流行造成当前的机器学习系统缺乏泛化能力。而多任务学习是一个提升通用能力的很有前途的一个框架。但NLP中的多任务学习仍处于起步阶段,另一方面,当前的预训练和无监督微调的方式很流行,但仍需要监督训练。这篇工作连接这两个主线,证明语言模型可以在zero-shot setting下,不需要任何参数或架构修改执行下游任务,并取得相当不错的效果。






3. Approach

        方法的核心是language modeling,由于语言的自然序列顺序,通常将联合概率分解成条件概率的积:

        学习一个特定任务,可以表示成估计条件概率p(output|input),而一个通用系统应该能执行多个不同任务,所以应该建模p(output|input, task)

3.1 Training Dataset

        在Reddit上爬取的外链,构建了WebText数据集,包含了这4500万个链接的文字子集,移除了所有的Wikipedia文档,因为它是很多下游任务的数据源,这是为了避免数据集重叠而影响评估。

3.2 Input Representation

        一个通用的语言模型应该能够计算任何字符串的概率及生成字符串。当前的byte-level的LMs在大规模数据集如One Billion Word Benchmark上比不上word-level的LMs。

        Byte Pair Encoding是character-level和word-level语言建模的折中方案,它高效的在频繁符号序列的word-level输入和不频繁符号序列的character-level输入之间进行插值。使用BPE实现时,经常操作Unicode码位,而不是字节序列。这导致在添加多符号token前,基本词汇表就超过13万,这与BPE经常使用的32000到64000个token差距巨大,相比之下,byte-level version的BPE只需要256 vacab size。然后,直接将BPE应用于字节序列会导致次优合并,因为BPE使用基于贪婪频率的启发式方法来构建词汇表。我们发现BPE包括常见单词的许多版本,比如 dog.  dog!  dog?,这导致了有限词汇表大学和模型容量的次优搭配。为了防止这个,我们阻止BPE合并任何字节序列的字符类别。

        这种输入表示使得我们将word-level LMs的经验优势和byte-level方法的通用性结合起来。由于我们的方法可以为任何Unicode字符串分配一个概率,这使得我们能够在任何数据集上,不考虑预处理,分词和词汇表大小,就能评估我们的语言模型。

3.3 Model

Follow GPT, 使用Transformer Decoder,有些小的修改,将Layer Normalization一次每个sub-block的输入,类似于预激活残差网络,最后一个self-attention block之后加一个LN。使用了一个修正的初始化,考虑了残差路径岁模型深度的累积,将残差层的权重乘以1/ \sqrt{N}, N是残差层数。vocab size扩展到50257,将上下文大小从512增加到1024,batch size = 512。

4. Experiments 

模型超参数:

最小的模型和原始GPT相同大小,次小的模型和BERT最大模型相同,最大模型叫做GPT-2,比原始GPT参数量高一个数量级。

由于模型在字节级别上操作,不需要有损的预处理和分词,可在任何语言模型benchmark上评估。

GPT-2评估的任务包括:

  • LM:计算困惑度。
  • Children's Book Test:用于检查LM使在不同类别单词(命名实体,名词,动词,介词)上性能。
  • LAMBADA:测试模型对文本中的长期依赖关系的建模能力。
  • Wingrad Schema challenge:测试模型解决文本中歧义的能力来衡量模型的常识推理能力。
  • Reading Comprehension: Tne Conversation Question Answering dataset (CoQA)
  • Summarization: CNN, Daily Mail dataset
  • Translation:WMT-14 English-French test set
  • QA:SQUAD

评估结果: 

5. Generalization vs Memorization

这部分主要在分析多少的下游训练数据出现在预训练数据中,计算了每个任务的训练集中和WebText的8-grams的重叠比例。

6. Conclusion

当一个大学语言模型在足够大的多样化数据集上进行无监督训练,就能在很多领域数据集上执行任务。GPT-2取得了zero-shot setting下8个任务中7个sota的成绩。

GPT-2论文链接







总结

本文介绍了GPT-2模型,与GPT相比,GPT-2模型更大,有12到48层,最大的48层包含1542M的参数量。GPT-2主要测试是zero-shot setting下完成的,它具备强大的语言理解能力,同时也具备了一定的生成能力,测试的一些生成任务如摘要,翻译等已经超过了一些简单的baseline。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值