GPT-2

GPT2

  • 介绍
  • 方式
    • 训练数据集
    • 输入表征
    • 模型
  • 实验

Language Models are Unsupervised Multitask Learners

介绍

问题提出主要是为了解决现阶段深度学习模型针对某一特定任务的局限性,并且大多数模型对于数据分布较为敏感。多任务学习是解决泛化性的方式之一,但是也需要大范围针对性的数据和精妙的任务设计。

预训练+微调的方式已经有很长的历史了,用词向量以及RNN中的隐向量。最近的研究表明,设计特定的结构也不是必须的,多个self-attention模块就已经能满足需求。

本篇论文联系多任务学习和无监督学习,在没有训练集样本的情况下执行一些下游任务。

方式

语言建模是我们方法的核心,因为自然语言具有连续性,因此我们用联合概率分布
在这里插入图片描述
近些年在模型表达上有显著提升,例如Transformer
在单任务上学习表达可以用 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)。具体任务通常有具体的encoder和decoder设计。但是语言可以提供一种灵活的任务方式,也就是将具体任务添加到语言序列中。例如翻译任务可以是{translate to french, english text, french text},阅读任务就可以是{answer the question, document, question, answer}。

无监督和有监督学习的目标是一致的,但是有监督学习只能在子集上验证,而无监督学习的收敛速度太慢。
(这一段没太明白)
但是从规范设计到自然语言是一个巨大的进展,在对话内容中,能从自然语言中直接学习并展示了一个概念的证据:通过一个前向教师输出学习一个QA系统不需要奖励信号。对话通常是一个吸引人的方式,我们担心他过于严格。我们推测拥有充足能力的语言模型能够开始去推断和执行那些自然语言序列的任务(为了预测他们)

训练数据集

网络爬虫,并进行了人工过滤,选取了评分超过3的链接,表明这些链接是有用的,并且移除了部分维基百科的内容,防止训练集和测试集有重复

输入表征

现在的LM大多数需要处理大小写等等格式问题,因此采用utf编码可以优雅地解决这个问题。‘
BPE(Byte Pair Encoding)是介于字符级别(原unicode字符)和单词级别之间的语言模型,实际上BPE是在unicode字符上进行操作(字节是指utf8编码),BPE用贪心算法构建字节表,而。。。。(也不懂)

模型

模型采用transformer结构,在每一层开始的layernorm被移除,最后添加一个layernorm。初始化权重将剩余层的权值乘以 1 / n 1/\sqrt{n} 1/n ,n是残差层的数量,词典被扩展到了50257,context的维度从512提高到了1024并且batchsize采用了512。

实验

四种结构的GPT2
GPT-2_第1张图片
其中,最小的等于GPT,因为我们是基于字节级别的模型,不需要对数据进行预处理或者分词,因此可以直接在各种benchmark上进行测试。

参考文献
[1] Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners[J]. OpenAI blog, 2019, 1(8): 9.

你可能感兴趣的:(NLP,深度学习,人工智能)