阅读文献“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=1np(sn∣s1,…,sn−1)p(x)=\prod_{i=1}^np(s_n|s_1,\dots,s_{n-1}) p(x)=i=1∏n​p(sn​∣s1​,…,sn−1​)
对于一个单一的任务,可以表示为估计一个条件概率:p(output∣input)p(output|input)p(output∣input)。而对于一个有着能够适应各种任务的系统来说,他的条件概率表示应该是:p(output∣input,task)p(output|input,task)p(output∣input,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的输入之前。并且添加标准化层到最终的自注意力块之后

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

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

  1. GPT2.0 Language Models are Unsupervised Multitask Learners 论文解读

    转载请注明出处,原文地址 本文是对<Language Models are Unsupervised Multitask Learners>的翻译,部分内容可能会存在理解错误,如有错误欢迎 ...

  2. Language Models are Unsupervised Multitask Learners 论文纪要

    本文是完整读过GPT-2 paper之后记录下来的觉得重要的地方,其中大部分摘自paper原文,有用中文部分记录自己读paper时想到的东西以及不懂的地方,求指教! 读GPT-2 paper之前可以作 ...

  3. Language Models are Unsupervised Multitask Learners 笔记

    语言模型是无监督的多任务学习者 摘要 自然语言处理任务,如问题回答.机器翻译.阅读理解和总结,通常是通过任务特定数据集上的监督学习来完成的.我们证明,当语言模型在一个称为WebText的数百万网页的新 ...

  4. 文献阅读:Scaling Instruction-Finetuned Language Models

    文献阅读:Scaling Instruction-Finetuned Language Models 1. 文章简介 2. 实验 1. 数据集 & 模型 1. 数据集考察 2. 使用模型 2. ...

  5. [论文阅读]InstructGPT(Training language models to follow instructions with human feedback)

    论文地址 https://arxiv.org/pdf/2203.02155.pdf 论文简介 语言模型(language models)越大并不意味着它能更好地理解用户的意图. 例如,大型语言模型生成 ...

  6. 阅读文献:“Improving Language Understanding by Generative Pre-Training”(GPT模型)

    阅读文献:"Improving Language Understanding by Generative Pre-Training" Introduction 从原始文本中有效学习 ...

  7. 论文阅读9-Fine-tuning Pre-Trained Transformer Language Models to(远程监督关系抽取,ACL2019,GPT,长尾关系,DISTRE)

    文章目录 abstrac 1.Introduction 2 Transformer Language Model 2.1 Transformer-Decoder 2.2 Unsupervised Pr ...

  8. 【论文阅读】Finetuned Language Models Are Zero-Shot Learners

    文章目录 前言 Abstract 1.Introduction 2.FLAN:Instruction Tuning Improves Zero-shot Learning 2.1.Tasks & ...

  9. 【综述阅读】Pre-trained Language Models for Text Generation: A Survey

    Pre-trained Language Models for Text Generation: A Survey 中国人民大学 IJCAI 2021 论文链接:https://arxiv.org/p ...

最新文章

  1. 运用vue.js写的表格小demo
  2. 搜索引擎利用机器学习排序
  3. python 手机测试_python脚本如何测试手机
  4. CGCTF-Web-md5 collision
  5. css3点击会移动到点,CSS3过渡点击事件
  6. docker 安装mongodb集群,多台服务器
  7. 【训练计划】ACM题集以及各种总结大全
  8. diybox路由器设置教程_家庭无线路由器怎么设置 家庭无线路由器设置教程【详细方法】...
  9. c/c++教程 - 2.2 引用的使用方法,引用做函数参数,引用做返回值,引用的本质,常量引用
  10. Spark的Shuffle过程介绍
  11. html字体样式圆体,网红字体“柚圆体”出现,书写工整又清新,老师也被这种字体圈粉...
  12. Chrome浏览器安装Axure插件
  13. bios 昂达h61c_Onda昂达主板BIOS,ONDA昂达H61N全固版(ver 3.00)主板BIOS 3.02版,主板BIOS,硬件驱动下载...
  14. BFS算法 (python)
  15. Excel快速拆分单元格内容
  16. 机器学习|切比雪夫、辛钦和贝努里大数定律|15mins入门|概统学习笔记(十四)
  17. 牛客网暑期ACM多校训练营(第六场) C.Generation I (思维+逆元+组合数学)
  18. 运维工程师 常见的 trouble shooting 故障排错思路
  19. WIN7环境下debug的使用
  20. centos搭建视频服务器--搭建http服务器

热门文章

  1. C++ gstreamer函数使用总结
  2. c++调用flash播放器
  3. 易语言底层 c6,易语言多线程API模块综合应用
  4. Cholesky分解—概率密度分布及累计概率分布(完整代码分享)
  5. Linux qt shell脚本,QT执行shell脚本或者执行linux指令
  6. 打造自己的LoRaWAN网关,进阶1:构建软件
  7. java解析json文件并保存到mysql数据库
  8. PNAS:全脑神经元和神经递质系统的动态耦合
  9. 通过JS方式实现隐藏手机号码中间4位数
  10. 手机号码中间隐藏四位