这两年AI大模型方向的面试,变化快得让人有点措手不及。前两年还流行问“你了解Transformer吗”,现在一上来就是“RLHF里PPO的KL惩罚你调过没有”“7B模型全参数训练大概要多少显存”“你的Agent死循环了怎么处理”。很多从传统CV、NLP、推荐系统转过来的候选人,简历很漂亮,却在技术面被问得接不住话。这份AI大模型面试指南,不打算再堆一份到处能搜到的题库,而是把高频考点按模块拆开,每道题给出参考答案结构和答题思路,附带这些年我看人、陪跑过程中总结的踩坑点。正在准备大模型算法岗、应用开发岗、推理部署岗的人,建议从头到尾过一遍,尤其是后面几章的排查思路和反问环节,很多细节常规答案是搜不到的。
1. 先搞清楚:大模型岗位面试到底在考什么
1.1 三类岗位,三个侧重方向
很多候选人犯的第一个错误,是拿同一套东西去面所有岗位。实际上大模型方向的岗位至少可以分成三类,面试官考察的权重完全不一样。
- 预训练/微调岗:偏研究型,考察模型结构、训练稳定性、数据处理、分布式并行。面试官喜欢让候选人手推公式、分析loss曲线、解释某个优化技巧为什么有效。
- 应用/Agent岗:偏工程型,考察RAG、Prompt设计、Function Call、Agent链路、业务指标。不需要你手写Attention,但必须能说清楚整个系统怎么搭、出了问题怎么排查。
- 推理部署/推理优化岗:偏系统型,考察量化、KV Cache、显存估算、吞吐量与延迟、服务化架构。这类岗位越来越抢手,因为模型训练成本太高,大家更关心怎么把已有模型用得更便宜更稳定。
我见过最典型的翻车现场:一个面应用岗的候选人被问到“RAG里chunk size怎么选”,他的回答是“默认512,因为大家都这么用”。这基本就挂了。面试官想听的不是默认值,而是你知不知道为什么需要调、调到多少的依据是什么。
| 岗位方向 | 必考重点 | 面试官最容易追问的点 |
|---|---|---|
| 预训练/微调 | 模型结构、loss分析、分布式 | 为什么这里用LN不用BN、梯度检查点为什么省显存 |
| 应用/Agent | RAG链路、工具调用、评估 | 检索失败怎么办、Agent卡死怎么办、指标怎么定义 |
| 推理部署 | 量化、KV Cache、服务指标 | 给个模型配置,让你现场算显存和吞吐 |
1.2 面试官判断人的三条主线
面试官筛人不是靠背答案,大模型领域更新太快,题库根本来不及更新。据我观察,靠谱的面试官内心只有三条主线:
第一,基础理论是否扎实。这决定你能不能理解模型的底层行为,而不是只会调包。第二,是不是真的做过东西。简历上写了“用过RAG”“做过微调”,但被追问“你的检索命中率多少”“微调后会不会遗忘原来能力”就含糊其词的人,基本默认是看过几篇教程。第三,遇到不确定问题时的推理能力。面试官经常故意问一个你没接触过的场景,或者给一个很模糊的“线上效果变差了”的问题,看你能不能结构化拆解。
所以本质上,AI大模型面试不是“知识测试”,而是“能力测试”。你需要输出的不是一个标准答案,而是一条清晰的思考链路。这篇文章后面所有的参考答案思路,也都是按这个逻辑组织的。
2. 高频基础题:机器学习/深度学习底子不能塌
2.1 正则化、损失函数与归一化的“为什么”
大模型面试的前几轮,经常会有几个看似基础的题目,很多人不屑于好好准备,结果被追问到崩溃。
先看最常见的:L1和L2正则化有什么区别?为什么大模型很少用L1?参考答案思路是:L1会产生稀疏解,把某些权重压到0,L2只是让权重接近0但不会等于0。大模型参数量巨大,L1带来的稀疏性收益不明显,而且L1在0点不可导,优化更麻烦。更重要的加分点是补一句“我们在实际项目中,L2更多是配合warmup和梯度裁剪来稳定训练,而不是真正指望它防过拟合。”这句话能体现出你是用过的人。
再看交叉熵和softmax的搭配问题。面试官会问:为什么分类常用交叉熵而不是MSE?你要答到点子上:softmax把logits转成概率分布,交叉熵可以直接度量两个分布的差异,而且交叉熵配合softmax的梯度形式非常干净,不会出现MSE在输出层饱和时梯度消失的问题。如果只说“大家都这么用”,等于没答。
还有一道几乎必考的题:BatchNorm和LayerNorm的区别,为什么Transformer里用LayerNorm?这里要抓住核心:BN在batch维度统计均值和方差,当batch很小或者样本长度差异很大时统计不稳定;LN在特征维度归一化,和batch大小无关,也不受序列长度影响。大模型的训练batch往往很小,加上要处理变长序列,LN自然成为更稳的选择。加分回答是补一句“现代实现里一般用pre-norm而不是post-norm,训练更稳定”,这一下就和没读过模型代码的人拉开了差距。
2.2 Transformer必考题:从QKV到位置编码
Transformer相关的问题是整个面试的重头,几乎每一轮都会出现。你要做好“闭卷手推”的准备。
第一个常见问题:Q、K、V分别是什么?最简单的回答:Q和K计算相似度,V是真正承载内容的向量,注意力就是根据Q和K的相似度对所有V做加权求和。但面试官往往追问:为什么Q和K要分开,直接用输入算权重行不行?这时候要解释清楚:如果直接用输入做键和值,模型就失去了“根据查询去选择信息”的灵活性,Q、K、V各自由不同权重矩阵产生,本质上是让模型学会在不同语义空间里做检索。
第二个必问题:注意力公式里为什么要除以sqrt(dk)?这里不能只说“防止点积太大”,最好现场推一下。假设Q和K中每个元素是均值为0方差为1的随机变量,两个dk维向量的点积,方差大约是dk。如果不缩放,dk越大,点积数值越大,经过softmax后越容易进入饱和区,梯度会变得非常小。除以sqrt(dk)后点积的方差回到1量级,softmax能有更合理的梯度。这个推导能写出来,面试官基本就会点头了。
第三个高频题:位置编码为什么要单独做?Transformer没有循环结构,必须显式把位置信息加进去。现在面试基本会追到旋转位置编码(RoPE),你要能说出两点:它把位置信息编码成旋转矩阵,attention计算时能自然感知相对位置;相比传统正弦编码,外推性更好。还有加分回答:RoPE因为是旋转操作,长文本推理时可以和注意力权重提前融合,减少计算量。
最后要提一下注意力显存优化:现在不再要求你把FLASH等方法名说出来,但你要理解它的核心思想——不把完整的注意力矩阵存下来,而是分块计算,在反向传播时重算一部分,用时间换显存。这个思想在面试里用来回答“模型跑不起来怎么办”特别有用。
2.3 大模型损失函数与幻觉机制
基础题里还有一类是围绕语言模型本身的。比如有两个高频题值得展开。
先说“为什么大模型的预训练损失是预测下一个token”。这背后是语言模型的基本假设:一个句子可以由每个token的条件概率连乘得到。模型每看前n个token,就去预测第n+1个token,本质是在学习文本数据的联合概率分布。面试加分点是补一句“生成时是逐token自回归解码,训练时也可以用老师的监督信号并行预测整个序列”,这能体现你对训练和推理过程的理解是一体的。
再说“大模型为什么会幻觉”。很多候选人答“模型知识不够”“训练数据有问题”,方向对但太浅。更好的回答框架是:大模型生成不是检索记忆库,而是根据上下文概率采样;遇到知识边界、数据冲突、指令不明确或在解码阶段被不合适的采样参数影响时,模型都会生成看似合理但不符合事实的内容。接着可以主动提应对手段:RAG引入外部证据、让模型在不确定时回答“不知道”、对高价值场景做答案校验。这样一道开放题也能答成展示项目经验的加分题。
3. 大模型核心题:预训练、微调、对齐
3.1 数据与预训练:数据质量为什么排第一
预训练方向的面试很喜欢围绕数据展开,因为这是一个直接暴露你实操经验的话题。
高频题一:BPE分词是怎么工作的?参考答案思路:从字节级别开始,统计词频,反复合并频率最高的相邻子词对,最后得到一个可控大小的词表。这种方法的优势是能处理未登录词,任何词都能被拆成已有子词的组合;同时比纯字节表示更节省序列长度。加分回答:说明词表大小和数据压缩率、训练速度之间要平衡,词表太大会让embedding矩阵变大,严重占用显存。
高频题二:训练数据怎么配比?不要只回答“高质量数据越多越好”。实际操作的逻辑是:先保证基础语料覆盖度,再按任务类型混合配比,同时控制冗余和重复。面试官如果追问“通用数据太多会怎样”,你要能说出“模型会退化,容易丢掉指令跟随能力,甚至出现复读机现象”。
高频题三:训练过程中loss突然升高或出现loss spike,怎么排查?这是非常实战的题。合理的排查顺序是:先看是不是固定step出现,会不会自行恢复;再看那一批数据是不是存在异常,比如重复、脏数据、标签错乱;然后检查学习率调度、梯度裁剪、混合精度设置;最后看是不是数值溢出。回答时一定要提到“先回滚到最近的正常checkpoint,再逐步排查”,而不是一头扎进去改学习率,这说明你有线上debug经验。
3.2 微调:全参数与LoRA的取舍
微调是所有岗位都可能遇见的模块,因为它直接关系到业务怎么落地。高频问题是LoRA的原理,以及为什么它有效。
LoRA的原理不难:冻结原始权重,在旁边加一个低秩分解的增量矩阵,训练时只更新这个增量。因为微调过程中产生的模型更新往往集中在低维子空间,不需要动全部参数。面试官常追问:LoRA的秩怎么选?这里没有标准答案,我的建议是别背结论,讲思路:先从低秩开始,比如8,观察验证集效果,再逐步增加到16、32。秩太小表达能力不够,秩太大训练参数量上升,还可能破坏原有权重表达。这是典型“为什么”大于“是什么”的考点。
还有个高频题:7B模型用LoRA微调大概需要多少显存?这个问题考察的是你会不会粗算。思路是看前向激活值加LoRA梯度优化器状态;如果禁用梯度检查点,激活值会占大头。更稳妥的回答是展示计算能力:先算全参数训练大概需要多少,再解释LoRA为什么省掉了优化器状态和梯度存储的一部分。就算最后数字不够准,面试官也会认可你的思路。
同时要主动说出全参数微调的坑:数据量少时严重过拟合、微调后忘记原有通用能力、数据格式不一致导致输出混乱。每提一个坑,都要配一个应对方案,比如混合数据、加回放数据、统一模板。这样答题才会显得你“做过”。
3.3 RLHF与对齐:现在面试必问的深水区
RLHF几乎已经成为大模型面试的分水岭,要么答得好,要么暴露你只看过博客。
先要把三阶段讲清楚:SFT让模型对人类指令形成基本响应能力;奖励模型(RM)学习人类偏好,给每个回答打分;强化学习阶段用这个分数去优化策略模型。面试官通常会追问:为什么SFT之后还要RLHF?这个问题的本质是:SFT只能让模型模仿你给的样本分布,但人类偏好不只是一个静态数据集,还有很多微妙维度,比如有用性、安全性、风格、事实性。RLHF把这些偏好变成一个可优化的目标。
接下来是PPO。面试官会问你有没有真正理解PPO的更新逻辑。常见的坑是背公式却说不清为什么。参考答案思路:PPO每一步更新策略时,会限制新策略相对旧策略不要变化太大,否则训练会崩;同时用KL散度惩罚让新策略保持在旧策略附近。这两层约束都是为了保证训练稳定性。加分项是能说出“KL惩罚系数不是越大越好,太大模型忘记学习,太小模型跑飞”。
再往后就是reward hacking这只狼。面试官喜欢你主动说出来:模型会发现只要说某个句式就能拿到高奖励,但这个回答人类并不喜欢。应对思路包括KL约束、定时重新校准奖励模型、用对抗方式寻找奖励模型漏洞。能讲到这里,基本就是资深级别了。
DPO也是高频题。这题的回答关键是讲清楚它为什么省事:不显式训练奖励模型,直接用偏好数据,让模型在每一步更新时对比自己和参考模型的输出,被偏好的答案概率更高。优点是训练稳定、资源消耗低;缺点是依赖偏好数据质量,缺少显式奖励信号,可解释性弱。千万不要只说“DPO更简单”就结束。
4. 应用与部署:RAG、Agent、推理优化怎么答才能加分
4.1 RAG:从流程到参数选择,一路追问怎么接住
应用岗面试里RAG的出场率极高,而且面试官非常喜欢在简历项目上连环追问。
先要背熟RAG的标准链路:文档切分、向量化、建立索引、query理解和检索、重排序、融合、生成。但只背链路不够,面试官真正关注的是工程细节。
第一个追问通常是:chunk size怎么选?我建议这样答:没有固定最优值,一般从256到1024个token范围内尝试。核心矛盾是——chunk太大,检索粒度粗,容易把无关内容带进上下文,还容易出现跨段信息割裂;chunk太小,语义碎片化,模型看不到完整上下文。常规的缓解方法包括:重叠窗口、按文档标题层级切分、先粗后细两阶段检索。如果能在面试现场补一句“我们当时用评测集对比了512和768两组,发现768在hit rate上略高,但生成时token开销也更大,最后按业务场景做了权衡”,整个回答的质感立刻不一样。
第二个高频追问:检索不到正确答案怎么办?这个问题最能体现有没有真做过。合格的回答框架是:(1) 检查query本身是否需要改写,可以用模型改写Query,比如把“续费”改成“如何办理会员续费”;(2) 检查召回质量,考虑混合检索,把向量召回和关键词召回结合;(3) 用重排序模型对候选做二次精排;(4) 如果业务强依赖知识图谱,可以引入图结构检索;(5) 最后还要允许模型说“根据现有资料无法回答”,而不是强硬编造。如果面试官问“为什么引用了错误内容”,你要能说出“源头可能来自原始文档本身冲突或切片不完整,模型无法判断可信度,所以需要答案校验和引用溯源”。
第三类问题是:为什么用RAG而不直接把全部文档塞进Prompt?这个问题其实考的是成本意识。即使现在上下文窗口在变大,把几千页文档全部塞进去,token费用会爆表,推理速度也会显著下降,而且文档更新不频繁时全量塞入完全没有必要。RAG的本质是“按需取用”,在效果、成本、延迟之间做了平衡。
4.2 Agent:工具调用、规划与死循环
Agent相关的题目,最近一年几乎是应用岗的标配。
先从最简单的问起:Function Call是怎么让模型稳定输出参数的?参考答案思路:一是给模型清晰描述函数名字和参数,包括类型、取值范围、默认值;二是要提供few-shot示例,这是让模型输出稳定最有效的一步;三是在生成结果后用schema解析,解析失败就触发重试机制。很多候选人只提到“用框架”,但框架不是答案,你是怎么约束输出格式、怎么做校验的才是答案。
ReAct也是高频题。你要能讲出它的核心循环:让模型先输出推理过程(thought),再决定调用什么工具(action),拿到工具结果后继续推理(observation)。这就完成了“思考—行动—观察”的闭环。面试官会追问:ReAct和纯Prompt相比为什么更好?答:把推理过程和外部信息结合起来,可以让模型边行动边修正,而不是一次性生成一个无法验证的答案。
Agent的死循环问题,是真正的送命题。合格的回答要给出具体原因和方案:可能是终止条件不够明确、工具调用的返回结果没被有效压缩、或者模型在长上下文中失去了对当前目标的聚焦。应对措施包括:设置最大迭代轮数;每一步行动后要求模型验证是否解决了当前子目标;定期让模型汇总已有信息,更新计划;把曾经发生的死循环样本补充到few-shot里作为负面示例。这些细节说出一两个就足以证明你有真实经验。
4.3 推理优化:KV Cache与量化
最后说说推理部署岗的看家题。这几个概念其他岗位也建议掌握,因为现在面试官普遍喜欢问“你的方案线上跑得起来吗”。
KV Cache的原理其实一句话能说清:解码阶段是逐token生成的,已经生成的历史token对当前step来说是固定上下文,它们的K、V向量可以缓存起来,避免每一步都重新计算整个历史。面试官更关心另一个问题:KV Cache到底占多少显存?这里可以直接给计算公式:显存占用约等于层数 × K和V两份 × 每层总维度 × 序列长度 × 精度字节数。
比如一个常见规模的中型模型,按几十层、每层几千维度、序列长度几千来粗算,在FP16精度下,单条请求的KV Cache就会到几GB级别。正因为这个数字可观,才会有各种缓存压缩、量化、跨请求批量共享等手段。能现场写出这个计算过程,胜过背任何结论。
量化的高频题是“为什么量化可以加速推理”。核心答案不是“模型变小了”,而是“访存量变小了”。大模型推理往往是访存密集,权重从内存搬到计算单元的带宽经常是瓶颈,低比特权重搬得更快,吞吐自然就上来了。面试官如果追问为什么量化容易掉点,你要能回答:激活值分布往往存在异常点,直接低比特截断会带来较大误差,所以工业界常用per-channel或group级别的量化粒度、用校准数据寻找更好的缩放系数。回答中带出校准集、group size、per-channel这几个词,面试官会认为你接触过落地。
服务化指标部分要理清“吞吐量”和“首token延迟”的区别。首token延迟是用户感受到的“快”,吞吐量是系统层面的“多”,两者往往此消彼长,增大batch能提高吞吐但可能延长单个请求的首token延迟。对这类题,回答“我们关注哪些指标、为什么”比背知识点更有说服力。
5. 简历项目、自我介绍与反问环节:别让非技术题拉低你的分
5.1 项目怎么讲才能体现真实做过
技术面翻车很多时候不是不懂原理,而是项目讲得太平。自我介绍和项目介绍有个通用原则:结论先行,然后讲决策过程。先用两句话说清楚“我做了什么,效果是什么”,再重点讲“为什么选择这套方案”“当时有什么替代方案”“最后踩了什么坑”。
比如你做的是一个企业知识库问答项目。常规讲法是“我先用RAG搭了一个问答系统,用向量检索召回了top k,再让模型生成答案”。这个讲法没有任何信息量。更好的讲法是:“这个项目最核心的问题是知识库里的文档很细碎,直接切chunk导致检索命中率很低。我试过几种切分策略,最后按标题层级切片并加入重叠窗口,命中率提升了十几个百分点。后来又发现模型经常答非所问,我就加入了检索置信度判断,低置信度时直接回复无法回答,误答明显少了。”注意到没有,每一句都在讲“我遇到了问题、我分析、我解决”,面试官才有追问的抓手。
自我介绍也一样,不要花两分钟念一遍简历。面试官已经从简历上知道你会什么了,你自我介绍时要给的重点是过去经历中和你当前岗位最相关的一到两条线索,并且主动把它变成面试官可以追问的钩子。
5.2 遇到不会的题:结构化兜底方法
没有人所有题目都会,重点是怎么应对不会的题。我建议采用“定性—拆解—假设—给边界”四步法。
面试官问“你遇到过模型效果突然下降的情况吗?怎么排查?”如果你没遇到过,不要直接说“没经验”。你可以先定性:这是一个线上系统问题,涉及数据、模型、服务三层;然后拆解:先看数据是不是分布变了或出现脏数据,再看模型版本是不是最近更新过或推理配置是否有变化,再看服务有没有异常,比如请求长度、并发压力、缓存失效;接着给假设:我更倾向是数据分布变化,因为模型训练周期的滞后性;最后给边界:如果给我线上日志,我可以先对比最近的输入分布和指标曲线,就能快速缩小范围。这套答法哪怕你从来没处理过线上问题,面试官也能看到你有系统的排查框架,比干停在那里强得多。
注意一个禁忌:不要编造一个看似很具体的经验。面试官深挖三句,发现细节全是虚的,印象分会断崖式下跌。你可以说“这个具体场景我没有直接处理过,但从原理上我会优先从XX开始查”,这既坦诚又专业。
5.3 反问环节怎么“反向面试”
反问环节是用人单位和候选人互相了解的机会,也是你展示判断力的窗口。建议把问题集中在工作实质层面,比如:团队目前的基座模型选型是什么,有没有自己训练的计划;训练数据怎么获取、怎么清洗,质量如何保证;离线和在线评测体系怎么建立,线上指标看哪些;团队怎么分工,算法、工程、产品的边界在哪里。
这些问题传递的信号是:你关心这个团队能不能做出真正落地的东西,你有长期投入的打算。反过来,像“加班多吗”“有哪些福利”这类问题,不是不能问,但不适合在第一轮和业务面试时问,容易给面试官留下“目的性太强”的第一印象。反问本身不需要表现得刻意精明,只要让对方理解你是一个在乎技术判断和数据事实的人,目的就达到了。
6. 时间线:一个月拿下面试的三阶段准备
6.1 第一阶段:原理与手推(第1-2周)
第一周先把最核心的几条原理理清楚,达到“闭卷能默写”的程度:Attention公式和缩放因子的推导、LayerNorm与BN的区别、LoRA的参数量公式、RLHF三阶段流程、KV Cache的显存估算。不要只看文章,一定要动手在纸上推,推完之后用自己的话复述一遍,因为面试时不是考你背公式,而是考你能不能“讲出来”。
这个阶段还要把高频题整理成自己的答案清单。注意不要抄网上的“标准答案”,要按“结论—原因—场景/例子—风险边界”的结构重新组织。面试官每天听一样的答案,你加了一个真实场景或者一个注意事项,价值完全不一样。
6.2 第二阶段:项目打磨与问题复盘(第3周)
如果现在手头没有项目,第三周就快速做一个端到端的小体量RAG或Agent项目,重点是记录过程数据:检索命中率、无答案率、响应耗时、失败case。哪怕项目很小,只要你在面试时能拿出这些数字,并且能解释某个数字为什么是这个值,就已经胜过了很多人。
如果已经有过往项目,这周的任务是复盘。把项目中所有“当时没想到、后面踩了坑、后来怎么改”的点列出来,每一条都试着用“问题和方案”的形式表达。面试官最喜欢的不是完美的项目,而是有复盘痕迹的项目。
6.3 第三阶段:高频题模拟与状态调整(第4周)
最后一周要进入模拟状态。建议找一个同样在准备面试的朋友,互相做Mock面试,模拟时不准提前看题,问完当场作答,回答时间控制在三到五分钟。Mock的核心价值不是押题,而是训练你在紧张状态下快速搭结构的能力。如果约不到人,也可以自己录音练习:打开语音备忘录,随机抽题,逼自己在两分钟内开始回答。
准备还要按岗位做最后的优先级梳理,可以参考下面这个表格:
| 岗位方向 | 最后一周重点 | 可暂时放掉的内容 |
|---|---|---|
| 预训练/微调 | 手推Transformer、RLHF详述、数据异常排查 | Agent工程细节 |
| 应用/Agent | RAG问答链路、工具调用、死循环处理 | 分布式并行细节 |
| 推理部署 | KV Cache显存计算、量化原理、服务指标 | 预训练数据配比 |
最后调整状态也很重要。面试前一晚不要再吸收新知识,把所有推过的公式和高频题框架过一遍,早睡。面试时如果真的被一道题卡住,记住第五条的方法,不要慌,展示你的排查框架就是合格表现。
我在实际陪跑中见过太多候选人在RLHF和KV Cache计算这两个地方被问住,原因不是不懂,而是平时只看文章,没有亲手算过,一到现场就露怯。现在准备还来得及:拿一张纸,把Attention的缩放因子、LoRA的参数量、KV Cache的字节数都算一遍,把RLHF的全流程自己完整讲一遍。面试时哪怕和面试官预期的答案不完全一致,只要你的推理链路清晰,通常也会被认定为“有潜力”。那份所谓的最全总结,其实不在任何现成文档里,而在你脑子里建立的那张知识网里。祝你面试顺利,拿到真正想去的位置。