Transformer

首先看一下trasformer结构

简单回顾一下,encoder将token编码处理,得到embedding.然后送入decoder。decoder的input是前一个时间点产生的output。

Masked Multi-Head Attention,Masked的意思是,在做self-attention的时候,这个decoder只会attend到已经产生的sequence(这个sequence长度和encoder的输出长度不一样),因为没有产生的部分无法做attention

一个有趣的动画:

Encode:所有word两两之间做attention,有三个attention layer

Decode:不只 attend input 也会attend 之前已经输出的部分

损失函数:

Q&A

q1:decoder的输入长度为什么和encoder的不一样,decoder的输入是什么?

训练时是GT+Positional Embedding。没有Positional Embedding的Attention mask只能做到看到当前位置之前的所有信息,而做不到有序

预测时是(1)起始符以及后续。

以问答为例,训练阶段我是知道decoder最终输出是“I am fine”,所以decoder的【输入】在训练阶段分别为(1)起始符(2)起始符+I(3)起始符+I+am(4)起始符+I+am+fine,因为我们知道正确的最终输出是什么,所以这4个阶段是可以并行执行的.

但是预测阶段,我们是不知道decoder的输出的,所以我们只能decoder的输入只能逐步进行(1)起始符(2)起始符+decoder预测单词1(3)起始符+decoder预测单词1+decoder预测单词2…,这样

BERT

结构:

BERT只使用了transformer的encoder部分.

input: token embedding +segment embedding + position embedding

会将输入的自然语言句子通过WordPiece embeddings来转化为token序列。之所以会有segment embedding是因为bert会做NSP(next sentense prediction)任务,判断两个句子间的关系,需要sentense级别的信息

output:为预测这些被遮盖掉的token,被mask掉的词将会被输入到一个softmax分类器中,分类器输出的维度对应词典的大小。

方法:

AE:auto encoder

损失函数为:负对数似然函数 + 二分类损失函数

具体的损失函数参看BERT损失函数

Q&A

q1:BERT怎么实现双向的:

对比GPT,BERT使用了双向self-attention架构,而GPT使用的是受限的self-attention, 即限制每个token只能attend到其左边的token。

为了能够双向地训练语言模型,BERT的做法是简单地随机mask掉一定比例的输入token(这些token被替换成[MASK]这个特殊token),然后

GPT

GPT 预训练的方式和传统的语言模型一样,通过上文,预测下一个单词;GPT 预训练的方式是使用 Mask LM。

例如给定一个句子 [u1, u2, …, un],GPT 在预测单词 ui 的时候只会利用 [u1, u2, …, u(i-1)] 的信息,而 BERT 会同时利用 [u1, u2, …, u(i-1), u(i+1), …, un] 的信息

结构

GPT只使用了transformer的decoder部分,并去掉了第二个multi self attention layer

方法:

AR:auto regressive

损失函数为:给定一个无标签的序列 u = { u 1 , u 2 , ⋯ u i } u= \{u_1, u_2 , \cdots u_i \} u={u1,u2,ui},语言模型的优化目标是最大化下面的似然值:
L 1 ( U ) = ∑ i log ⁡ P ( u i ∣ u i − k , … , u i − 1 ; Θ ) L_{1}(\mathcal{U})=\sum_{i} \log P\left(u_{i} \mid u_{i-k}, \ldots, u_{i-1} ; \Theta\right) L1(U)=ilogP(uiuik,,ui1;Θ)

Q&A

q1:GPT是一个单词一个单词的预测概率嘛?

是的。

Transformer、Bert、GPT简介相关推荐

  1. transformer bert GPT(未完)

    原文标题:⼤规模⽆监督预训练语⾔模型与应⽤(中) 文章目录 1 transformer 1.1 encoder部分 1.1.1 Attention定义 1.1.2 Multi-head Attenti ...

  2. 快速串联 RNN / LSTM / Attention / transformer / BERT / GPT

    参考: 李宏毅2021/2022春机器学习课程 王树森 RNN & Transformer 教程 Transformer 详解 文章目录 0. 背景:序列数据及相关任务 1. 早期序列模型 1 ...

  3. 【莫烦Python】机器要说话 NLP 自然语言处理教程 W2V Transformer BERT Seq2Seq GPT 笔记

    [莫烦Python]机器要说话 NLP 自然语言处理教程 W2V Transformer BERT Seq2Seq GPT 笔记 教程与代码地址 P1 NLP行业大佬采访 P2 NLP简介 P3 1. ...

  4. 让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer

    让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer implement Transformer Model by Tensor flow Keras i ...

  5. 热门的模型跨界,Transformer、GPT做CV任务一文大盘点

    作者|陈萍 来源|机器之心 可能大家心里都有一种错误认知,做自然语言处理任务的模型不能够用来进行计算机视觉任务.其实不然,现阶段已出现好多研究,它们通过算法的改进,将在 NLP 领域表现良好的模型,如 ...

  6. bert模型简介、transformers中bert模型源码阅读、分类任务实战和难点总结

    bert模型简介.transformers中bert模型源码阅读.分类任务实战和难点总结:https://blog.csdn.net/HUSTHY/article/details/105882989 ...

  7. 【李宏毅2020 ML/DL】P25 ELMO, BERT, GPT

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  8. 【自然语言处理】BERT GPT

    BERT & GPT 近年来,随着大规模预训练语言模型的发展,自然语言处理领域发生了巨大变革.BERT 和 GPT 是其中最流行且最有影响力的两种模型.在本篇博客中,我们将讨论 BERT 和 ...

  9. 文本表示(一)—— word2vec(skip-gram CBOW) glove, transformer, BERT

    文本离散表示 1. one-hot 简单说,就是用一个词典维度的向量来表示词语,当前词语位置为1,其余位置为0. 例如 vocabulary = ['胡萝卜' , '兔子', '猕猴桃'], 采用三维 ...

  10. 深度学习机器学习面试题——自然语言处理NLP,transformer,BERT,RNN,LSTM

    深度学习机器学习面试题--自然语言处理NLP,transformer,BERT,RNN,LSTM 提示:互联网大厂常考的深度学习基础知识 LSTM与Transformer的区别 讲一下Bert原理,B ...

最新文章

  1. 双十一风险暗藏危机 网络狂欢需谨慎
  2. maven-eclipse 中index.html页面乱码
  3. SQL server 2012 如何取上个月的最后一天
  4. sdk编程改变static控件字体和颜色
  5. 牛客题霸 [最长公共子序列] C++题解/答案
  6. 重装Nodejs后,webstorm代码报错问题
  7. Python 运算符重载
  8. Fegin拦截器解决各微服务之间数据下沉
  9. linux free 物理内存,Linux free显示系统内存使用
  10. Spring AOP动态代理的两种实现方式
  11. 51单片机英文缩写全称
  12. 运维团队(OPS)与技术团队有效沟通配合探讨
  13. 编译原理(龙书第二版)--怎么求FOLLOW集
  14. linux symlink 函数,详解C语言中symlink()函数和readlink()函数的使用
  15. js写的 几款时间轴
  16. windos下 elasticksearch7.13安装踩坑记
  17. 隐马尔可夫模型HMM学习笔记
  18. fiddler-2-5分钟学会手机端抓包
  19. 模型放到gpu上训练
  20. 魔兽争霸地图修改(三国列传,又名:三国列传之真策略无双3.0 A)

热门文章

  1. 大华摄像机ntp配置
  2. 关于Paul C.R. - Inductance_ Loop and partial-Wiley (2009)一书的概括
  3. 构建验证测试BVT--Build Verification Test
  4. c语言开发窗口程序,怎么用c语言做一个界面?
  5. 基于AT89C51单片机的数字电压表PROTEUS仿真设计
  6. 2022数学建模美赛E题详细思路获取
  7. 多用户良精商城网店购物系统 v1.7.1
  8. 【BZOJ】【P3685】【普通van Emde Boas树】【题解】【vEB树】
  9. 关于安卓中的语言国际化问题
  10. 一定要买苹果笔吗?苹果平替笔性价比高的