真实面经题目 · 原创解析
Transformer 的主要结构和流程是什么?
Transformer 的主线是把序列输入转为 token embedding 和位置编码,经过多层 self-attention 与前馈网络建模上下文,最后输出上下文表示或逐 token 生成结果。
真实面经题目 · 原创解析
Transformer 的主线是把序列输入转为 token embedding 和位置编码,经过多层 self-attention 与前馈网络建模上下文,最后输出上下文表示或逐 token 生成结果。
我会从输入、核心层和输出三部分讲。输入先做 token embedding,再加入位置编码,让模型知道顺序;每一层核心结构包括 Multi-Head Self-Attention、残差连接、LayerNorm 和前馈网络,Attention 负责让每个 token 聚合上下文信息,FFN 负责非线性变换。Encoder 适合理解整段输入,Decoder 会加 causal mask 做自回归生成。整体流程就是嵌入、位置、注意力交互、前馈变换、多层堆叠和任务头输出。
文本会被切成 token,再映射为 embedding。由于注意力本身不携带顺序信息,还要加入位置编码或相对位置机制,否则模型无法区分相同 token 在不同位置的意义。
Self-Attention 会为每个位置生成 Q、K、V,通过 QK 相似度得到注意力权重,再对 V 做加权聚合。多头注意力让不同子空间关注不同关系,例如语义、语法、长距离依赖或局部模式。
Attention 之后通常接前馈网络,对每个位置独立做非线性变换。残差连接和 LayerNorm 保持梯度稳定,使模型可以堆叠很多层而不容易训练崩掉。
Encoder 的 self-attention 通常能看到完整输入,适合理解和表征;Decoder 的 self-attention 使用 causal mask,只能看当前位置之前的 token,适合逐步生成。
分类任务会在上下文表示上接分类头,生成任务会把每个位置映射到词表概率。训练时用目标函数约束输出,推理时再结合解码策略生成最终结果。
Attention 本身对输入顺序不敏感,不加入位置信息就无法区分 token 的相对或绝对顺序。
多头把表示拆到多个子空间,让模型同时学习不同类型的依赖关系,再拼接融合。
自回归生成不能提前看到未来 token,causal mask 会屏蔽后续位置,保证训练和推理目标一致。