Transformer

  1. Q:Transformer如何解决梯度消失问题的?
    A:残差连接

  2. Q:为何Transformer中使用Layer Normalization而不用Batch Normalization?
    A:BatchNorm是对一个batch-size样本内的每个特征做归一化,LayerNorm是对每个样本的所有特征做归一化。
    形象点来说,假设有一个二维矩阵。行为batch-size,列为样本特征。那么BN就是竖着归一化,LN就是横着归一化。
    它们的出发点都是让该层参数稳定下来,避免梯度消失或者梯度爆炸,方便后续的学习。但是也有侧重点。
    一般来说,如果你的特征依赖于不同样本间的统计参数,那BN更有效。因为它抹杀了不同特征之间的大小关系,但是保留了不同样本间的大小关系。(CV领域)
    而在NLP领域,LN就更加合适。因为它抹杀了不同样本间的大小关系,但是保留了一个样本内不同特征之间的大小关系。对于NLP或者序列任务来说,一条样本的不同特征,其实就是时序上字符取值的变化,样本内的特征关系是非常紧密的。

  3. Q:Layer Nomalization的作用是什么:
    A:允许使用更大的学习率,加速训练。有一定的抗过拟合作用,使训练过程更加平稳

  4. Q:多头自注意力层中的“多头”如何理解,有什么作用?
    A:有点类似于CNN的多个卷积核。通过三个线性层的映射,不同头中的Q、K、V是不一样的,而这三个线性层的权重是先初始化后续通过学习得到的。不同的权重可以捕捉到序列中不同的相关性。多头保证了transformer可以注意到不同子空间的信息,捕捉到更加丰富的特征信息,匹配到不同的模式。

  5. Q:Transformer是自回归模型还是自编码模型?
    A:自回归模型。所谓自回归,即使用当前自己预测的字符再去预测接下来的信息。Transformer在预测阶段(机器翻译任务)会先预测第一个字,然后在第一个预测的字的基础上接下来再去预测后面的字,是典型的自回归模型。Bert中的Mask任务是典型的自编码模型,即根据上下文字符来预测当前信息。

  6. Q:原论文中Q、K矩阵相乘为什么最后要除以dk\sqrt{d_k}dk

    ?
    A:当dk\sqrt{d_k}dk

    特别小的时候,其实除不除无所谓。但是当维度大的时候,其方差为 [公式] 。小了还好说,大的话会使得后续做softmax继续被放大造成梯度消失,不利于梯度反向传播。除以 dk\sqrt{d_k}dk

    让方差回归为1。有效减少梯度消失问题的出现。

    原文:

  7. Q: 原论中编码器与解码器的Embedding层的权重为什么要乘以dmodel\sqrt{d_{model}}dmodel

    ?
    A:为了让embedding层的权重值不至于过小,乘以 dmodel\sqrt{d_{model}}dmodel

    后与位置编码的值域差不多,可以保护原有向量空间不被破坏。
    在学embedding的时候,多多少少会把每一个向量的L2 long学成相对比较小的,比如1,不管你的维度多大最后都会等于1,维度变大的时候,权重值就会变小,但是只会要加上位置编码的值,而位置编码的值不会随着你的长度变长而把long固定住,所以乘了dmodel\sqrt{d_{model}}dmodel

    之后,使得embedding值和position encoding值在数值尺度上差不多

  8. Q:Transformer在训练与验证的时候有什么不同
    A:Transformer在训练的时候是并行的,在验证的时候是串行的。这个问题与Transformer是否是自回归模型考察的是同一个知识点。Transformer在训练、评估时编码器,解码器分别如何工作的?

  9. Q:Transformer模型计算复杂度是多少?
    A:n2dn^2dn2d,n是序列长度,d是embedding的长度。Transformer中最大的计算量就是多头自注意力层,这里的计算量主要就是QK相乘再乘上V,即两次矩阵相乘。
    QK相乘是矩阵【n d】乘以【d n】,这个复杂度就是n2dn^2dn2d

  10. Q:Transformer中三个多头自注意力层分别有什么意义与作用?
    A:Transformer中有三个多头自注意力层,编码器中有一个,解码器中有两个。
    编码器中的多头自注意力层的作用是将原始文本序列信息做整合,转换后的文本序列中每个字符都与整个文本序列的信息相关(这也是Transformer中最创新的思想,尽管根据最新的综述研究(MetaFormer is Actually What You Need for Vision)表明,Transformer的效果非常好其实多头自注意力层并不占据绝大贡献)。示意图如下:

    解码器的第一个多头自注意力层比较特殊,原论文给其起名叫Masked Multi-Head-Attention。其一方面也有上图介绍的作用,即对输入文本做整合(对与翻译任务来说,编码器的输入是翻译前的文本,解码器的输入是翻译后的文本)。另一个任务是做掩码,防止信息泄露。拓展解释一下就是在做信息整合的时候,第一个字符其实不应该看到后面的字符,第二个字符也只能看到第一个、第二个字符的信息,以此类推。
    解码器的第二个多头自注意力层与编码器的第一个多头自注意力层功能是完全一样的。不过输入需要额外强调下,我们都知道多头自注意力层是通过计算QKV三个矩阵最后完成信息整合的。在这里,Q是解码器整合后的信息KV两个矩阵是编码器整合后的信息,是两个完全相同的矩阵。QKV矩阵相乘后,翻译前与翻译后的文本也做了充分的交互整合。至此最终得到的向量矩阵用来做后续下游工作。

  11. Q:Transformer中的mask机制有什么作用?
    A:对不等长的序列做padding补齐,掩码防止信息泄露,在预测第t个时刻的输出的时候,你不应该看到t时刻以后的那些输入,从而保证训练和预测的行为一致
    具体来说,假设Q和K是等长的,都为n,且在时间上是对应起来的,对于第t时间的QtQ_tQt,在做计算的时候,应该只能看到K1K_1K1Kt−1K_{t-1}Kt1,而不应该去看到KtK_tKtttt 时间之后的东西,因为KtK_tKt在当前时刻还没有,但是注意力机制是能一次性看到所有东西的,所以必须加上mask,当然计算还是能算的,只需要加上一些处理,在t时刻之后计算出来的数值,用-inf来代替就可以了,在进入softmax的时候就会变成0,导致在softmax之后出来对应的那些东西权重都会变成0,而只有前面的值生效。

  12. Q:mask机制分别用在了哪里
    A:mask机制的作用1在三个多头自注意力层中都用了,作用2只用在了解码器的第一个多头自注意力层。

  13. Q:Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?
    A:使用Q/K/V不相同可以保证在不同空间进行投影,增强了表达能力,提高了泛化能力。

  14. Q:在计算attention score的时候如何对paddingmask操作
    A:padding位置置为负无穷(一般来说-1000就可以)。对于这一点,涉及到batch_size之类的,具体的大家可以看一下抱抱脸实现的源代码,位置在这里:huggingface-bert

  15. Q:为什么transformer中要有position encoding
    A:因为注意力机制是没有时序信息的,它的输出是value的加权和,权重是query和key之间的距离(欧式或cosine距离),是与序列信息无关的。
    给你一句话,把顺序任意打乱后,经过attention出来的结果都是一样的,但是实际上在语义上已经发生了改变,RNN是把上一个时刻的输出作为下一个时刻的输出而处理时序信息,

部分问题及答案摘自: Transformer你问我答

BERT

  1. Q:Bert和Elmo的异同点有哪些?
    A:
相同点 不同点 Bert Elmo
都是预训练模型 模型结构 基于Transformer的Encoder结构 基于RNN的结构
都是芝麻街人物的人名 特征表示方法 基于Fine-tune 基于特征
  1. Q:为什么 Bert 的三个 Embedding 可以进行相加?
    A:这是个好问题。虽然在深度神经网络里变得非常复杂,本质上神经网络中每个神经元收到的信号也是“权重”相加得来。具体细节的分析这里就不提了,有兴趣的同学可以自己推一推。这里想说一下宽泛一点的分析(瞎扯)。在实际场景中,叠加是一个更为常态的操作。比如声音、图像等信号。一个时序的波可以用多个不同频率的正弦波叠加来表示。只要叠加的波的频率不同,我们就可以通过傅里叶变换进行逆向转换。一串文本也可以看作是一些时序信号,也可以有很多信号进行叠加,只要频率不同,都可以在后面的复杂神经网络中得到解耦(但也不一定真的要得到解耦)。在BERT这个设定中,token,segment,position明显可以对应三种非常不同的频率。由此可以再深入想一想,在一串文本中,如果每个词的特征都可以用叠加波来表示,整个序列又可以进一步叠加。哪些是低频信号(比如词性?),哪些是高频信号(比如语义?),这些都隐藏在embedding中,也可能已经解耦在不同维度中了。说不定可以是一种新的表示理论:)该解释来自:邱锡鹏老师对此问题的回答

  2. Q:Bert的训练方式?
    A:1.Masked LM, 2.Next Sentence Prediction (NSP)

  3. Q:Bert的mask策略是怎样的?
    A:15%的概率替换成mask,在这15%被选中成为mask的词中,80%概率真的被替换成[mask],10%的概率替换成一个随机的token,10%的概率什么都不干
    原文:

  4. Q:Bert的NSP任务是怎么训练的?
    A:有句子a和b,50%的概率b真的在a之后,50%的概率b是随机从别的地方选取出来的句子
    原文:

GPT

来自Transformer + Bert + GPT 的灵魂拷问相关推荐

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

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

  2. transformer bert GPT(未完)

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

  3. 来自华为Mate X的灵魂拷问:怎么贴膜?

    文 徐蕾 华为首款5G可折叠屏手机24日在西班牙巴塞罗那的2019世界移动通信大会(MWC)上发布后,引来惊叹连连. 但是,随之而来的是一个直击灵魂的拷问:怎么贴膜? 再来看一眼这个酷炫的折叠屏: 嗯 ...

  4. 不焦虑、不内卷能拿图灵奖吗?来自智源研究院的灵魂拷问

    智源导读:传统科研机构唯论文导向,虽然帮助中国在短时间内实现了与国际学术界接轨,但却严重制约了学者自身创造力的发挥,已经不再适应于追求原始创新的新时代目标. 2018年11月,北京智源人工智能研究院成 ...

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

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

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

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

  7. 整天都说注解注解注解,你们了解注解吗?来自——面试官的灵魂拷问

    注解 它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查.注解是以'@注解名'在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解.单值注解.完整注解三类.它们都不会直接影响到 ...

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

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

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

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

  10. 想要成为 NLP 领域的大牛?从 ChatGPT 的 5 大自然语言模型开始了解吧(LM、Transformer、GPT、RLHF、LLM)——小白也能看得懂

    目录 前言 ChatGPT基础科普--知其一点所以然 1. LM 2. Transformer 3. GPT 4. RLHF 5. LLM 参考资料 其它资料下载 前言   如果想在自然语言处理(Na ...

最新文章

  1. xcode6不显示键盘------解决方案
  2. 高通安卓调试LCD几方面总结
  3. 成本要素区分成本中心
  4. 智能指针——auto_ptr
  5. 网络流-Dinic求最大流(仅做自己复习,写的很不清楚)
  6. 第十一周项目3-程序的多文件组织
  7. 【渝粤教育】国家开放大学2018年秋季 1007t公司财务 参考试题
  8. 画流程图activiti流程图_干货!小白也能一天画100张高逼格流程图
  9. 记录-分模块输出到不同的日志文件
  10. opencv-api boxPoints
  11. 无线网络,把我整惨了。求助各位了。
  12. Android:访问网络资源,在手机本地显示网络资源源代码
  13. C# Sql 触发器
  14. 【MATLAB】求解含有三角函数的方程
  15. sublime报错信息乱码_Sublime如何解决中文乱码问题
  16. win10右键反应慢解决方法介绍【解决方法】
  17. 写一函数,将一个3*3的整型矩阵转置
  18. Au:剪辑的基础操作
  19. 如何在微信公众号文章中怎么添加附件?
  20. 互联网电影院5G让3D体验更流畅

热门文章

  1. 2009年11月14日上海讲座-Linux触摸屏驱动PPT
  2. 乐迪机器人正确操作_乐迪智能早教机器人好用吗 乐迪智能早教机器人使用测评...
  3. sudo spctl --master-disable_2020推荐聊城灭火器检测--正规企业--【聊城市久安消防】...
  4. 帝国cms免登陆生成html,帝国cms7.5免登陆发布模块
  5. php 修改 wordpress,wordpress如何修改php.ini
  6. 数据结构(一):并查集
  7. java类中静态变量自增_Java中静态变量(类变量)、实例变量、局部变量和成员变量...
  8. lamp mysql登录_LAMP 3.2 mysql登陆
  9. dbcc checkdb 200g 要多久_东丽区无人驾驶学多久,放心省心_石家庄北方汽修学校
  10. java c 引用类型_C++引用类型详解