LLM面试高频八题:从Transformer原理到RAG工程落地

发布时间:2026/10/26 5:42:57
LLM面试高频八题:从Transformer原理到RAG工程落地

最近这两周,我以面试官的身份密集面了二十多个做 LLM 方向候选人,有一个很扎心的现象:约三成的人在第一个问题上就卡了壳,超过一半的人撑不过前三个问题。多数人简历上写着“熟悉大模型微调”“精通 RAG 应用”,可一旦往下追问原理和工程取舍,立刻露馅。

这八道题不是我随手列的,而是过去一年我在实际招人、带项目、做技术评审过程中沉淀下来的高频问题。它们覆盖了从模型原理、训练方法到推理优化、应用落地的完整链路,每一道背后都对应着真实项目里必然会碰到的坎。这篇文章我就把这八道题的考察意图、参考答案思路、以及面试官追问时的真实心理都摊开来聊,给准备面试的朋友一份可以直接照着复习的清单。

1. 面试官视角:这八道题到底在筛选什么

1.1 先别急着背答案,搞清楚考察的真正逻辑

很多人以为面试题考的是“知识储备”,其实考的是“你有没有真正做过”。LLM 这个领域最大的特点是信息差极其严重——网上的教程铺天盖地,但大部分停留在跑通 Demo 的层面。跑过transformers库的 Trainer 和真正理解训练过程中的梯度流动、显存分配、数据配比,完全是两回事。

我设置这八道题的原则很简单:每道题都有一个“背不下来”的追问点。比如问自注意力机制,真正考察的不是你能不能说出 QKV 三个字母代表什么,而是你知不知道为什么要除以根号 d_k;问 KV Cache,不是要你背定义,而是让你算一笔显存账。能在追问中接住话的人,一定是在项目里被这些问题真实折磨过的人。

1.2 直接淘汰的三种典型表现

结合我的面试经验,答不上来的人往往不是知识量不够,而是踩了下面几个坑:

  • 只背结论不推过程。比如张口就说“用 LoRA 省显存”,但问为什么 LoRA 能省显存、秩选多少合适、省下来的显存花在了哪里,就答不上来了。
  • 概念混在一起。把 SFT 和 RLHF 混为一谈,认为“反正都是让模型更听话”;把 model parallelism 和 data parallelism 搞混。
  • 缺乏数字敏感度。描述 RAG 系统时说不出 chunk 大小、embedding 维度、检索 TopK 这些关键参数,更没有调优的经验。

这一轮筛下来,能进入下一面的人通常不到三成。

2. 原理底层:先看你是不是真懂 Transformer

2.1 必问第1题:能不能用你自己的话讲清白化注意力机制

这是 LLM 面试的第一道关卡,基本没有商量余地。完整回答要覆盖:输入经过三个线性层得到 Q、K、V;注意力分数 = QK^T / sqrt(d_k);softmax 归一化;最后与 V 加权求和。但真正的分水岭在于“为什么要除以 sqrt(d_k)”。

原因不复杂:当向量维度 d_k 较大时,Q 和 K 的点积数值方差会随着维度增大而增大,导致 softmax 之后的分布过于尖锐,落在梯度很小甚至消失的区域。除以 sqrt(d_k) 等于把方差拉回到 1 左右,让梯度保持在一个健康的范围。这里如果能补一句“这本质上是温度缩放”就加分了——LLM 推理时的 temperature 也是同一套控制分布陡峭程度的思想。

面试官通常还会追问多头注意力。考察点有两个:第一,多头让模型在不同表示子空间里并行关注不同位置的信息,类似多个“视角”投票;第二,多头本身不引入过多参数,因为每个头的维度相应降低了,总计算量基本不变。能说出这个权衡,说明你真的跑过实验。

2.2 必问第2题:位置编码的演进与长度泛化

Transformer 本身对序列顺序不敏感,所以必须注入位置信息。这个问题的高频追问线是:从最原始的三角函数绝对位置编码,到 RoPE,再到 ALiBi,演进逻辑是什么、各自解决什么问题。

满分回答思路大概是这样的:

  • 三角函数编码把位置信息加到 token embedding 上,简单直接,但模型没见过比训练长度更长的位置,外推能力差。
  • RoPE 的核心是把位置信息通过旋转矩阵注入 Q 和 K,好处是它天然编码了相对位置关系,因为旋转角度差只和相对距离相关。这也是 LLaMA、Qwen 这些主流模型选择 RoPE 的原因。
  • ALiBi 更“偷懒”——不修改网络结构,直接在注意力分数上加上一个和 token 距离成正比的惩罚项。它对外推更友好,但牺牲了一定的表达能力。

如果候选人能提到“RoPE 在长文本下高频信息衰减”这类实际训练中才会遇到的细节,我会直接在心里加分,因为这个东西不跑实验根本发现不了。

3. 训练方法:从预训练到对齐,考的不只是流程背诵

3.1 必问第3题:预训练和 SFT 的本质差异

大模型训练流程早就是公开知识了:预训练、SFT 监督微调、RLHF 对齐。问这道题不是让你背三个阶段的名字,而是看你能不能讲清“为什么缺一不可”。

关键回答点是损失函数和数据形态的差异。预训练优化的是下一个 token 预测的交叉熵损失,数据是海量无标注文本,目标是让模型学到语言的统计规律——可以理解为给模型“打底子”。SFT 阶段则用高质量的指令-回答对,目标是让模型学会“以对话的方式回答问题”。一个形象的类比是:预训练是让一个普通人博览群书,SFT 是教他如何参加考试、如何答题。

面试官常在这里追问:“既然 SFT 效果这么好,为什么还要 RLHF?”这就要点出 SFT 的局限:SFT 只教模型“像答案的答案”,但不教模型区分“好的答案”和“更好的答案”。RLHF 引入人类偏好信号,本质是让模型学会生产更符合人类偏好的回答,在开放性任务上效果尤其明显。提一句“RLHF 依赖标注质量,而标注一致性本身是个大坑”会非常加分。

3.2 必问第4题:RLHF 与 DPO,别只记得流程图

RLHF 的经典链路是:训练一个奖励模型 RM,然后用 PPO 算法让策略模型在最大化奖励的同时不要偏离参考模型太远。这里的高频追问是“PPO 里 clip 损失是干什么的”——答案是为了防止策略更新幅度过大导致训练崩溃。能把 clip 比例(通常 0.2)说出来、并举个训练震荡的例子,就是有实操经验的人。

但这两年 DPO 越来越流行,面试官几乎必追问:“DPO 和 RLHF 比,优势到底在哪里?”这个问题我会盯着两个点:

  • DPO 直接使用偏好对数据优化策略,不需要单独训练 RM,省去了一个训练阶段,管线大幅简化。
  • 它把 RLHF 的多阶段问题转化为一个简单的分类式损失,在数据量有限的场景下效果稳定得多。

如果候选人能补一句“DPO 对偏好数据的质量要求反而更高,数据噪声会导致模型崩坏”,说明他确实亲手训过模型,而不是只看过论文。

3.3 必问第5题:LoRA 为什么能低秩逼近

这是微调领域最核心的问题,考察面很广。先要说出 LoRA 的核心思想:冻结预训练权重,在旁路插入两个低秩矩阵 A 和 B,训练时只更新这两个矩阵。A 会把输入压缩到低维空间,B 再映射回原始维度,最终的权重更新量 ΔW = BA。

面试官马上会追问两个问题:

  • 为什么低秩就够了?这背后是“intrinsic dimensionality”的思想——预训练模型的权重本身就高度冗余,有效更新可能集中在一个低维子空间中,所以不需要全量更新每个参数。一个经验数字是:LoRA 的秩 r 在 8~64 之间通常就能逼近全参微调的效果。
  • LoRA 为什么省显存?因为训练时不需要给原模型权重计算梯度、不需要存储优化器状态,只有两个小矩阵参与更新。

还有一个踩坑点很值得说出来:LoRA 省的是训练显存,推理时如果合并权重,算的是合并后的参数矩阵,单次推理速度不会有本质提升。很多人把这两者混为一谈,面试官一听就知道不对劲。

4. 推理优化:这一关直接决定你能不能落地

4.1 必问第6题:KV Cache 的原理与显存账本

大模型推理阶段最能拉开差距的问题就是 KV Cache。为什么需要它?因为生成式推理是逐 token 进行的,已经生成过的 token 的位置编码和自注意力键值会反复被计算。如果每次生成都重算,算力浪费极其严重。KV Cache 的核心思想就是把历史 token 的 K、V 缓存下来,后续生成时直接复用。

但这里有个隐藏的代价——显存。考察过这个问题的人如果对显存没有概念,我一般会当场算一笔账:

一个 7B 模型的 hidden size 为 4096,层数为 32,KV Cache 的显存占用约等于2(K和V) × 32层 × 4096 × 序列长度 × 精度字节数。以 2KB precision、序列长度 2048 计算,这个数值大约为 1GB 左右。如果序列长度翻到 32K,显存占用会成倍上升,这也是长上下文推理必须要用 vLLM 这类框架的原因——它通过 PagedAttention 把显存池化、按块管理,减少碎片浪费。

到这里,如果候选人说得出“vLLM 用 PagedAttention 解决 KV Cache 碎片化问题,类似操作系统虚拟内存的分页机制”,哪怕流利度一般,我也知道这人真的部署过模型。

4.2 必问第7题:模型量化与推理加速

这道题考察工程落地能力。答案要从精度和显存两个维度展开:量化把权重从 FP16 降到 INT8 甚至 INT4,以精度损失换显存减半和推理加速。INT8 量化后显存占用比 FP16 几乎减半,推理吞吐量通常能提升 30%~100%,返回的精度损失却可能只有 0.5~2 分。

顺着这个方向,面试官十有八九会追问“有哪些量化方式”。比较扎实的回答脉络是:

  • 训练后量化(PTQ):用校准数据统计权重和激活的分布,确定缩放因子。简单但对低比特支持不够好。
  • 量化感知训练(QAT):在训练过程中模拟量化噪声,让模型权重去适应量化误差,精度保留更好但要改动训练流程。
  • GFQT/AWQ:从激活值分布角度确定哪些权重量化误差影响大,优先保留关键通道精度,是目前在 Llama 系列上效果比较稳定的方案。

如果候选人能提到 GGUF 格式和 llama.cpp,说“本地部署CPU也能跑就是因为量化+内存映射”,我会觉得这个人的经验地图非常完整。顺带说一句,现在很多人拿手机本地跑量化 LLM,背后的原理也是这套。

5. 应用落地:RAG 与幻觉控制,最后的差距拉开

5.1 必问第8题:幻觉问题的系统性解法

幻觉是大模型落地最头疼的问题,面试几乎必问。我建议候选人把回答分成两个层面:“模型层”和“应用层”。

模型层的方案包括更好地对齐(RLHF/DPO)、引入事实性训练语料、推理时加大约束等等,但成本高、见效慢。真正在工程上常用的是应用层方案,核心是 RAG——把知识外置,让模型先检索再回答。

到这里要重点展开 RAG 设计的细节,这是区别深浅的关键。需要说清楚:文档切分(chunk)怎么选、向量化用什么模型、检索 TopK 多少、有没有做重排。比如 chunk 大小一般取 200~500 token,太大会带入无关上下文,太小则语义不完整;embedding 模型常用的有 text-embedding系列和 bge 系列;检索的 TopK 一般在 5~10 之间,配合 cross-encoder 重排效果更好。有自己的经验值,面试官一听就知道你踩过坑。

补充一个加分项:如果把幻觉和 Agent 挂上钩,强调“Agent 场景里模型自主决策对错误认知的累积放大”会更出彩。LLM 智能体在多步任务中一旦幻觉引发错误,后续步骤会在错误基础上继续推理,错误会被逐步放大,所以自主容错控制是构建可靠 AI 系统最核心的工程挑战。能提到这一点,几乎就是满分答案。

5.2 面试官给出的加分项与追问应对

除了上面八道题本身,我在实际面试中还会留意候选人在追问中的几个“加分动作”,这里也一并透个底。

第一,主动给数字。聊到任何系统、方法、参数,能立刻跟上“我们在实际项目中设置为多少”“相对基线提升了多少”的候选人,我用人的偏好会强烈倾斜。比如“chunk 我们试过 200/400/800,400 在召回率上相对最优”。

第二,主动说踩坑经历。比如聊到 RAG 的时候,主动说“我们发现切得越细,检索出来的内容越碎,反而拉低了生成连贯性”的人,大概率是真正经历过完整项目周期的。

第三,追问时别急着作答。遇到不会的追问,花 10 秒把问题拆解成自己熟悉的领域再回答,比支支吾吾硬答要好得多。面试本质上是沟通,不是背诵比赛。

四、避坑建议和准备工作

准备这组题目的时候,有一条建议想单独拎出来说:不要按题库顺序死背,要把知识串成一张网。比如从 Transformer 原理出发,自然延伸到 KV Cache,再到 vLLM 的显存优化,再到长文本外推,每一步都问自己“如果不这么做会怎样”。当所有概念能用一条因果链串起来,面试中才会变得从容。

不少候选人以为把主流大模型的博客翻一遍就足够了,实际上 LLM 面试最看重的恰恰是“系统化思维”。比如问“为什么 Qwen 选择 RoPE 而不是 ALiBi”,如果只能回答“可能是工程偏好”,那就是没想清楚。正确思路是结合模型支持的上下文长度、训练稳定性、代码实现成熟度综合判断。这些思考,需要你平时自己跑实验、读源码、跟同事讨论时主动去积累。

另外,如果时间允许,建议把项目的核心数据好好回忆一遍:训练 loss 曲线如何归档、显存峰值多少、一次微调多少卡跑多久、检索准确率多少。面试官很少对人品造假的人有好感,但对数字清晰的人是天然信任的。

面了这么多人之后,我最大的感受是:LLM 这个领域,背题是背不出高手的。真正的区分点永远是“你有没有亲手把一个模型训起来、部署出去、调好性能、解决过线上问题”。这八道题,与其说是一场考试,不如说是一次快速判断“这个人能不能直接上手干活”的筛选。如果你现在正好在准备面试,建议你拿这八道题自测一遍,能不看资料把每一道题的逻辑链讲通,那你离 Offer 已经很近了。