Transformer 架构已成为现代深度学习,尤其是自然语言处理领域的基石。以下面试考题,从基础概念到深层原理,是面试中常见的考察点。
在 Transformer 中,每个子层(自注意力和 FFN)的输出都会与输入相加(残差连接),然后再进行层归一化(Layer Normalization)。
残差连接: $$ \text{Output} = \text{LayerNorm}(x + \text{Sublayer}(x)) $$
网络深度:它允许梯度通过一条“高速公路”直传到底层,有效解决了深度网络中的梯度消失/爆炸问题,使堆叠数十层模型成为可能。
身份映射:它使网络在初始阶段近似于一个恒等映射,保证了模型至少不会比浅层网络差。
层归一化:对单个训练样本的所有特征维度进行归一化,使其均值为 $0$,方差为 $1$。
这道题考察的是对深度学习训练基础构建的理解,但其在 Transformer 中的作用有其特殊性。可以点出“后归一化(Post-LN)”和“前归一化(Pre-LN)”的区别。原始论文使用 Post-LN,即
$$ \text{LayerNorm}(x + \text{Sublayer}(x)) $$,但后来的实践发现 Pre-LN,即 $$ x + \text{Sublayer}(\text{LayerNorm}(x)) $$,训练更稳定,尤其是对于极深的模型,现已成为主流。能指出这一演进,体现了候选人密切追踪工程实践。
更重要的是,要强调残差连接在 Transformer 中的路径分解作用。有研究工作将 Transformer 的复杂计算图分解为大量不同长度的路径,残差连接正是这些路径存在的基础。它使得模型既能通过短路径(相当于浅层网络)快速学习低层特征,又能通过长路径学习复杂的层级化特征。这是一种从模型集成和路径视角出发的深刻理解,远胜于仅提及“防止梯度消失”。
主要不同集中在 解码器和注意力机制上。
训练时:采用 强制教学。解码器的输入是整个正确答案序列。通过一个三角掩码矩阵,确保在预测位置 $i$ 的词时,模型只能看到位置 $1$ 到 $i-1$ 的信息。这样,整个目标序列可以一次性并行输入,极大提高训练效率。
推理时:采用 自回归生成。初始输入只有“起始标记”。每次模型预测出一个新的词,就将其拼接到输入序列的尾部,形成新的输入,再送入模型预测下一个词,如此循环直至生成结束标记。这是顺序过程,无法并行。
自注意力:训练时对所有位置并行计算;推理时解码器自回归,但自注意力计算依然是在当前已生成的序列上进行。
编码器-解码器注意力:训练时,解码器可一次性并行查询编码器的完整输出;推理时,每一步解码都要重新计算该层的注意力,但编码器的输出 $K$, $V$ 只需计算一次,可以缓存复用。
这题精准区分了理论与实践。死记硬背者可能只复述了“有掩码”,而深入理解者会抓住“并行”与“串行”这一核心矛盾,清晰描绘出两套截然不同的工作流。特别精彩的是点出“KV缓存”技术。由于推理时解码器的每一步,之前所有位置的 $K$, $V$ 向量都不会改变,因此可以将它们缓存起来,避免每步都重复计算。这直接将推理的计算复杂度从 $O(n^2)$ 优化到 $O(n)$,是 Transformer 模型能实际落地的关键工程加速。未能答出此点,说明候选人可能只做过训练,缺乏部署经验。
更深一层,可以提到训练时标签泄漏的风险和掩码的防御作用,以及自回归推理中存在的曝光偏差问题:训练时模型看的是标准答案,推理时看的却是自己产出的可能有错的词。这种对理论与工程差距的洞察,是高年级工程师的必备素质。
此题面向实战与前沿。只说出平方复杂度是及格,能系统性地分类并提出代表性模型才是优秀。回答的关键在于点出本质:所有优化的目标都是在 维持长距离依赖建模能力和降低计算/存储开销之间寻找帕累托最优解。例如,稀疏注意力基于“不是所有信息都同等重要”的假设;线性注意力则是一个巧妙的计算魔术,以牺牲对常规注意力的完全拟合为代价换取速度。
更进一步,可以简单对比这些方案的优劣:稀疏注意力保留了显式注意力矩阵,可解释性较好,但实现复杂;线性注意力速度提升巨大,但实践中往往效果略有折损。最终如果能引导面试官看向新范式——状态空间模型,并点出其和线性注意力在思想上的联系,如将序列信息压缩进一个固定大小的状态,将充分展现你不仅关注存量技术,更是前沿动态的敏锐观察者。
Mask 操作的目的是防止模型访问不应看到的信息,保证模型的因果性或处理长序列。
主要有三种类型:
此题看似基础,实则关乎模型设计的正当性与实用性。一个洞察是区分“功能性 Mask”和“结构性 Mask”。因果掩码是模型结构的根基,定义了模型的预测方式,是结构性的;而填充掩码则是处理数据差异的工程性手段,确保了批处理的高效执行。能做出这种划分,说明候选人理解了模型的核心逻辑与工程实现的边界。
面试官常在此处追问:“将 mask 值设为 $-\infty$ 后,softmax 会怎样?”精准的回答是,$e^{-\infty}$ 趋近于 $0$,这使得被掩住的注意力权重严格为零,从而在信息加权求和时被完美忽略。这个细节将理论公式与代码实现(如 float(1e-9) 或 -10000)联系起来,考验了理论与实操的结合能力。进一步,提及在实现序列任务时,mask 的任何微小错误都会导致严重的泄漏或训练崩溃,强调了其严谨性。
Transformer 的序列到序列建模能力极具通用性,已在多个领域大放异彩。
1、计算机视觉:这是最突出的跨界领域。ViT (Vision Transformer) 将图像切分为多个固定大小的图块,将其作为序列输入到标准 Transformer 中,在大型数据集上的表现超越了 CNN 的 SOTA。此后的许多工作进一步优化了效率和性能,如 Swin Transformer。
2、语音处理:语音可以看作一维的时间序列信号。Transformer 可直接用于语音识别(取代 RNN)、语音合成(如 FastSpeech)等任务,更好地捕捉长距离的声学依赖。
3、多模态学习:这是目前最前沿的方向。模型如 CLIP、DALL-E 2 等,利用 Transformer 将文本和图像编码到统一的语义空间,实现了跨模态的检索、理解和生成。
4、计算生物学:在蛋白质结构预测领域创造历史的 AlphaFold 2,其核心就使用了 Transformer 来处理氨基酸序列和残基之间的相互作用,建模复杂的空间关系。
这题考察的是技术视野和跨界迁移能力。回答的深度体现在,不能只罗列“ViT, AlphaFold”等空洞名词,而要一语道破 Transformer 之所以能跨界的元能力:即将不同来源、不同形态的数据(图像块、语音帧、分子式、文本 token)统一建模为无序集合中的密集关系图。正是这种对成对交互的建模能力和对序列长度的伸缩性,使其成为了通用的“关系计算引擎”。
更好的回答能点出不同领域的适配创新:例如,在视觉领域,由于“像素”序列过长,ViT 创造性地引入图像分块;在 AlphaFold 中,注意力精妙地用以模拟氨基酸残基在三维空间中的成对距离与相互约束。这种“通用核心+特定适配”的思考,展示了候选解复杂系统、进行创新性迁移应用的能力。把这题答得精彩,能将你从一个“NLP 工程师”的标签解放出来,塑造为充满洞察力的“通用 AI 架构师”。