目录

1. 论文简介

2. GPT与ELMO区别与联系.

3. 贡献或主要改进

3.1. Transformer 的半监督学习

why

how

3.2. 基于不同任务在fine-tuning阶段对GPT输入数据改造。

4. 其它

4.1. 为什么GPT可以并行,虽然它也是自回归语言模型(AR模型)


Paper:GPT: Improving Language Understandingby Generative Pre-Training

Code:GPT

1. 论文简介

GPT是“Generative Pre-Training”的简称,是指的生成式的预训练。GPT采用两阶段过程,第一个阶段是利用语言模型进行预训练,第二阶段通过Fine-tuning的模式解决下游任务。下图展示了GPT的预训练过程。

2. GPT与ELMO区别与联系.

(1)相同点:GPT和ELMO是类似的都是两阶段模型。
(2)不同点:首先,特征抽取器不是用的RNN,而是用的Transformer,它的特征抽取能力要强于RNN;其次,GPT的预训练虽然仍然是以语言模型作为目标任务,但是采用的是单向的

3. 贡献或主要改进

3.1. Transformer 的半监督学习

why

监督学习的问题,这里的监督学习是只用大量手动标记的数据去训练模型。

  • 大多数深度学习方法需要大量的手动标记的数据,但是其实我们是没有那么多的手动标记的数据,这限制了它们在许多受领域的适用性。
  • 一些可以利用无监督学习到语言信息,如果你利用手动标记的数据去学习。那么可能既耗时又昂贵
  • 即使在大量监督的情况下可用,以无监督的方式学习良好的表示可以提供一个重要的性能提升。迄今为止,最令人信服的证据是广泛使用预训练的词嵌入来提高一系列 NLP 任务的性能

how

我们采用两阶段训练方式。 首先,我们使用语言模型在未标记的数据来学习神经网络模型的初始参数。 随后,我们根据下游的有标记的数据对语言模型进行Fine-tuning.x

下图左一是Transformer模型结构图和右图是GPT模型

GPT整个过程如上右图所示,词向量(token embedding)和位置向量(position embedding)的和作为输入,经过12层的Masked Multi-Head Attention和Feed Forward(当然中间也包括Layer Norm),得到预测的向量和最后一个词的向量,最后一个词的词向量会作为后续fine-tuning的输入。

3.2. 基于不同任务在fine-tuning阶段对GPT输入数据改造。

(左)Transformer Decoder 架构和训练目标。 (右)输入用于微调不同任务的转换。 我们将所有结构化输入转换为令牌由我们的预训练模型处理的序列,然后是一个线性+softmax 层。

4. 其它

4.1. 为什么GPT可以并行,虽然它也是自回归语言模型(AR模型)

关键是在于这个Masked Self attention. 自回归是利用下面Masked的Self attention实现。

Masking的目的是确保左边得看不到右边的。比如下面这个图。横轴是Query,纵轴是Key. 空心的是Masked了值。

输入是1时,它什么也看不到,输入2时,它可以看到1.输入3时,它可以看到1,2. 依此类推,如果要实现,可以根据下面这个Masked self attention 实现。

1->2->3->4->5->6

这样就可以并行实现自回归了。不像RNN或LSTM这种串行方式实现自回归。

代码实现

import numpy as npdef test1():nd = 6ns = 6i = np.arange(nd)[:, None]j = np.arange(ns)m = i >= j - ns + ndprint(m)if __name__ == '__main__':test1()

输出结果

[[ True False False False False False][ True  True False False False False][ True  True  True False False False][ True  True  True  True False False][ True  True  True  True  True False][ True  True  True  True  True  True]]

其它

使用BPE (bytepaire encoding)

GPT(Improving Language Understandingby Generative Pre-Training) 论文笔记相关推荐

  1. Improving Language Understandingby Generative Pre-Training

    1 摘要 目前大多数深度学习方法依靠大量的人工标注信息,这限制了深度学习在很多领域的应用.此外,即使在可获得相当大的监督语料情况下,以无监督学习的方式学到的表示也可以让性能显著的提升.到目前为止,最引 ...

  2. ProGAN: Network Embedding via Proximity Generative Adversarial Network 论文笔记

    ProGAN: Network Embedding via Proximity Generative Adversarial Network 使用相似性生成对抗网络的网络嵌入 动机: 发现不同节点之间 ...

  3. Generative Adversarial Nets 论文笔记

    论文地址 Generative Adversarial Nets 摘要 首先,在论文中提出了一个新的框架:生成对抗网络框架,这个框架是为了通过对抗的过程实现评估生成模型. 处理过程中,我们同时训练两个 ...

  4. Semi-Supervised Semantic Segmentation with Cross-Consistency Training论文笔记

    文章标题:Semi-Supervised Semantic Segmentation with Cross-Consistency Training 文章地址:https://arxiv.org/ab ...

  5. 论文笔记--On the Sentence Embeddings from Pre-trained Language Models

    论文笔记--On the Sentence Embeddings from Pre-trained Language Models 1. 文章简介 2. 文章概括 3 文章重点技术 3.1 BERT模 ...

  6. Paper:GPT之《Improving Language Understanding by Generative Pre-Training》翻译与解读

    Paper:GPT之<Improving Language Understanding by Generative Pre-Training>翻译与解读 目录 GPT之<Improv ...

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

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

  8. 【GPT】Improving Language Understanding by Generative Pre-Training

    Paper Link: Improving Language Understanding by Generative Pre-Training GPT系列文章解读: [GPT2]Language Mo ...

  9. 论文阅读《Improving Language Understanding by Generative Pre-Training》

    论文地址:<Improving Language Understanding by Generative Pre-Training> 文章目录 论文介绍 相关工作 框架 预训练阶段 微调阶 ...

最新文章

  1. java框架三层架构是_MVC框架模式和Javaweb经典三层架构
  2. android java.nio.charset.MalformedInputException: Input length = 1
  3. java day01第一课java简介
  4. [转]Spring SpringMVC SpringBoot SpringCloud概念、关系及区别
  5. 详解linux下安装python3环境
  6. 【Python】Python实战从入门到精通之六 -- 教你读取文件
  7. linux进程被杀掉日志,Linux进程突然被杀掉(OOM killer),查看系统日志
  8. React Natvie Fetch工具类
  9. QQ浏览器该站点长时间无响应_消除CNZZ.站长统计代码被Chrome浏览器警告的操作...
  10. 【Java编程】模拟帐户存取和转账操作
  11. 仙侣情缘之麒麟劫java_《仙侣情缘之麒麟劫》详细流程攻略[多图]
  12. mysql 统计请假天数_sql查询员工请假详情——请假天数跨月问题
  13. 下载陷阱:软件带着病毒来
  14. 报告显示,疫情降低了人们的财务和社交幸福感
  15. 物料需求计划MRP(一)主生产计划
  16. 利用ARCHPR明文攻击对zip口令进行破解以及报错解决
  17. 2022届应届生办理落户上海流程是怎样的?
  18. win10系统自带截图工具快捷键
  19. C语言学习笔记13-文件
  20. .ttf字体文件引入vue项目及使用

热门文章

  1. 修改环境变量后,导致一些常用命令失效,如ll,ls,vi不能用
  2. C# 中? 和 ?? 在变量中的使用
  3. 2015 百度一面 总结记录
  4. cocos2dX之一——安卓环境搭建
  5. 谷歌 Chrome Dev Tools 浅析 – 成为更高效的 Developer
  6. 在web3上搭建ecshop网上商城
  7. HTMLParser使用举例
  8. 轻松搞定vmware + win2003Cluste
  9. HTTP 请求之性能优化:DNS预解析 dns-prefetch
  10. Nest入门教程 - 模块