Transformer面试题(二)

1. 讲一下Transformer的残差结构以及意义

在Transformer中,残差结构是指在每个子层(子层通常包括自注意力机制和前馈神经网络)中加入一个“跳跃连接”,即输入可以直接通过这个连接跳到输出端。这种结构可以表示为:

Output = Layer ( x ) + x \text{Output} = \text{Layer}(x) + x Output=Layer(x)+x
这里的 Layer ( x ) \text{Layer}(x) Layer(x)指的是经过某一子层的处理结果,(x)是输入。

意义

  1. 缓解梯度消失问题:在深层网络中,梯度可能会逐渐变小,导致训练困难。残差结构通过直接连接输入和输出,有助于梯度的反向传播。
  2. 加速收敛:由于每一层学习的是残差(即变化部分),而不是完整的输出,因此训练速度更快。
  3. 提高模型性能:实验证明,使用残差结构的网络在许多任务上表现更好。
2. 为什么transformer块使用LayerNorm而不是BatchNorm?LayerNorm 在Transformer的位置是哪里?

原因

  1. 适应序列数据:BatchNorm依赖于批次数据的统计量,而序列数据在长度和批次内分布变化较大时,BatchNorm的效果不佳。LayerNorm则是对每个样本的特征进行归一化,不依赖于批次数据的统计量,适用于变长序列数据。
  2. 消除批次间依赖:BatchNorm会引入批次间的依赖,而LayerNorm则不会,这在训练和推理阶段的一致性上有优势。

LayerNorm在Transformer中的位置

  1. 在自注意力层和前馈神经网络之后:每个子层(自注意力机制和前馈神经网络)之后都会进行一次LayerNorm。
  2. 在残差连接之前:即LayerNorm处理的输出会与残差连接的输入相加。
3. 讲一下BatchNorm技术,以及它的优缺点

BatchNorm技术:批量归一化(Batch Normalization)通过对每一批次的数据进行归一化处理,以减少内部协变量偏移。具体过程为:

  1. 计算批次数据的均值和方差。
  2. 利用均值和方差对数据进行归一化。
  3. 引入可训练的缩放和平移参数,对归一化后的数据进行线性变换。

优点

  1. 加速训练:通过减少内部协变量偏移,模型训练更稳定,收敛速度更快。
  2. 缓解梯度消失/爆炸问题:对输入数据进行归一化,梯度更易于传播。
  3. 允许使用更高的学习率:提高了模型的训练效率。

缺点

  1. 依赖批次大小:小批次数据时效果较差,因为统计量不稳定。
  2. 对RNN等变长序列数据效果差:在序列长度和批次分布变化较大时效果不佳。
  3. 引入额外计算开销:每一批次数据需要额外计算均值和方差。
4. 描述一下Transformer中的前馈神经网络?使用了什么激活函数?相关优缺点?

描述
在Transformer中,前馈神经网络(Feedforward Neural Network, FFN)由两层线性变换和一个非线性激活函数组成。其形式为:
FFN ( x ) = max ⁡ ( 0 , x W 1 + b 1 ) W 2 + b 2 \text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2 FFN(x)=max(0,xW1+b1)W2+b2

这里, max ⁡ ( 0 , x W 1 + b 1 ) \max(0, xW_1 + b_1) max(0,xW1+b1)是ReLU激活函数。

激活函数

  • 通常使用ReLU(Rectified Linear Unit)激活函数。

优点

  1. 计算效率高:线性变换和ReLU激活函数的计算成本低。
  2. 易于并行化:FFN可以独立处理每个位置上的特征,适合并行计算。
  3. 非线性增强表达能力:ReLU引入非线性,使网络可以学习更复杂的特征。

缺点

  1. 无序列依赖:FFN只处理每个位置上的特征,不考虑序列间的依赖关系。
  2. 参数量大:两层全连接网络需要大量参数,可能导致模型过大。
5. Encoder端和Decoder端是如何进行交互的?
  1. 编码器生成上下文表示:编码器将输入序列编码为一系列上下文表示(Contextual Embeddings),这些表示包含了输入序列的全部信息。
  2. 解码器通过注意力机制访问编码器的表示:解码器在生成目标序列的过程中,通过多头注意力机制访问编码器的输出表示,从而获取输入序列的相关信息。
  3. 编码器-解码器注意力:在解码器的每一层中,都会有一个专门的编码器-解码器注意力层,这一层利用编码器的输出和当前解码器的输入,通过注意力机制计算出与生成当前输出最相关的输入表示。
6. Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?
  1. 遮掩机制(Masking):解码器的多头自注意力机制中使用了未来位置的遮掩(Masked Self-Attention),即在计算注意力权重时,屏蔽掉当前时刻之后的所有位置。这是为了确保解码器在生成第t个词时,只能看到第t-1个词及之前的词。而编码器的多头自注意力没有这种遮掩机制。
  2. 交互对象不同:编码器的多头自注意力只在输入序列内进行计算,而解码器的多头自注意力则是在目标序列内进行计算,同时还包含了与编码器输出的交互。
7. Transformer的并行化体现在哪个地方?
  1. 自注意力机制:自注意力机制可以并行计算每个位置与其他所有位置的关系,不需要依赖前后位置的信息,适合GPU等并行计算设备。
  2. 前馈神经网络:前馈神经网络的计算可以独立处理每个位置上的特征,易于并行化。
  3. 无时序依赖:Transformer摒弃了传统RNN的时序依赖,每个位置的计算不依赖于其他位置的输出,进一步提升了并行计算的效率。

这样,Transformer可以充分利用现代硬件的并行计算能力,大大提高了模型的训练和推理速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

机智的小神仙儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值