阅读文献“Language Models are Unsupervised Multitask Learner”(GPT-2)

阅读文献“Language Models are Unsupervised Multitask Learner”(GPT-2)

Abstract

zero-shot:指在分类任务中没有A类的样本,只有B、C、D等类的样本,然后希望训练好的网络可以识别出A类。

one-shot:指的是训练集只有一个或少量样本。

GPT-2模型仍然是一个语言模型,但是在下游任务训练的时候,达到了一个zero-shot的设定,也就是下游任务的时候不需要有标注的数据进行训练。不需要训练模型。也就是这个模型在任何情况下都能用。

Intorduction

机器学习通过使用大数据集、高容量模型,有监督学习来完成训练任务。但是这些模型对于数据分布的轻微变化是非常敏感的。因此大部分模型都是使用在特定场合,有着比较狭窄的使用空间。

在单一的数据集上训练单一的任务的流行是导致现在的系统不具有普遍化性能的主要原因。现在模型的健壮性很可能就得益于在一个大范围的领域和任务上进行训练。

多任务学习是一个模型在多个数据集上同时训练,可能使用多个损失函数进行优化,最终达到一个模型在多个数据集上都能用的目的。

NLP领域表现最好的系统是一个预训练和有监督的微调的组合。这种方法有着向更灵活的转让形式的趋势。最刚开始是词向量被学习,然后作为特殊任务结构的输入,然后使用循环神经网络学习文本级特征。近几年的工作说明了,特殊任务结构是没必要的,使用许多的自注意力块很重要。

本片论文证明了语言模型能在zero-shot的情况下完成下游任务,并且不到有参数或者结构上的修改。这种方法展示了语言模型能够适应大范围任务的潜力。

Approach

由于要做zero-shot,因此不能够像GPT模型一样,引入一些模型没有见过的符号(开始符,间隔符什么的)。下游任务的输入应该和预训练的时候的输入长得一样。

方法核心是语言建模。就是条件概率:已知前n-1个词语,预测第n个词语。
p ( x ) = ∏ i = 1 n p ( s n ∣ s 1 , … , s n − 1 ) p(x)=\prod_{i=1}^np(s_n|s_1,\dots,s_{n-1}) p(x)=i=1np(sns1,,sn1)
对于一个单一的任务,可以表示为估计一个条件概率: p ( o u t p u t ∣ i n p u t ) p(output|input) p(outputinput)。而对于一个有着能够适应各种任务的系统来说,他的条件概率表示应该是: p ( o u t p u t ∣ i n p u t , t a s k ) p(output|input,task) p(outputinput,task)。任务条件被实现在一个架构级别,例如任务的在算法层级的编码和解码器,比如MAML结构的循环优化器。但是语言提供了一种更灵活的方式去说明任务、输入、输出:使用符号序列。例如翻译任务可以被写成这么一个序列:(translate to
french, english text, french text)。

Train Dataset

希望建立尽可能大和丰富的数据集为了收集自然语言任务的演示在尽可能多的不同的领域当中。

一个来源是使用爬虫爬取网站只做的数据集Common Crawl,但是该数据集的文本质量不是很高。另一个是有人使用这个数据集(Common Crawl)的那些与他们目标数据集相似的子数据集“ Winograd Schema Challenge”。这个方法确实能够提升表现,但是不利于本模型想要突出的普遍性。

本文创建了一个新的数据集,来源于网站爬虫,同时强调了文本的质量。

最终的数据集结果:WebText。

Input Representation

byte级别的语言模型与word级别的语言模型在性能上存在较大差距。

Byte Pair Encoding是介于byte级别和word级别之间的一个实用的中间方法。这种方法导致词库有点大。byte级别的BPE比较小,但是如果直接使用byte级别的BPE的话,又有它使用的是一个贪心算法(出现次数),因此将不会达到最优效果。

由于dog、dog. dog!这种的存在,导致模型容量和词汇表处于一个不是最优的状态。为了避免这些,实验中阻止了BPE和标点符号目录融合。并且添加了额外的空格,这样能够有效提升压缩效率。

Model

本模型使用了以Transformer为基础的结构,细节上是在GPT模型的基础上进行了一些修改。Layer normalization(标准化)移动到了每个sub-block的输入之前。并且添加标准化层到最终的自注意力块之后

在初始化的时候,规范了一些残差层的权重,通过乘以一个 1 N \frac{1}{\sqrt{N}} N 1,这个N是残差层的数量,用了更大的词表,用了更大的文本,用了更大的batchsize。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GPT-NeoX是一个基于Deepspeed库的GPU上的类似于GPT-3的模型并行模型。该模型是由EleutherAI团队在2021年提出的。它采用的是大规模分布式训练的方式,使得模型可以处理更大规模的数据集,具有更强的泛化能力。 相比于传统的模型训练方式,GPT-NeoX采用Deepspeed库实现了模型并行训练,实现了多卡训练和多节点训练,从而更好地利用GPU资源加速模型的训练速度。此外,GPT-NeoX还引入了一些新的优化技术,如局部梯度累积和梯度Chip-Level Pruning,进一步提高了模型的训练效率和性能。 GPT-NeoX的另一个特点是它采用了与GPT-3类似的Transformer结构,可以处理各种NLP任务,如文本生成、问答系统、机器翻译、情感分析等。GPT-NeoX还提供了基于一种新型的自监督训练方式的Unsupervised Pretraining功能,可以在没有标注数据的情况下对模型进行预训练,从而更好地适应各种NLP任务。 总之,GPT-NeoX是一款基于Deepspeed库的GPU上的类似于GPT-3的模型并行模型,采用多卡和多节点训练的方式,实现了更高效的模型训练。同时,它还具有与GPT-3类似的Transformer结构和Unsupervised Pretraining功能,适用于各种NLP任务。 ### 回答2: GPT-NeoX是一个基于Deepspeed库的GPU上的类似于GPT-3的模型并行模。该模型采用了分布式训练的技术,使得大规模的预训练模型的训练成为可能。 GPT-3模型是当前自然语言处理领域中最先进的模型之一,但是在模型规模扩大后,面临着训练时间长,并且需要大量计算资源的问题。为了解决这个问题,GPT-NeoX使用了Deepspeed库,通过将模型划分成多个微迭代,实现了模型的分布式训练。 在GPT-NeoX模型中,微迭代的数量决定了模型的分布式训练的程度。越多的微迭代数表示模型的分布式训练程度越高,但同时也会增加训练的时间。因此,在GPT-NeoX模型的设计中,需要根据模型的规模选择适当的微迭代数,以充分利用计算资源,同时保证训练时间不过长。 通过使用Deepspeed库,GPT-NeoX模型不仅实现了大规模预训练模型的训练,也获得了很好的训练效果。这证明了分布式训练对于提高模型性能和训练效率的重要性。未来,GPT-NeoX模型的研究还将继续深入探索并发控制算法及单机扩展策略的优化,这些工作将进一步提高分布式训练的效率及模型的性能。 ### 回答3: GPT-NEOX是一种基于Deepspeed库的GPU上的类似于GPT-3的模型并行模型。这个模型的目标是让机器能够像人一样生成自然语言,使得机器能够自动地产生文本和对话,而这一过程是通过机器学习算法实现的。 GPT-NEOX采用了一种全新的架构,利用并行算法使得模型训练的速度更加的快捷和高效。同时,为了更好地提升模型的性能,GPT-NEOX在模型更新和内存使用方面也进行了优化,使得模型的训练和应用更加稳定。 GPT-NEOX的设计理念是通过模型并行来增加计算资源,提高模型的计算速度和效率。它与GPT-3一样,使用了大量的参数和数据来训练,并有着相似的自然语言处理技术,但它也进行了一些改进,例如采用了不同的架构和算法。 GPT-NEOX的模型精度和应用性能已经有了很大的提升,同时也得到了广泛的应用和推广。我们相信,在未来的日子里,GPT-NEOX还会继续深入研究和优化,成为更加高效、精准和可靠的自然语言处理算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值