Skip to content

高频面试题

Transformer 架构

面试官问 Transformer,通常不是让应用开发岗位手推全部公式,而是看你能不能解释 LLM 为什么能利用上下文、为什么生成慢、为什么需要 KV Cache。

适合阶段:AI 应用开发 / LLM 基础面核心能力:Attention · Decoder-only · KV Cache

面试官角度分析,想考什么

  • Transformer 为什么能替代 RNN 成为主流架构?
    考你能否把它说成更适合并行训练和长距离依赖建模的序列架构,而不是只背“用了 Attention”。

  • Self-Attention、Decoder-only 和 next token prediction 怎么连起来?
    考机制差异:Q/K/V 如何建立上下文关联,causal mask 如何支撑自回归生成。

  • Transformer 结构对线上推理有什么工程影响?
    考落地取舍:prefill、decode、KV Cache、长上下文显存、流式输出和 RAG 压缩为什么重要。

可直接抄走的 30 秒参考答案

text
Transformer 的核心是 Self-Attention,它让每个 token 根据上下文动态关注相关 token,比 RNN 更容易并行训练,也更擅长建模长距离依赖。主流 LLM 多用 Decoder-only,因为它天然适合 next token prediction:输入 prompt 后一个 token 一个 token 生成。线上推理时 KV Cache 很关键,它缓存历史 token 的 Key/Value,避免每生成一步都重算全部上下文;但缓存会占显存,所以长上下文和高并发会更慢、更贵。

面试回答详解,知其所以然

这道题的核心不是“我会背 Attention 公式”,而是理解 Transformer 的结构为什么支撑了今天的 LLM 应用,以及它为什么会带来上下文、延迟和显存成本。

1. Transformer 用 Attention 改造了序列建模

RNN 按时间步串行处理序列,训练难并行,长距离依赖也容易衰减。Transformer 用 Self-Attention 让序列中的 token 可以直接互相建立联系,训练时更容易并行。

text
输入 token -> embedding + position -> 多层 attention + FFN -> 下一个 token 概率

它不是不需要顺序信息,而是用位置编码或位置相关机制补充顺序,再用 attention 学“当前 token 应该看哪些上下文”。这让模型能在摘要、翻译、代码生成、长文档问答里捕捉跨句、跨段的依赖。

2. Self-Attention 到 Decoder-only 是生成式 LLM 的主线

每个 token 会产生三组向量:

  • Query:我现在想找什么信息。
  • Key:我能提供什么信息供别人匹配。
  • Value:如果别人关注我,实际拿走什么内容。

Attention 权重表示“当前 token 应该多关注哪些历史 token”。这也是 LLM 能根据上下文理解指代、条件和约束的基础。

Decoder-only 用 causal mask 保证当前位置只能看左边历史 token,非常适合文本生成。

  • 训练目标统一:next token prediction 足够简单。
  • 数据利用率高:大量普通文本都能用于训练。
  • 推理接口自然:输入 prompt,然后一个 token 一个 token 生成。
  • KV Cache 简单:历史 token 的 Key/Value 可以缓存复用。

面试里可以这样串起来:Self-Attention 负责“看上下文”,causal mask 负责“不偷看未来”,next token prediction 负责“把任意文本都变成训练信号”,Decoder-only 则把这些机制组织成最自然的生成接口。

3. 工程影响集中在 prefill、decode 和 KV Cache

生成第 t 个 token 时,模型要关注前面 t-1 个 token。前面 token 的 Key/Value 已经算过,而且不会变,所以可以缓存下来。

text
不用 KV Cache:每一步重新计算全部历史
使用 KV Cache:每一步只计算新 token,并读取历史 K/V

它降低重复计算,但会占显存。上下文越长、batch 越大,KV Cache 越大,这也是长上下文服务成本高的重要原因。

对 AI 应用开发的影响很直接:

  • 长 prompt 会增加 prefill 延迟。
  • 长输出会增加 decode 时间。
  • 长上下文会放大 KV Cache 显存占用。
  • 流式输出能降低用户感知等待,但不减少总计算。
  • RAG 和 prompt 压缩能减少无效上下文,间接提升速度和成本表现。

面试官追问3个问题

追问一:为什么 Attention 要除以 sqrt(d)?

  • 考察点:数值稳定性。
  • 回答方向:Q 和 K 的维度越高,点积值通常越大,softmax 容易变得过尖,导致注意力几乎集中到少数位置、梯度也不稳定。除以 sqrt(d) 是缩放点积,让权重分布更平滑,训练更稳定。应用岗位不必长推公式,但要知道它服务于数值稳定。

追问二:KV Cache 训练时能用吗?

  • 考察点:训练和推理差异。
  • 回答方向:训练通常并行处理整段序列,目标是高吞吐地算所有位置的 loss,不像自回归推理那样一步步生成,所以 KV Cache 主要用于推理 decode 阶段。在线生成时历史 token 的 K/V 不变,可以复用;训练时整段序列一次性前向,复用价值和执行方式不同。

追问三:长上下文为什么贵?

  • 考察点:应用成本意识。
  • 回答方向:输入越长,prefill 阶段要处理的 token 越多;生成过程中 KV Cache 也随上下文长度、层数、隐藏维度和 batch 增大,占用显存和带宽。长上下文还可能带来位置偏置和噪声,所以应用侧常用 RAG、摘要、上下文压缩和 prompt caching 控制无效上下文。

扩展知识

Attention 简化公式

text
Attention(Q, K, V) = softmax(QK^T / sqrt(d)) V

面试时不必长时间推导,但要能说出 QK^T 是相关性,softmax 是权重归一化,V 是被聚合的信息。

经典来源

Attention Is All You Need 提出了 Transformer 架构,用 attention 替代循环和卷积来处理序列建模。面试中引用它时不用展开论文细节,重点讲清并行训练、Self-Attention、Decoder-only 生成和 KV Cache 的工程后果。

基于 MIT 协议开源