大模型面试题2

  1. Transformer为何使用多头注意力机制?(为什么 不使用一个头)

    • Transformer使用多头注意力机制是因为它可以允许模型同时关注输入的不同位置信息,从而捕捉到更多种类的依赖关系。通过多个注意力头,模型可以在不同的表示子空间中关注输入的不同部分,从而增强模型的理解能力。如果只使用一个头,则模型只能关注一种类型的关系,这会限制其学习能力。
  2. Transformer为什么Q和K使用不同的权重矩阵生 成,为何不能使用同一个值进行自身的点乘?

    • Q(查询)和K(键)使用不同的权重矩阵是为了让模型能够学习到更多的模式和关联性。如果使用相同的权重矩阵,那么Query和Key将会非常相似,这会限制模型的学习能力。使用不同的权重矩阵可以帮助模型学习到更丰富的表示。
  3. Transformer计算attention的时候为何选择点乘而 不是加法?两者计算复杂度和效果上有什么区 别?

    • 点乘操作相比于加法能更好地保留向量间的角度信息,因此更适合用来衡量两个向量的相关性。此外,点乘操作通常在实践中表现得更好,尤其是在处理长序列时。从计算复杂度来看,点乘和加法都是O(d)的操作,其中d是向量的维度,但是点乘能够更好地反映向量间的相似性。
  4. 为什么在进行softmax之前需要对attention进行 scaled(为什么除以dk的平方根),并使用公式 推导进行讲解

    • 在计算点积注意力分数时,如果不进行缩放,随着向量维度的增加,点积的结果也会增大,导致softmax输出的概率分布变得非常尖锐。通过除以𝑑𝑘dk​​,我们可以保持分数在一个合理的范围内,防止梯度消失或爆炸的问题。具体来说,假设Query和Key向量都是从标准高斯分布中采样的,则点积的期望值约为𝑑𝑘dk​,因此除以𝑑𝑘dk​​可以保持期望值接近1,从而避免softmax输出过于极端的情况。
  5. 在计算attention score的时候如何对padding做 mask操作?

    • Padding mask用于忽略填充符号的影响。在计算注意力权重时,对于填充的部分,通常会将它们对应的注意力分数设置为一个非常小的负数(如−∞−∞),这样经过softmax后这些位置的权重几乎为0。
  6. 为什么在进行多头注意力的时候需要对每个head 进行降维?

    • 对每个注意力头进行降维主要是为了减少参数量和计算成本。如果每个头都保持与原始向量相同的维度,那么整个模型的参数量和计算复杂度会显著增加。通过降维,可以让每个注意力头专注于输入的不同方面,同时也降低了计算负担。
  7. 大概讲一下Transformer的Encoder模块?

    • Transformer的Encoder模块由多个相同的层组成,每个层包括一个多头注意力机制和一个前馈神经网络,两者之间使用残差连接和层归一化。每个子层的输出都会通过残差连接回到其输入,并且在残差连接之后应用了层归一化操作。这样的结构有助于模型学习更深层次的特征。
  8. 为何在获取输入词向量之后需要对矩阵乘以 embedding size的开方?意义是什么?

    • 词向量乘以𝑑embdemb​​是为了补偿初始化词嵌入时可能产生的方差过大问题。词嵌入初始化通常遵循高斯分布,乘以𝑑embdemb​​有助于保持合适的方差,从而使得后续层的输入具有稳定的尺度。
  9. 简单介绍一下Transformer的位置编码?有什么意 义和优缺点?

    • Transformer使用位置编码来给模型提供序列中元素的相对或绝对位置信息。位置编码通常是固定的正弦波函数,可以是绝对位置编码,也可以是相对位置编码。位置编码的意义在于它有助于模型区分序列中不同位置的词,这对于理解句子结构至关重要。优点是它不需要额外的参数来学习位置信息;缺点是在处理非常长的序列时,固定的位置编码可能不够灵活。
  10. 你还了解哪些关于位置编码的技术,各自的优缺 点是什么?

    • 除了正弦位置编码外,还有学习型位置编码等。学习型位置编码更加灵活,可以根据任务需求调整位置信息,但可能会引入更多的参数。此外,还有一些方法使用相对位置编码,这有助于模型学习更长距离的依赖关系。
  11. 简单讲一下Transformer中的残差结构以及意义。

  • 残差结构允许梯度更容易地反向传播,帮助模型学习更深层的结构。在Transformer中,残差连接通常用于连接层的输入和输出,以保证即使在深层网络中也能有效地传递信息。这种结构可以避免梯度消失问题,并有助于模型学习更复杂的函数映射关系。
  1. 为什么transformer块使用LayerNorm而不是 BatchNorm? LayerNorm在Transformer的位置是 哪里?
  • Transformer中使用LayerNorm而非BatchNorm是因为BatchNorm依赖于mini-batch中的统计信息,在序列模型中不太适用。LayerNorm则独立于batch大小,更适合Transformer。LayerNorm通常被应用于每个子层的残差连接之后,即在子层的输出与输入相加之后立即应用。
  1. 简答讲一下BatchNorm技术,以及它的优缺点。

    • BatchNorm通过对每个mini-batch的数据进行标准化来加速训练过程。它可以减少内部协变量偏移,提高模型性能。但其依赖于mini-batch的特性在某些情况下可能不是最佳选择,例如在序列模型中,BatchNorm的效果可能不如LayerNorm好。
  2. 简单描述一下Transformer中的前馈神经网络?使 用了什么激活函数?相关优缺点?

    • Transformer中的前馈网络通常由两个线性层组成,中间夹着一个非线性激活函数,如ReLU或GELU。ReLU和GELU都是非线性激活函数,可以增加模型的表达能力。ReLU的优点是计算效率高,但可能会导致死区问题;GELU在实践中通常表现得更好,因为它可以减少死区问题的发生。
  3. Encoder端和Decoder端是如何进行交互的?(在这里可以问一下关于seq2seq的attention知识)

    • 在Transformer中,Encoder和Decoder通过多头注意力机制交互。Decoder中的每个层都有一个跨注意力头,该头使用Encoder的输出作为键和值,从而允许Decoder访问Encoder的所有信息。这种交互方式允许模型更好地捕获输入和输出之间的依赖关系。
  4. Decoder阶段的多头自注意力和encoder的多头自 注意力有什么区别?(为什么需要decoder自注意 力需要进行sequence mask)

    • Decoder端的多头自注意力与Encoder端的主要区别在于它需要对序列进行掩码,以确保在预测某个位置的输出时不会考虑该位置之后的信息。这是通过在计算注意力分数时应用sequence mask实现的,即对于每个位置i,所有位置j > i的注意力分数被设置为−∞−∞,这样在softmax之后这些位置的权重几乎为0。
  5. Transformer的并行化提现在哪个地方?Decoder 端可以做并行化吗?

    • Transformer的设计使得大部分计算都可以并行化,特别是在Encoder端。由于Encoder端的每一个位置的计算都不依赖于其他位置,所以可以完全并行化。相比之下,Decoder端由于需要进行序列掩码,不能完全并行化,但在实际应用中,仍然可以通过一些技术手段实现一定程度的并行化。
  6. 简单描述一下wordpiece model和 byte pair encoding,有实际应用过吗?

    • WordPiece模型和Byte Pair Encoding (BPE)都是子词级别的词汇表构建方法。它们可以有效处理OOV(Out-of-Vocabulary)词问题,常用于NLP任务中。WordPiece通过将单词分解为一系列子词单元来构建词汇表,而BPE则是一种通过合并最频繁出现的字节对来逐步构建词汇表的方法。这两种方法在许多自然语言处理任务中都有广泛应用,包括机器翻译、文本分类等。
  7. Transformer训练的时候学习率是如何设定的? Dropout是如何设定的,位置在哪里?Dropout 在测试的需要有什么需要注意的吗?

    • 学习率通常采用warm-up和decay策略,即开始时缓慢增加,然后逐渐减小。Dropout通常在训练期间应用于各个层的输出,以防止过拟合。测试时通常不使用Dropout,而是将Dropout比率设为1以保留模型的全部输出。
  8. 引申一个关于bert问题,bert的mask为何不学习 transformer在attention处进行屏蔽score的技巧?

    • BERT使用Masked Language Model (MLM)随机掩盖输入序列的一部分,而Transformer使用Padding Mask来处理序列长度不一的问题。BERT的MLM不需要在attention层面进行mask,因为它是基于双向上下文的,而在Transformer中,由于其自回归性质,需要在解码过程中进行序列掩码以防止泄露未来的信息。BERT的训练目标是预测被掩盖的词,因此不需要在attention层面上进行掩码操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走的小骆驼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值