经常有朋友来找我模拟大模型面试,简历上看项目一个比一个唬人,结果我问到“你说说Token是什么”,都能答错方向。要知道,LLM方向的面试已经卷到字节级了,面试官不会因为你背了一堆概念就放你过关,而是会从最基础的原理一路追问到工程落地。这些年我既当过候选人,也坐在面试官的位置上筛过人,总结下来,不管你是投算法岗、大模型应用开发岗,还是所谓的“LLM工程师”,这8个问题几乎是必问的,答不上来基本直接淘汰。
这篇文章就是把这8个问题掰开揉碎,讲清楚面试官到底想听什么,怎么回答才算打到点子上,顺便把我实际面试中看到的那些“加分回答”和“送命回答”都摆出来。无论你还有几天面试,还是刚开始准备,看完都能直接拿去用。
1. 先搞懂面试官在考察什么
很多候选人准备了大量刷题和八股文,但一到现场就发现面试官问得很“飘”。其实面试官的考察逻辑非常固定:看你是否真正理解大模型的工作原理,而不是只会调库调API;看你能不能把技术选型和业务场景挂钩,而不是只会背名词;看你在压力追问下是否能保持逻辑清晰,而不是慌张改口。这8个问题,本质上就是在不同维度上做“压力测试”。
1.1 面试官真正想看的不是背诵而是思维
有一次我面试一个候选人,简历上写着“熟悉Transformer”,我问:“如果我把句子的顺序打乱,self-attention的输出会变吗?”他愣了半天说:“应该不会吧,因为attention是两两之间计算的。”这个回答暴露了致命问题:他只知道注意力机制会计算两两关系,但完全没考虑位置编码的影响。面试官考察的不是你会不会背attention公式,而是你能不能把多个知识点串联起来:位置编码改变、attention输入改变、输出自然改变,除非你用的是相对位置编码但依然受限于窗口。
所以准备面试时,千万别光背结论。面试官喜欢先送一个简单的概念题,然后不断加条件、变场景、挖细节,这个过程是观察候选人思维习惯的黄金时间。如果你习惯性地只给出“是什么”而不解释“为什么”和“如果呢”,在这类面试中很容易露出破绽。
1.2 这8个问题如何覆盖能力地图
我把LLM面试的能力要求拆成三层:底层是模型原理(Token、Transformer、上下文窗口),中间层是训练与优化(预训练、微调、LoRA、幻觉),应用层是工程落地(RAG、Prompt、评测、Agent)。这8个问题每两个对应一层,同时还会交叉考察。比如问RAG的时候,会顺带问嵌入模型和排序模型,问Agent的时候会问到工具调用和记忆管理。所以你会发现,这8个问题看起来是8个,实际上可以扩展到几十个追问点,是一张完整的能力地图。
如果把精力只花在某一个特别偏门的知识点上,比如“FlashAttention的具体分块策略”,面试官未必会问;但任何一个基础问题背后延展出来的“工程链路”知识,才是真正的高频考点。接下来我按面试现场的真实节奏,把这8个问题一个个拆给你看。
2. 8个必问题详解(第一部分:模型基础)
这一部分讨论的是面试中开场最常出现的三道题,它们决定了面试官对你的第一印象。这三个问题都围绕“是否真的理解大模型底层机制”。
2.1 问题一:什么是Token?为什么相同文本Token数会不同?
面试官问这个问题,通常不是为了听你背定义,而是想看你对分词、词表、编码方式的理解深度。你要先说清楚:Token是大模型处理文本的最小单元,它可以是单词、子词、汉字、甚至字节;当前主流大模型多用BPE(Byte Pair Encoding)或其变体来做子词切分。然后你要解释为什么同样一句话Token数会不同:不同模型有不同词表,比如GPT系列和Llama系列的分词逻辑不同;同样一个英文单词,如果出现在词表中则分一个Token,否则会被切成更细的子词;中文场景下,字、词粒度也取决于分词器的训练语料,比如“大模型”可能是一个Token,也可能被拆成“大”和“模型”两个Token。
光说这些还不够,最好能补充“Token数量直接影响算力和成本”这个工程点:模型最大输入长度限制的是Token数而不是字符数;计费也按Token计算;KV Cache的大小也和Token数强相关。我当时面试时还补了一个细节:用同一句话分别在不同模型上测Token数,GPT-4的Tokenizer和Llama 3的Tokenzier结果不一样,有的甚至差30%以上,这会影响实际成本预估。面试官听到你做过实测,基本会在这个问题上给高分。
再追加一个容易踩坑的点:有些候选人说“Token数越多,模型理解越差”,这在多数情况下不成立。Token数多只是表示切分更细,模型照样能处理,只是计算效率可能下降。如果有条件,可以提一下预填充阶段和解码阶段对Token的不同处理方式,这能体现出你不只是看了科普文章。
2.2 问题二:能不能讲清楚Transformer的self-attention?为什么不用RNN?
这题几乎是大模型面试的“必答热身题”。注意,面试官用的是“讲清楚”,不是“背公式”。你光把Q、K、V公式写出来,只能算及格。更高分的回答应该包含这几层:
第一层,self-attention的核心目的是建模序列中任意两个位置的关系。由于是直接两两计算,所以长距离依赖比RNN更容易捕获,而且可以并行计算。第二层,讲讲缩放点积注意力的具体计算:先通过输入向量乘三个权重矩阵得到Q、K、V,然后计算Q乘K的转置,除以根号d_k做缩放,再softmax得到权重,最后加权V。这里一定要解释为什么除以根号d_k:如果不做缩放,当维度变大时点积结果会很大,softmax会进入饱和区,梯度极小,训练困难。第三层,说说为什么RNN被替代:RNN按时间步顺序计算,无法并行,且长距离依赖会因梯度消失而丢失;LSTM虽然缓解了部分问题,但仍无法完全解决,也没有并行能力。
如果你还能主动提到MHA(多头注意力)的作用——不同的注意力头各司其职,有的关注语法关系,有的关注指代关系,有的关注局部模式,那就更好了。我在面试里见过一个很漂亮的展开:面试官问“为什么transformer能用卷积网络没用上的位置编码”,候选人顺势讲了绝对位置编码、相对位置编码和RoPE,这才叫“讲清楚”。反过来,如果只丢一个公式,然后说不出任何设计理由,基本上这题就凉了。
2.3 问题三:大模型的上下文窗口限制到底卡在哪?
这题的核心要回答出三个层面:一是现象,模型只能处理一定长度内的输入,超出后会报错或性能骤降;二是直接原因,训练时上下文长度固定,位置编码外推能力有限,推理时内存和计算量随序列变长呈平方级增长;三是本质原因,KV Cache占用显存、attention计算量巨大。多数候选人能说到第一层第二层,但能说到第三层的很少。
如果面试官追问“为什么超长文本性能会下降”,你要能解释相对位置编码(如RoPE)虽然有一定的外推能力,但超过训练长度后,位置旋转角度超出模型见过的分布范围,attention分数分布会异常,最终导致困惑度飙升。另外,还要能区分“训练时上下文长度”和“推理时窗口”的关系:你用4K上下文训练的模型,强行在32K上下文下推理,往往不是简单截断就能跑出好效果,必须配合长度外推方法,如位置编码插值、NTK-aware RoPE、窗口滑动等。我在面试中还会被追问:“实际线上应用中,怎么拖长上下文?”这里可以提一下上下文工程:做检索截断、文本摘要压缩、滑动窗口改写,而不是无脑增大窗口。
这个问题的加分项是量化:一个8K窗口的请求,在预填充阶段大概需要多少显存?如果你能快速粗算出来——KV Cache单层显存约为 2×序列长度×隐藏层维度×层数×(1字节或2字节),会立刻惊艳面试官。不用计算精确值,会推导思路即可。
3. 8个必问题详解(第二部分:训练与优化)
经过基础模型原理之后,面试官通常会转向“你会不会训练/调模型”。这也是区分算法岗和应用岗的岔路口。
3.1 问题四:预训练和微调的区别?什么时候用LoRA?
这个问题看似基础,但能考出你是否真的做过模型训练。你需要说清楚:预训练是海量通用语料上从零学习语言规律,目标是构建通用的语言表示底座,通常需要成千上万张GPU卡和数TB数据;微调是在基座模型基础上用特定领域数据调整参数,让模型适配某个任务或风格。如果你把“RAG”当作微调的替代品来回答,也算一种思路,但要先说清本质差异:微调改变模型权重,RAG不改变。
接下来要说到LoRA的精妙之处:低秩分解。LoRA假设模型在微调时的权重更新量是低秩的,于是将增量矩阵ΔW分解成两个小矩阵A和B,A降维、B升维,训练时只更新A和B。这样可训练参数量降到极低,比如7B模型可能只需要训练几百万到几千万参数,显存要求大幅下降。而且LoRA可以做到多个任务各自存一个小分支权重,切换时互不影响,这在服务端非常实用。
面试官大概率会追问:“LoRA应该加到哪些模块?秩怎么选?”你要答得出来:通常加到attention层的Q、K、V、O矩阵上,有时也加到MLP层;秩r常见选择8、16、32、64,如果任务专业性越强、数据量越大,秩可以适当调大,但过大的秩会增加过拟合风险和存储成本。还有alpha参数等于“缩放比例”,通常设成r的两倍或与r相同。最好还能补一句:LoRA并没有显著降低推理速度,因为合并权重后几乎没有额外计算开销,这是它能大规模应用的关键。
3.2 问题五:模型出现幻觉,怎么定位和缓解?
这题几乎是应用类岗位必问,因为幻觉是大模型落地最大的坑。回答时不要只说“用RAG做检索”,要分三层:第一层,定义和分类:幻觉分为事实性幻觉和忠实性幻觉,前者是模型生成的内容与事实不符,后者是生成内容与指令或上下文不符。第二层,定位:通过“测试时检索”——生成结果中的关键实体、关系、数字,拿去做搜索引擎或知识库检索,校验是否一致;也可以设计对比prompt让模型给出依据和引用来源;还可以用困惑度、token概率来观察模型是否在“乱猜”。第三层,缓解:训练侧用高质量数据微调降低幻觉,比如指令微调时加入负样本;推理侧用RAG引入可靠知识,要求模型必须引用来源段落,降低采样温度;也可以加入“不知道就说不知道”的约束prompt,或者用自一致性采样,多次生成投票选最稳定答案。
面试官想听的其实是“你遇到幻觉后怎么一步步排查”。我当时面试给了一个真实案例:客服大模型出现把“商品保修一年”写成“保修三年”,排查后发现是知识库中的某个PDF解析出错,检索片段把“保修三年”从别的产品混进来了。这个问题不是模型幻觉,而是数据管线问题。讲这类案例会让面试官觉得你有实战经验,而不是背书。如果能再提一句“幻觉评估指标”如Faithfulness、Factuality,或者用人工标注集做回归测试,那就更稳。
4. 8个必问题详解(第三部分:工程与应用
到了这一层,面试官已经默认你会写代码、会调API,接下来考察的是系统设计和工程权衡能力。
4.1 问题六:RAG和微调怎么选?数据流怎么设计?
这是最热门也是废话最多的题。“看情况”三个字谁都会说,面试官要的是你给出决策框架和具体链路。你要先说选型逻辑:如果知识是动态更新的,比如商品信息、新闻、股票公告,用RAG,因为换索引比重训模型便宜快;如果知识是稳定的,比如特定合同模板、法律条款、固定代码规范,且需要固定风格输出,则可以微调;如果任务需要模型具备原本没有的技能,比如按特定JSON结构输出,则微调更合适。成本上:RAG的成本主要在Embedding模型、向量库、检索服务和相关缓存,微调成本主要在GPU资源和数据标注。现实里很多系统是两者结合:RAG负责事实知识,微调负责输出格式和交互风格。
数据流设计也是必问点。一个标准的RAG管线至少包括:离线索引流程(文档解析、分块、Embedding、写入向量库)和在线查询流程(query改写、召回、重排序、拼接上下文、生成)。面试官通常会问分块策略:固定长度分块还是按结构分块?怎么防止上下文被切碎?我当时给出的方案是:先用文档结构解析器提取标题层级,再按每个标题下的语义块分块,块大小约400-600个Token,重叠约50-100个Token;同时保留每个块对应的源文件和标题信息,方便引用溯源。你如果能主动提到混合检索(BM25稀疏检索加向量稠密检索),再融合RRF或重排序模型,印象分会明显提升。
4.2 问题七:Prompt Engineering真的有效吗?为什么?
很多候选人觉得Prompt Engineering是“玄学”,但面试官想听你从原理上解释它为什么有效。你要答:LLM在预训练和指令微调阶段就已经从大量对话数据中学习到“遵循指令”的模式,prompt本质上是激活模型内已有的知识分布,引导它从特定路径生成;一个好的prompt将任务定义、输入输出示例、约束条件、思考路径说清楚,相当于缩小了模型输出的采样空间。所以要答出有效但有限:如果知识超出模型参数或上下文,prompt再花哨也没用;幻觉严重时,prompt只能降低概率,不能根治。
面试官可能当场给你一段效果很差的prompt,让你现场优化。这里记住几个核心技巧:用“你需要做的是…”“不要…”“如果…则…”进行清晰指令;提供一两个few-shot示例,注意示例要多样化;要求模型输出JSON时,给一个JSON Schema示例;复杂任务让模型先列出推理步骤再输出最终结果(CoT)。但CoT也不是万能,在简单直接的任务上过度使用反而增加幻觉率,需要根据任务类型灵活调整。还有一个高频追问:“Role Prompting(你是一个专家)真的有用吗?”要诚恳回答:在多数评测里,加角色设定对结果影响并不大,真正的收益来自清晰的指令和示例。
4.3 问题八:如何评测一个大模型应用的效果?
这个问题最能看出候选人有没有真落地过项目。很多人只回答“人工看结果”,面试官直接想挂。你要把离线评估和线上评估两条腿都讲出来。离线侧:构建一个有标注的评测集,至少几百条覆盖典型场景和边界case;用统一指标评估,比如生成类任务用ROUGE、BLEU(但要说明它们只适合摘要或翻译,不适合开放问答);开放问答则用LLM-as-a-judge,用GPT-4等模型对回答打分;也可以用RAG专用的指标,比如召回准确率、上下文相关性、生成忠实度。最好提一下“评测集需要持续维护”,每次模型或提示更新后要做回归测试。
线上侧:核心是流量实验和真实用户反馈。你可以把回答质量替换为业务指标,比如客服场景的“用户问题解决率”“转人工率”;点击率、留存、GMV等业务结果也能间接反映回答质量。还要注意评估成本:LLM-as-a-judge调用费用不稳定,一般会先用小模型初筛,再用大模型精评,甚至用蒸馏的小评估模型加快速度。
如果面试官追问“如何构建评测集”,不要只说“找几个人写”。更专业的做法是把线上真实日志采样出来,聚类高频问题,再人工修正并标注正确答案;同时用自动化脚本生成一些对抗样本,比如错误实体、相似误导问题、超长输入。把评测集当成代码仓库一样维护,不断补充失败case。
5. 面试现场实录与答题模板
知道了问题和答案方向,怎么在几分钟内组织出漂亮回答?我总结了面试现场最高效的答题框架,并提供一组常见追问应对。
5.1 一个高分的回答结构
面对任何一道原理题,都可以用“定义-原理-设计动机-工程影响-案例”的五步结构。举个例子,问“为什么Transformer要用LayerNorm而不是BatchNorm”,一个高分回答可以是:
先定义:LayerNorm在特征维度上做归一化,BatchNorm在batch和空间维度上做归一化。然后讲原理:NLP输入长度不定,batch内各样本长度往往不一致,BatchNorm因为依赖batch统计量,在推理时如果序列长度变化或句子长度差异大,会不稳定;LayerNorm只依赖单样本自身特征,不受batch大小和序列长度影响。再谈设计动机:Transformer训练通常用大batch和变长数据,LayerNorm能让每层输出分布稳定,有助于梯度流动,也能省去对batch维度的依赖。工程影响:用LayerNorm可以让模型更稳定地训练,收敛更快,但不代表BatchNorm完全没用,在某些视觉任务或编码器结构中仍有优势。最后举一个例子:实际用6层Transformer做文本分类,用BatchNorm时模型不收敛,改成LayerNorm后稳定达到预设指标。
这套结构几乎能应对所有“为什么”类型问题。关键是不要一上来就倒公式,而是先给面试官一个“目录感”,让他知道你要说哪几个点。面试官一旦听到这种清晰骨架,印象分会直线上升。
5.2 现场即兴题怎么处理:以“多轮对话状态管理”为例
有时候面试官会丢出一个你们项目中没直接出现过的问题,比如“如果你的LLM应用需要记住用户前五轮对话,但服务是无状态的,你怎么办?”这类题考验的是知识迁移能力。别慌,先拆解:对话状态管理可以分为“短期记忆”和“长期记忆”。短期记忆可以直接把最近几轮的消息拼接到上下文里,但是要在消息之间加清晰的分隔和角色标记;长期记忆可以做一个独立模块,通过对话总结或抽取关键信息(用户偏好、历史需求)后存到数据库,下一轮再动态检索注入。
这道题的隐藏考点在于Token成本:你不能无脑把五十轮对话全塞进去,最好做滚动摘要+关键信息抽取。我会这样回答:每次对话结束后把整段对话用一个小模型做摘要,同时抽取用户意图、实体、偏好,存成结构化记录;下一轮开始时加载结构化记忆和最近两轮完整对话,拼成新prompt;如果用户主动改变话题,旧的记忆可以降权或清空。这样既保证上下文,又控制成本。你还可以补一句:必须设计好记忆的“写入时机”和“淘汰策略”,否则记忆会污染新对话。这类即兴题,能给出一个可执行方案比一个完美答案更重要。
6. 这些坑会直接淘汰你
说实话,我见过不少技术能力不差的候选人,因为一些低级错误被淘汰,非常可惜。最后把最容易爆雷的四个习惯列出来。
6.1 在网上抄答案却不懂为什么
大模型相关面试题在GitHub上很多,但很多人只背了标准答案中的结论部分。比如“为什么用Adam优化器”能回答“因为自适应学习率”,但追问“那什么情况下Adam不如SGD”就卡壳。如果你要背题,请务必把每个结论追溯到原论文或实践场景中,至少要想明白“如果不这样做会怎样”。面试官只要连续追问两个“为什么”,就能拆穿所有纸面功夫。
6.2 只说结论不给量化数据
认知类题目可以定性回答,但工程类题目必须定量。比如你说“我们用RAG提升了回答准确率”,面试官一定会问“提升了多少?基准是多少?评测集多少条?误差多大?”我建议你对自己做过的每个项目,都要准备一组核心数字:数据集规模、模型参数量、训练成本、推理延迟、显存占用、效果指标、成本估算。如果项目本身数据保密,至少给出相对变化和评测口径。
6.3 废话连篇没有节奏
大模型面试通常30-60分钟,至少要聊透七八个话题。如果每个问题你都要绕三分钟才点到正题,面试官会明显不耐烦。比较好的做法是“先总后分”:先一句话回答核心结论,再分点展开。比如“这个问题我认为有三个关键因素,第一…第二…第三…”,语气要稳、有停顿。不要一个问题扯到另一个不相关的话题上,面试官拉回来也会对你的逻辑能力扣分。
6.4 快速自查清单
- 能否在30秒内说清楚你最近一个项目的动机、技术选型和结果?
- 能否面对随机追问时连续答出三个“为什么”?
- 是否对Token、Transformer、上下文窗口、RAG、微调的优劣势都有一份量化数据?
- 是否准备过一套属于你自己的“开放性问题答题模板”?
- 是否敢在面试中明确指出“用RAG并不一定比微调好”这类反共识结论?
如果以上答案都是“能”,我觉得你离offer已经很近了。如果还有差距,就按照这篇文章梳理的问题挨个打磨,不要贪多。我当年也是从“背答案”到“真正理解”一步步走过来的,现在面试别人时,一眼就能看出哪些人做了深度功课。LLM领域日新月异,但面试考察的底层能力始终没变:清晰定义问题、拆解系统链路、量化解决方案。把这8个问题真正消化掉,比刷一百道偏题管用得多。