《深入解读GPT2:无监督多任务学习模型解析》

1. 论文阅读

论文地址:
Language Models are Unsupervised Multitask Learners

1.1 背景介绍

2019年OpenAI发布的模型,OpenAI在2018年的GPT1中给出了一种半监督的训练方法,在GPT2中针对如下问题做了升级:

  • 以前机器学习训练代价大,往往先要指定训练任务和高质量的标注数据集,且要保证训练数据和测试数据的分布相同,不同任务间无法复用;GPT2实现一个更通用的系统,支持多种NLP任务的学习,实现了Zero Shot。
  • 大模型训练往往需要海量数据,准备高质量的标注数据集明显是不现实的;GPT2中支持使用网上公开的无标注的数据进行训练。
1.2 方法实现

在GPT1的基础上,GPT2中在多种NLP任务表示、训练数据准备、输入表示、模型设计四个方面上进行了改进实现。

1.2.1 多种NLP任务表示

论文关注的核心是NLP的语言模型,对于一个指定的NLP任务来说是通过条件概率
p(output|input)
来获取输出;对于多任务学习来说,输出应该跟任务是相关的,即
p(output|input,task)
;参考论文【
Multitask Learning as Question Answering
】把多种NLP训练任务都变成了基于上下文的问答任务(Question-Answering-Over-Context)。例如翻译任务表示成
(translate to french, english text, french text)
,阅读理解任务表示成
(answer the question, document question, answer)

1.2.2 训练数据

使用了自己准备的WebText数据集,使用了
Dragnet

newspaper
内容提取器。总共有800万文档,共40GB的文本数据。

1.2.3 输入表示

输入表示采用了
BPE(Byte Pair Encoding)
算法进行tokenizer,这里没有直接使用Unicode做为基础的词表,因为Unicode共有超过130000个字符太多了,这里采用了字节粒度的BPE,初始词表有256个(2**8)。

1.2.4 模型设计

模型设计上是基于GPT1进行改造的,GPT1的结构是基于transformer decoder设计的。GPT2的结构如下:

GPT2跟GPT1相比不同的点在于以下几点:

  • 对于每个子block的输入都加上了layer norm,类似于resnet
  • 在self-attention的最后也加上一个额外的layer norm
  • residual层的权重初始化乘上了
    1/sqrt(N)

    N
    是residual的层数
  • 词表扩展到了50257个
  • 上下文的大小从512增加到了1024个token
  • batch size使用512大小

GPT2的不同网络结构的参数大小如下:

效果上zero-shot不用经过训练和finetune有些也可以达到SOTA:

2. 参考

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值