史上最全 Transformer 面试问题大全

本文收集并整理了 Transformer 面试中最常见、最核心的问题,覆盖基础概念、模块细节、注意力机制、位置编码、训练技巧、架构演进等多个维度,非常适合用于面试复习、深入理解和学习 Transformer 模型。


基础概念与架构理解

  1. Transformer 为什么要使用多头注意力机制?多头注意力带来了哪些优势?
  2. 为什么不使用单一头注意力?多个头之间的信息是如何互补的?
  3. 为什么 Q 和 K 要使用不同的权重矩阵?为什么不能进行自身点乘?
  4. Attention 中为什么使用 softmax 之前要先对 score 进行 scaled(除以√dk)?数学和数值稳定性角度如何理解?
  5. Attention 中的 padding mask 和 attention mask 各起什么作用?分别在 Encoder 和 Decoder 中何时使用?

Attention 与位置编码机制

  1. Attention 是如何计算的?选择加法 attention 还是点乘 attention 有什么区别?复杂度和效果分别如何?
  2. Transformer 中位置编码(Positional Encoding)有哪些方式?绝对和相对位置编码的区别是什么?
  3. 你了解哪些位置编码技术?请简要比较它们的优劣和应用场景。
  4. 为什么在获取到自注意力结果后仍要加上 embedding?Embedding size 的选择有何影响?

模块结构与实现细节

  1. Transformer 的 Encoder 和 Decoder 的结构分别是什么样的?有何异同?
  2. Encoder 和 Decoder 之间是如何交互的?Encoder 的输出如何影响 Decoder?
  3. Decoder 中的 self-attention 为什么需要使用 causal mask(或 sequence mask)?
  4. Transformer 中前馈神经网络(Feed Forward Layer)是怎么设计的?为什么使用两个线性变换和激活函数?
  5. 为什么使用 ReLU 或 GELU?这两种激活函数在训练中的实际表现如何?
  6. 残差连接(Residual)和 LayerNorm 的顺序为何是「Add → Norm」而不是「Norm → Add」?

正则化与训练策略

  1. Transformer 中为什么使用 LayerNorm 而不是 BatchNorm?两者适用场景有何不同?
  2. Dropout 在训练和测试时分别需要注意哪些问题?它是如何提升泛化能力的?
  3. Transformer 训练过程中常见的优化器有哪些?AdamW 与 Adam 有哪些区别?

实战与性能调优

  1. 大模型(如 GPT、BERT)中的 Transformer 和基础结构有何异同?是否完全一致?
  2. Transformer 模型在推理时如何进行屏蔽 score 的技巧?是否可以结合 beam search 等解码策略?
  3. 引用一个关于 BERT 的问题:BERT 的 mask 为什么不能用于 GPT-style 解码任务中?
  4. 你了解过一些改进版 Transformer 吗?如 Longformer、Performer、Reformer、Linformer 等,它们分别解决了哪些问题?
Transformer是一种广泛应用于自然语言处理任务的模型,下面是关于Transformer的一些面试问题的回答: 1. 为什么BERT的mask不学习Transformer在attention处进行屏蔽score的技巧? BERT的mask不学习Transformer在attention处进行屏蔽score的技巧是因为在BERT模型中,输入的句子中已经通过mask处理过,使得句子中的一部分单词被遮盖,从而模型可以通过context来预测这些被遮盖单词的信息。这种处理可以提高模型对上下文的理解能力。 2. Transformer计算attention的时候为何选择点乘而不是加法?两者计算复杂度和效果上有什么区别? Transformer选择点乘而不是加法的原因是点乘的计算复杂度更低。点乘的计算复杂度为O(d),其中d为向量的维度。而加法的计算复杂度为O(d^2)。此外,点乘的效果在实践中被观察到通常比加法更好,因为加法可能会导致attention分数过于平均分配,而点乘可以更好地突出相关的信息。 3. Transformer训练的时候学习率是如何设定的?Dropout是如何设定的,位置在哪里?Dropout在测试的时候有什么需要注意的吗? Transformer训练时学习率的设定通常使用一种称为"学习率衰减"的策略,即在训练的过程中逐渐减小学习率,以便模型在训练后期更加稳定。 Dropout是一种正则化技术,旨在减少模型的过拟合。在Transformer中,Dropout通常被应用在模型的每个层之后,位置是在self-attention和feed-forward层之间。Dropout的值通常设置为0.1或0.2,以避免过度舍弃信息。 在测试时,需要注意将Dropout关闭或者缩小一定比例,以确保模型的输出结果的稳定性。这是因为在训练过程中,Dropout通过随机舍弃一些神经元的输出来减少过拟合,但在测试时我们希望获得一致的结果,因此需要对Dropout进行相应的调整或关闭。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [21个Transformer面试题的简单回答](https://blog.csdn.net/qq_27590277/article/details/115683537)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值