论文笔记GPT-2--Language Models are Unsupervised Multitask Learners
- 1. 文章简介
- 2. 文章导读
- 2.1 概括
- 2.2 文章重点技术
- 2.2.1 数据集WebText
- 2.2.2 分词方法
- 3. GPT-1 & GPT-2
- 4. 文章亮点
- 5. 原文传送门
- 6. References
1. 文章简介
- 标题:Language Models are Unsupervised Multitask Learners
- 作者:Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever
- 日期:2019
- 期刊:OpenAI blog
2. 文章导读
2.1 概括
文章在GPT-1[1][2]的基础上进一步提升了模型的量级和分词方法,使得在完全没有fine-tune的情况下模型在多个下游任务表现良好。
2.2 文章重点技术
2.2.1 数据集WebText
文章认为当数据集足够大的时候,模型的泛化能力可以得到增强,同时具备处理很多种下游任务的能力。为了获得较大的数据集,文章从网页抓取语料库。但使用网页语料库的一个问题就是网页数据质量参差不齐,为此文章首先从Reddit网站获取所有karma至少为3分的外部链接(karma分数类似于用户得分,得分越高表示质量越高),然后在这些链接指引的网页进行爬取得到文本数据库WebText。
WebText数据集包含45百万个链接网址,文章对这些网页进行了预处理:首先移除2017年12月之前的数据,然后做了网页驱虫,再进行一些启发式的清洗方法。最后得到的数据集大小为:8百万文档,共计40GB。
2.2.2 分词方法
一种常用的分词方法为BPE(Byte Pair Encoding)[3]。该方法是一种字符压缩方法,在Bert等预训练模型的分词阶段均起到重要作用。本文在其基础上进行了演化:以字节为单位进行BPE编码,故词表大小最多为256,从而大幅降低可能的编码模式个数。此外为了防止模型将"dog", “dog?”, "dog!"等作为一个BPE组合,我们限制BPE只能在同类字符之间(比如’dog‘和‘?’不能合并)。
基于字节的BPE方法是GPT-2成功的一个重要技术点。一个体现在于文章在训练阶段移除了非英文网页之后,仍能处理翻译任务。
3. GPT-1 & GPT-2
- GPT-2模型要超过GPT-1模型一个量级
- GPT-2模型采用了byte-level BPE
- GPT-2模型无需微调可直接无监督的处理下游任务
- GPT-2对模型架构进行微调,将LN层移至每个子模块的输入部分,且在每个注意力机制后面增加了一个额外的LN层;此外GPT-2对残差层做了正则化,即将残差层的权重除以 N \sqrt{N} N,其中 N N N为残差层的数量;词表扩大为1024,最大token数量从512扩大到1024,训练的batch_size增大到512。
4. 文章亮点
文章提出了一种基于字节的BPE编码方法,在大规模网页数据集上面进行训练得到了一个可以适应处理机器翻译、实体提取、文本摘要、问答等NLP任务的大语言模型。值得一提的是,GPT-2在经过预处理的语料库上面测试效果并不理想,这很可能是由于byte-level BPE的关系。文章的数值实验表明,一个足够大的语言模型可以适用于多种数据集上的多种NLP任务。
5. 原文传送门
Language Models are Unsupervised Multitask Learners
6. References
[1] Improving Language Understanding by Generative Pre-Training
[2] GPT-1文章阅读
[3] BPE详解