这两年面过不少做LLM相关岗位的候选人也帮团队面过不少同学。有个很有意思的现象大家技术栈五花八门简历上项目写得一个比一个丰富但面试官翻来覆去问的问题其实高度集中。我梳理了一下真正高频、答不上来就会被刷的基本固定在8个方向上Transformer结构与位置编码、注意力机制细节、KV Cache、预训练与SFT/RLHF/DPO的边界、LoRA原理、幻觉治理、Agent容错控制、部署量化选型。这篇就把这8个问题掰开揉碎把参考回答思路、面试官考察意图、常见的追问分支都写清楚。新手可以拿来自检知识盲区有经验的人也能从“怎么把工程经验讲成面试加分项”这个角度找到参照。1. 面试官到底在考察什么1.1 为什么题目千篇一律淘汰率仍然这么高很多候选人觉得LLM面试题简单Transformer、注意力机制背得滚瓜烂熟结果一到现场就卡壳。问题不在“知识点背没背”而在“你能不能把一个概念讲出深度和边界”。举一个最常见的例子面试官问“为什么Transformer要做位置编码”。初级回答是“因为注意力机制没有顺序概念所以要加位置信息”。这个回答没错但只能拿基础分。面试官真正想听的是三点第一你知不知道RNN和Transformer在顺序建模上的本质差异第二你了解几种主流位置编码方案的演进逻辑比如绝对位置编码为什么外推差、RoPE为什么能外推第三你有没有在实际项目里踩过长文本截断的坑有没有亲手调过位置编码相关的参数。我把这类“表象”和“真实意图”对照着整理了一张表方便你面试前自查面试问题表象真实考察点讲一下Transformer结构是否有完整的知识框架能否把输入、注意力、前馈、残差、LayerNorm串成链路为什么注意力要除以根号d_k是否懂softmax的数值特性而不是背公式为什么大模型推理那么慢是否理解自回归解码的本质是否了解KV Cache等优化SFT和RLHF有什么区别是否理解LLM从“会说话”到“听话”的训练逻辑LoRA可训练参数怎么算是否真的调过参还是只在论文里见过模型产生幻觉怎么办是否有从数据、训练、推理、RAG全链路排查的工程思维Agent工具调用失败怎么办是否真做过AI应用有没有容错设计经验GGUF和AWQ怎么选是否从实际部署场景出发而不是背模型格式对比看出来了吗面试官问的问题听着是“理论八股”实则是在考工程落地能力。理解这一层再去准备答案才不会跑偏。1.2 从近期行业热词看LLM面试的侧重点变化这半年行业里的讨论重心明显在变化。“LLM怎么数据标注”、“本地跑GGUF格式模型”、“构建可靠AI系统”、“LLM智能体自主容错控制”这些话被反复提起说明市场对LLM人才的要求已经从“懂模型”转向“能用好模型”。过去两年面试能讲清楚Transformer和损失函数就能过。现在不行了。团队里大模型越来越多大家发现真正的瓶颈不是训练一个模型而是怎么稳定地部署、怎么低成本推理、怎么让模型在业务里少出错。面试题也随之变“脏”变“实”数据标注质量怎么控制、Agent连续调用工具出错了怎么回滚、算力有限时量化选型怎么做。所以这篇文章的8个问题不光是背答案我会尽量把“工程现场”还原出来帮你把每个知识点落到真实场景里。2. 原理类必问题Transformer、位置编码与KV Cache2.1 问题1Transformer为什么需要位置编码RoPE为什么成为主流先给一个分层回答框架。第一层Transformer的注意力计算是“词与词两两之间”的运算它天然不具备时序概念。把“我喜欢苹果”改成“苹果喜欢我”Attention看到的是同一组词但语义完全变了。RNN是按时间步逐个处理天然有顺序Transformer必须把位置信息作为额外输入这就是位置编码的由来。第二层早期方案是绝对位置编码BERT用正弦函数GPT用可学习参数。它们的问题是外推能力差——训练时最长见过512或1024个位置推理时给到2048模型没见过那么靠后的编码效果会崩。第三层RoPE旋转位置编码的思路是“通过旋转矩阵把位置信息乘进Query和Key”让它对相对位置敏感。因为旋转矩阵有周期性模型能学到“距离5步”和“距离3步”的相对关系外推能力明显更强。现在主流开源模型基本都用了RoPE或其变体。面试时如果追问“长上下文怎么做”可以补一段实践。我实际做长文档抽取时发现位置编码只是基础真正决定效果的是训练时是否做了“长度外推”的曲线调整。比如先用短序列训练再把位置编码的基频调大做继续训练。这些细节讲出来面试官会认为你真的处理过超长文本而不是只会背架构图。2.2 问题2注意力公式里为什么要除以根号d_k这个问题我见过无数人栽跟头。很多人直接说“防止点积过大导致softmax梯度消失”但再问一句“为什么点积会过大具体大到什么程度”就答不上来了。完整逻辑是这样的。假设Query和Key的每个维度都是均值0、方差1的独立随机变量两个向量做点积结果就是d_k个乘积的和。每个乘积的均值是0但方差是1所以d_k维点积的方差是d_k标准差是根号d_k。d_k如果是64点积的标准差就是8数值很容易跑到十几二十。softmax在这些数值上会进入饱和区输出概率非常接近one-hot形式反向传播时梯度极小模型学不动。除以根号d_k之后点积结果的标准差被拉回1附近softmax落在线性区附近梯度能顺畅流动。我建议面试时说的时候顺手给个微型推导E[q·k] 0Var[q·k] d_k所以用根号d_k做缩放。这一套讲完基本能把这个问题吃透。追问分支也很多比如MHA多头的意义每个头学不同子空间。再比如GQA和MQA为什么省显存。MHA要缓存每组Query/Key/ValueMQA是所有头共享一份Key/ValueGQA是中间态——几个头共享一份。这些优化后面接KV Cache问题很自然面试官会觉得你的知识是连成网的。2.3 问题3KV Cache是什么为什么能加速推理当年第一次被问这个问题我自信满满回答“就是把历史token的Key和Value存下来重复使用”被面试官追问一句“那为什么不能用Query做缓存”就噎住了。后来自己写推理引擎才彻底明白。自回归解码分为两个阶段。预填充阶段输入整个Prompt每个token的Key和Value一次性算出来。解码阶段每次只生成一个新token新token的Query要去和之前所有token的Key做注意力。如果不缓存每生成一个token都要重新把所有历史token过一遍Transformer复杂度是O(n²)。有了KV Cache历史token只算一次后面每步只算新token的K和V然后拼到缓存里。生成阶段从O(n²)降到O(n)。面试官大概率会追问“KV Cache的代价是什么”。答案很直白显存。一个7B模型、4096上下文、每层都存K和V显存占用轻松上GB。所以有了PagedAttention像操作系统管理内存页那样管理KV块减少碎片有了GQA通过共享KV头直接砍缓存量。我在一次部署实践中只是把模型头数从MHA改成GQA结构同上下文下显存占用少了近三分之一吞吐明显上来了。这种数字比背十页论文都有说服力。3. 训练与数据类高频题SFT、RLHF/DPO、LoRA3.1 问题4预训练、SFT、RLHF/DPO分别解决什么问题很多候选人把这三个词挂在嘴边问细了就开始含糊“不就是先训练再微调再对齐吗”这个答案太稀松平常。要拿高分得把“为什么缺一不可”讲清楚。预训练解决的是语言能力——通过海量文本的自回归任务让模型学会词语搭配、语法结构、世界知识。这个阶段的模型像一本百科全书你问它什么它能往下接但它不懂“问答的规矩”。可能你问“11等于几”它回一句“等于2不过这个问题的另一种理解是……”啰嗦且不听话。SFT解决的是“对话形态”。用人工写好的指令-回答对教模型“用户提问你直接答不要发散”。这个阶段把模型从“文本续写器”掰成“助手”。但SFT也有边界它只能模仿人在数据里展现的行为分不清“什么回答更被喜欢”。RLHF/DPO解决的是价值观对齐和偏好对齐。RLHF通过训练一个奖励模型来打分再用强化学习让模型输出更符合人类偏好DPO更巧妙绕过了奖励模型直接用偏好数据对做策略优化。一句话总结预训练学知识SFT学对话形式RLHF/DPO学偏好。这里有个常见追问“如果只能选一个SFT能不能替代RLHF”我的经验是不能完全替代。SFT能让模型输出格式正确但遇到“两个回答都正确一个更简洁、一个更啰嗦”这类偏好问题时只有偏好对齐能学到“人类更喜欢哪种”。做中文内容生成项目时我对比过只做SFT和继续做DPO的版本后者在人工盲评里的胜率明显高尤其在“语气是否自然”这种模糊指标上。把这段对比讲给面试官问题就活了。3.2 问题5LoRA的原理是什么可训练参数怎么算LoRA是我最喜欢拿出来考人的题因为它特别能区分“读过论文”和“动手训练过”。要求一句话说清原理冻结原模型权重在旁边插入低秩分解矩阵用少量参数去模拟权重更新。展开讲一下低秩原理。全量微调时权重矩阵的更新量ΔW理论上和原矩阵同尺寸。但研究者发现ΔW的有效秩其实很低没必要存一个完整的大矩阵可以把它分解成两个小矩阵的乘积。假设原矩阵是768×768用r8的LoRA只需要训练768×8 8×768 两个矩阵参数量从59万降到1.2万左右约等于原来的2%。这个比例可以现场口算面试官很吃这一套。复数一下全量微调参数量 768 * 768 589,824 LoRA参数量 768 * 8 8 * 768 12,288 节省比例 ≈ 1 - 12288/589824 ≈ 97.9%追问方向集中在“LoRA会不会比全量微调效果差”“怎么选r值”。我的回答是数据量少、算力有限时LoRA效果往往不输全量还能避免灾难性遗忘但数据量很大且任务和原模型差距很大时低秩假设可能不够用这时候要加大r甚至考虑全量微调几个层。实际操作里我还会强调“只训练注意力层的LoRA”还是“所有层都训练”这直接决定效果和显存属于调参的隐藏知识点。如果面试官接着问QLoRA补一句“在LoRA基础上对原模型做4-bit量化进一步降低显存但量化误差通过LoRA的可学习参数来吸收”基本就过关了。3.3 问题5的延伸数据标注的质量怎么控制最近“LLM怎么数据标注”这个话题讨论度很高面试里也常作为场景题出现。核心问法“给你一批原始语料要做SFT数据你怎么保证质量”我的框架是四步。第一定任务规范明确每条数据要包含什么字段比如指令、输入、标准输出还要标注边界情况。第二写标注手册每个字段配正例和反例反例尤为重要——告诉标注者“这种不要”。第三做双重标注和抽检同一批数据让两个人标计算一致率低于阈值的打回重标。第四用小模型做一轮质量滤波灌进模型跑一遍看输出是否符合预期把明显的坏数据淘汰掉。这题很容易被追问“坏数据长什么样”。我总结过几类高频问题指令不明确、标准答案本身就是错的、上下文信息缺失、答案风格不一致、包含隐私或敏感内容。每类我都有一套应对方案最朴素但有效的是“抽读法”——随机抽100条人工逐条读一遍体感质量比任何自动指标都准。面试时能说出这套脏活细节会非常加分。4. 应用与工程类重点题幻觉治理与Agent容错4.1 问题6模型幻觉从哪来线上系统怎么治幻觉是LLM应用绕不开的话题也是面试官最爱用来考“工程思维”的问题。我见过最差的回答是“用RAG就好了”这个答案约等于没说。先说幻觉成因至少有三个层次。训练目标层面语言模型学的是“下一个词的概率分布”它不区分“事实”和“虚构”只要词面流畅就行。数据层面训练语料本身就有错误信息和矛盾表述模型把这些也学进去了。解码层面采样策略比如temperature偏高会放大随机性让它越说越离谱。治理方案要分位置说。推理侧最便宜把temperature调低用top-p截断减少发散。数据侧最根本在SFT阶段加入“我不知道”类的拒答数据教模型在知识边界外承认不知道。系统侧最常用RAG让模型基于检索到的文档回答。但RAG不是银弹检索结果不相关时模型会把文档里无关内容也编进去。我在做法律问答系统时踩过这个坑后来加了“检索置信度判断”——相似度低于阈值时直接拒答而不是硬答整体准确率上了一个台阶。再深一层面试官可能问“怎么评估幻觉”。传统做法是让GPT-4打分但更工程化的方式是建立“事实一致性测试集”每条用例包含问题、标准答案、干扰文档看模型能不能抵抗干扰。把这些说完面试官很难再问倒你。4.2 问题7Agent应用怎么设计才可靠工具调用失败怎么容错这题是最近面试里的新贵。大模型本身回答错了可以改但Agent在业务流程里一旦出错影响会被放大所以“自主容错控制”几乎成了必考项。先理解Agent的基本结构模型根据用户任务生成计划规划需要调用哪些工具解析工具返回结果再决定下一步。这个循环里至少有四个必挂点对应的容错方案我列一下任务规划出错模型把任务拆错了。对策是给模型提供清晰的工具说明和边界条件并在Prompt里强制要求“每一步都输出当前状态和下一步意图”这样出错了能定位到具体步骤。工具调用格式出错模型生成的JSON参数不合法这是最高频的问题。我的方案是做两层容错第一层让模型输出时把工具调用放到固定格式里比如用特殊标记包裹第二层在代码里做JSON解析兜底解析失败时用正则抽取关键参数再不行就报错并让模型“重新生成一次调用”。实测下来重试一次能解决大部分格式问题。工具返回异常返回空值、超时、报错。策略是给失败响应分类网络错误可以重试业务错误要终止流程并转人工或转用备用工具。我在做天气查询Agent时天气API偶尔返回404一开始直接让模型回答“天气服务不可用”后来改成“换一个查询维度再试一次”体感好了很多。多轮循环失控模型陷入死循环反复调用同一个工具。必须设最大迭代次数到顶后强制收敛输出当前已获得的结论。这个设计就像给Agent加了一个熔断器。面试官很可能会追问“模型输出的所谓元评论残留怎么处理”。这是真实现象模型在工具调用前后会输出一些自言自语式的中间解释。处理方案很粗暴也有效——把工具调用结果和推理过程分开存储界面只展示最终答案推理链单独记录用于调试。把这些细节讲出来面试官会觉得你不是停留在概念层。5. 部署与评估类实务题量化选型、推理框架与评测5.1 问题8GGUF、AWQ、GPTQ这些量化方案怎么选最近“安卓本地运行GGUF格式LLM软件”这类话题很热量化确实从实验走进了日常。面试题一般会这样问“一个7B模型要在16G显存的卡上跑选什么量化方案”先说清楚量化是什么。模型权重本来是FP16每个数占2字节量化就是用更少的bit去近似表示权重比如INT81字节或INT40.5字节7B模型FP16要14G显存INT4直接压到3.5G左右。代价是精度损失尤其在有复杂推理任务时。主流方案分几类。GGUF是llama.cpp生态的格式特别适合CPU推理和边缘设备因为社区对各类CPU和Apple Silicon优化做得很好低端设备选它。GPTQ是早期GPU上比较流行的PTQ方案把权重按列做量化补偿精度在GPTQ、AWQ里都算稳的适合N卡离线量化后用vLLM加载。AWQ是激活感知量化它会统计各层激活值分布保护对激活影响大的权重通道在低bit下精度保持更好。我的经验N卡部署、追求吞吐选AWQ或GPTQCPU或Mac跑本地、要省事选GGUF现在很多设备已经支持直接加载小模型做本地私有化问答实测下来GGUF的兼容性确实最稳。追问方向一般是“INT4够不够用”。我的回答是聊天、摘要、分类这类任务基本够用4bit损失不大代码生成、数学推理、复杂Agent这类需要多步推理的任务建议6bit或8bit起步。实际操作里我会把同一条复杂指令分别跑FP16和INT4人工对比输出质量比自己脑补参数靠谱得多。5.2 现场还要会回答推理框架怎么选、评测怎么做这其实是问题8的延伸很多面试官会顺着往下问。推理框架不要背对比表要按场景答。追求单机高吞吐用vLLM它的PagedAttention对KV Cache管理很好连续批处理能力很强。做边缘部署用llama.cpp或Ollama轻量且方便打包。做企业级多卡服务可以考虑TensorRT-LLM但生态相对重二次开发成本高。评测这块我的建议是讲方法论比讲指标更重要。业界常用MMLU测知识、GSM8K测数学、HumanEval测代码但工程落地还得多做一层的“业务评测”。我在实际项目里会构造50到200条贴近真实场景的用例人工标注好标准答案每次模型迭代都跑一遍。指标不只看准确率还要看“召回不充分”和“误答”两类错误的分布。面试官听到你连错误类型都做过区分就知道你不是拿公共榜单糊弄事。6. 新手最常踩的坑与面试避雷指南6.1 五个高频误区的正解对照每年面试我都能碰到一批“背题选手”他们在一些看似基础的细节上反复翻车。我把高频误区整理出来常见误区正解我的建议位置编码是可有可无的细节没有位置编码的Transformer就是词袋模型从Attention公式出发自己推导一遍无序性KV Cache是推理框架自动处理的它直接决定显存和吞吐的瓶颈手动估算一次7B模型的KV显存占用RLHF一定比DPO好各有优劣DPO不需要奖励模型、更稳结合你的算力规模做选型不要迷信某一个LoRA一定不如全量微调数据不足时LoRA泛化甚至更好跑一组对比实验记录数据量、r值与效果的关系幻觉只能靠RAG解决RAG只是系统侧手段之一数据层和解码层都能治学会按成本从低到高排列治理方案每个误区背后都是“知识没打通”的表现。面试官只要追问一层就能看出你是真懂还是背稿。6.2 面试中怎么把“不会”变成“加分”最后聊点我个人的面试经验。很多人遇到不会的问题第一反应是懵然后强行编这是最糟糕的。我在实际面试里反而会给“不会”留出空间关键是展示解决问题的路径。比如面试官问一个我没接触过的模型结构我会说“这个结构我还没实际用过但按我对注意力机制的理解它可能是想解决某某问题如果让我上手我会先做A实验、再对比B指标来验证”。这样回答既诚实又展示了学习能力和排查思路。面试官招的是“能在未知问题上跑起来的人”不是“什么都会的人”。还有个小技巧回答技术问题时别只停在原理层主动抛一个工程约束。讲LoRA时补一句“当时显存只有16G所以我选了r8的QLoRA”讲Agent时补一句“我们设了最多重试3次超过就转人工”。这种带着约束的答案才像一个真正做过事的人说的话。知识框架是树的枝干工程细节是叶子。面试官真正想看的是一棵活着的树不是一张知识清单。把原理和踩坑串成自己的故事比背一百道题都管用。