本人是某双一流大学硕士生,也最近刚好准备参加 2024年秋招,在找大模型算法岗实习中,遇到了很多有意思的面试,所以将这些面试题记录下来,并分享给那些和我一样在为一份满意的offer努力着的小伙伴们!!!
Transformer 面试题快问快答
1. Transformer为何使用多头注意力机制?
- 原因:多头注意力机制通过将输入特征分成多个子空间,使得每个头可以独立学习不同的特征表示。
举个栗子:在处理句子时,一个头可能专注于语法结构,而另一个头则可能关注语义关系。这种多样性使得模型能够从多个角度理解输入,从而提升整体性能。
2. Transformer为什么Q和K使用不同的权重矩阵生成?
- 原因:使用不同的权重矩阵可以打破对称性,使得模型能够学习到更复杂的关系。具体来说,Q(查询)和K(键)的点积计算相似度时,使用不同的权重矩阵可以使得模型在计算注意力时考虑到不同的上下文信息。
举个栗子:在句子“我爱自然语言处理”中,“爱”对“自然”的关注程度可能与“自然”对“爱”的关注程度不同。通过使用不同的权重矩阵,模型能够捕捉到这种不对称的关系,从而提高注意力机制的灵活性和表达能力。
3. Transformer计算attention的时候为何选择点乘而不是加法?
- 原因:点乘能够更有效地捕捉向量之间的相似性。点乘的结果与向量的方向和大小相关,能够反映出两个向量之间的相关性。而加法则无法提供这种信息。计算复杂度方面,点乘的计算复杂度为O(n),而加法的复杂度为O(1),在计算效率上,点乘更为高效,尤其是在处理大规模数据时。
4. 为什么在进行softmax之前需要对attention进行scaled?
- 原因:在计算注意力分数时,使用点积后除以 d _k(其中 d_k 是键的维度)是为了防止点积结果过大,导致softmax函数的梯度消失问题。随着维度的增加,点积的方差会增大,从而使得softmax的输出变得非常尖锐,几乎所有的注意力权重都集中在某个特定的token上。通过除以 d_k 的平方根,可以保持方差适中,避免梯度消失问题。
5. 在计算attention score的时候如何对padding做mask操作?
- 方法:在处理变长序列时,通常需要对填充部分进行mask操作,以确保模型只关注有效的输入数据。在计算注意力分数时,使用mask将填充位置的注意力分数设置为一个极大的负数(如-1e9),这样在经过softmax后,这些位置的权重将接近于零。例如,假设输入序列为“我 爱 自然 语言 处理”,对应的mask为[0, 0, 0, 0, 0, 1, 1]。在计算注意力分数时,将填充部分的分数替换为-1e9,确保模型在计算时忽略这些填充位置。
6. 为什么在进行多头注意力的时候需要对每个head进行降维?
- 原因:在多头注意力机制中,对每个头进行降维的主要原因是为了降低计算复杂度,同时保持模型的表达能力。通过将输入特征分成多个低维子空间,模型能够在每个子空间中独立学习特征,从而提高学习效率。例如,假设输入特征维度为512,分成8个头,每个头的维度为64,这样可以显著减少计算量,同时每个头仍然能够学习到丰富的特征表示。
7. 大概讲一下Transformer的Encoder模块?
- 结构:Transformer的Encoder模块由多个相同的层组成,每层包含多头自注意力机制和前馈神经网络。Encoder的主要任务是将输入序列转换为上下文表示,供Decoder使用。每个Encoder层的输入是前一层的输出,经过多头注意力和前馈网络的处理后,输出的上下文表示能够捕捉到输入序列的全局信息。具体步骤如下:
-
多头自注意力:对输入序列进行多头自注意力计算,生成注意力加权的上下文表示。
-
残差连接:将多头自注意力的输出与输入相加,形成残差连接。
-
LayerNorm:对残差连接的输出进行LayerNorm归一化。
-
前馈神经网络:对归一化的输出进行前馈神经网络变换。
-
残差连接和LayerNorm:将前馈神经网络的输出与输入相加,再次进行LayerNorm归一化。
8. 为何在获取输入词向量之后需要对矩阵乘以embedding size的开方?
-
原因:在获取输入词向量后乘以embedding size的开方,主要是为了确保词向量的方差适中,从而提高模型的训练稳定性。通过这种方式,可以避免在训练过程中出现梯度消失或爆炸的问题。具体来说,假设词向量的维度为 d model_,乘以 (
) 可以使词向量的方差保持在1左右,从而确保模型的训练更加稳定。
9. 简单介绍一下Transformer的位置编码?
-
作用:引入序列位置信息,使模型能够处理序列顺序。
-
实现:位置编码通常使用正弦和余弦函数生成,能够有效地表示单词在序列中的位置。具体公式如下:
-
优点:可以处理任意长度的序列,同时保持相对位置关系。
-
缺点:需要额外的计算和存储。
10. 你还了解哪些关于位置编码的技术,各自的优缺点是什么?
-
学习型位置编码:
-
优点:灵活性高,可以学习到更复杂的位置信息。
-
缺点:需要额外的参数和训练时间。
-
相对位置编码:
-
优点:更好地捕捉上下文信息,适用于长序列。
-
缺点:实现复杂度较高。
-
旋转位置编码(RoPE):
-
优点:更好地捕捉长距离依赖关系,适用于长序列。
-
缺点:实现较为复杂。
11. 简单讲一下Transformer中的残差结构以及意义。
-
作用:将输入直接添加到输出中,传递信息,减轻梯度消失问题,提升模型性能和稳定性。
-
实现:在多头自注意力和前馈神经网络的输出上分别添加残差连接,然后进行LayerNorm归一化。具体步骤如下:
-
多头自注意力:计算注意力加权的上下文表示。
-
残差连接:将注意力加权的上下文表示与输入相加。
-
LayerNorm:对残差连接的输出进行LayerNorm归一化。
-
前馈神经网络:对归一化的输出进行前馈神经网络变换。
-
残差连接和LayerNorm:将前馈神经网络的输出与输入相加,再次进行LayerNorm归一化。
12. 为什么transformer块使用LayerNorm而不是BatchNorm?LayerNorm在Transformer的位置是哪里?
-
原因:LayerNorm能够处理变长序列,适合处理序列数据。BatchNorm需要固定的batch大小,对变长序列不太适用。
-
位置:LayerNorm在每个子层中应用,具体位置如下:
-
多头自注意力后:在多头自注意力的输出上应用LayerNorm。
-
前馈神经网络后:在前馈神经网络的输出上应用LayerNorm。
13. 简答讲一下BatchNorm技术,以及它的优缺点。
-
作用:通过对每个batch的输入进行归一化,减轻内部协变量偏移问题,加速模型收敛。
-
优点:
-
加速收敛:通过归一化输入,减少梯度消失和爆炸问题,加速模型收敛。
-
提高性能:提高模型的泛化能力,提升最终性能。
-
缺点:
-
对小batch不太有效:当batch大小较小时,BatchNorm的效果会大打折扣。
-
在RNN等序列模型中难以应用:BatchNorm需要固定的batch大小,对变长序列不太适用。
14. 简单描述一下Transformer中的前馈神经网络?使用了什么激活函数?相关优缺点?
- 结构:前馈神经网络由两个线性层组成,具体结构如下:
-
第一层:线性层,输出维度通常比输入维度大。
-
激活函数:ReLU激活函数,
15. Encoder端和Decoder端是如何进行交互的?
- 方法:通过注意力机制进行交互,Decoder的查询向量与Encoder的输出计算,获取上下文信息。
16. Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?
- 区别:Decoder需要进行序列mask操作,避免信息泄露。
17. Transformer的并行化体现在哪个地方?Decoder端可以做并行化吗?
-
并行化:主要体现在Encoder端和Decoder端的自注意力计算中。
-
Decoder并行化:可以并行化,但受序列mask限制。
18. 简单描述一下wordpiece model 和 byte pair encoding,有实际应用过吗?
-
WordPiece模型:通过贪婪地选择最佳分割点来分割单词。
-
Byte Pair Encoding(BPE):通过合并最常见的字节对来构建词汇表。
-
应用:在BERT和GPT等模型中广泛应用。
19. Transformer训练的时候学习率是如何设定的?Dropout是如何设定的,位置在哪里?Dropout在测试时需要注意什么?
-
学习率:通常采用预热和衰减策略。
-
Dropout:应用于多头注意力和前馈网络的输出,常见值为0.1到0.3。
-
测试时:需要关闭Dropout,确保模型充分利用所有参数进行预测。
20. 引申一个关于bert问题,bert的mask为何不学习transformer在attention处进行屏蔽score的技巧?
- 原因:BERT的mask是固定的,不参与模型的训练过程,旨在学习语言的通用表示,而不是特定于某个任务的表示。
本文同步自知识星球《算法工程师求职经验帖》
星球旨在分享AI算法岗&开发岗的秋招准备攻略、心得体会、内推机会等。涉及深度学习,机器学习,计算机视觉,自然语言处理,SLAM,大数据,数据分析,自动驾驶,C/C++,Java等方向。群主和嘉宾既有往届参加校招拿到Offer(含BAT/独角兽等大厂Offer),也有已经毕业工作的算法研究员/工程师和软开工程师。…
**星球非免费。**定价50元/年,0.136元/天。(每+100人,+20元。元老福利~)
-
一是运行有成本,我希望它能自我闭环,这样才能长期稳定运转;
-
二是对人的挑选,鱼龙混杂不是我想要的,希望找到关注和热爱 AI 的人。
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】
标签:Transformer,AI,模型,前馈,学习,考题,快答,LayerNorm,注意力 From: https://blog.csdn.net/xiaoganbuaiuk/article/details/145109286