大模型岗的面试风向,这两年变化比很多人想象中要快得多。早几年问的是“Transformer里Attention怎么算”,现在再拿这套去准备,大概率会在二面三面栽跟头。我自己最近半年密集参与了多个大模型相关岗位的面试,也帮团队做过不少轮技术面,一个很直观的感受是:面试官已经不满足于考察候选人“知不知道”,而是更在意你能不能把模型用起来、调明白、跑得稳。这篇文章就把我观察到的面试风向、典型的题目套路、以及答题时的思路框架一次性说清楚,给正在准备大模型岗的朋友一个明确的方向参考。
1. 大模型岗面试风向的底层逻辑:从“考知识”转向“考工程”
1.1 为什么风向变了
两年前的大模型岗位JD,写的基本都是“熟悉Transformer、熟悉Bert、了解GPT系列”,面试题也集中在模型结构、损失函数、激活函数这些教科书内容上。但到了现在,尤其是ChatGPT带火这波大模型浪潮之后,岗位需求已经从“懂模型”变成了“会用模型、能部署模型、能优化模型”。
我接触过不少候选人,基础八股背得滚瓜烂熟,问Self-Attention为什么除以根号d,能讲十分钟不停。但一到实际场景题,比如“线上GPU显存不够,你怎么把7B模型跑起来”,就开始支支吾吾。这种候选人往往拿不到offer,原因不是说基础不重要,而是面试官清楚:模型原理随时可以查,但工程判断力和动手解决问题的能力,才是岗位上真正稀缺的。
所以现在的面试风向,本质上是从“考知识”转到了“考工程”。StreamingLLM为什么能解决长文本推理的显存爆炸问题、FlashAttention到底省了什么、LoRA的低秩矩阵怎么和原有权重合并,这些问题背后全是对工程实践的理解深度。
1.2 面试官到底在考察什么
拆开来看,大模型岗面试官核心关注五个维度的能力:
第一是原理理解的颗粒度。不是背结论,而是能不能讲清楚一个机制为什么有效、边界在哪里。比如LoRA为什么能省显存,本质是因为它冻结了预训练权重,只训练增量低秩矩阵,所以反向传播时不需要存储完整梯度。
第二是工程落地的熟练度。模型训练、微调、量化、推理加速、分布式并行,有没有真实用过,遇到OOM会怎么排查,心里有没有体感。我给团队面试时经常问“你最近一次OOM是什么场景,怎么解决的”,这个问题比任何八股都能快速区分真假。
第三是业务场景的转化力。给定一个业务需求,比如“客服对话摘要生成”,候选人能不能把它拆解为可执行的模型方案,包括数据怎么准备、用什么底座模型、微调还是RAG还是Prompt Engineering就够、评估指标怎么定。这个维度现在权重越来越高。
第四是深度方向的敏锐度。RAG、Agent、Scaling Law、MoE、多模态,这些热点的本质是什么,不是追新,而是理解它们解决什么问题。候选人在面试前至少要对两三个方向有自己的独立思考。
第五是学习能力与自驱力。大模型领域三个月可能就换一波技术栈,面试官非常在意候选人的信息获取渠道、源码阅读习惯、实验迭代方式。这一块没有标准答案,但没有实际操作经验的人,一聊就能听出来。
2. 大模型面试题五大类型深度拆解:从八股到实战
2.1 模型原理基础题:仍在考察,但深度加深
原理题不是说消失了,而是从“是什么”进阶到“为什么是这样”和“如果改成别的会怎样”。经典问题比如:
为什么注意力机制要除以根号d_k?这个问题的好回答不能止于“防止点积过大导致softmax饱和”。更进一步的理解是:Q和K点积的结果是一个长度为d_k维向量求和,数值量级随d_k增大而线性增长,除以根号d_k是为了把方差稳定在1左右。再深一层,可以提到如果d_k变大而不缩放,softmax会接近one-hot分布,梯度趋近于0,训练无法推进。
为什么GPT用Decoder只用Decoder的注意力,而不用双向注意力?要理解这是由生成任务定义的,自回归生成时每一步只能看到之前的token,否则会造成信息泄露。面试官进一步会问“那BART和T5为什么用Encoder-Decoder结构”,答案是这些模型在预训练时做了文本破坏与复原任务,Encoder要建模双向上下文,Decoder生成时才约束单向。
位置编码到底编码了什么?基本答法是RoPE、ALiBi、Learned Embedding的区别。但加分的答法是把自己代入到实际场景:长文本外推时,学到的绝对位置编码差,而旋转位置编码(RoPE)和ALiBi在长度外推上天然更友好,这也是很多开源模型在长上下文场景选择这些方案的原因。
原理题吃透的关键不在于背多少,而在于建立“机制-问题-设计选择”的映射。我建议准备时不要看面经,而是直接读模型源码,把每个模块对应的设计动机标出来,这样即使遇到没见过的模型架构,也能按同一套逻辑现场推演。
2.2 训练与微调题:现在面试的核心权重区
这部分的比重明显上升,几乎每一轮技术面必有涉及。常见题目包括:
LoRA与QLoRA的完整流程。面试官会让你讲LoRA的原理,但更会追问:秩r怎么定?alpha怎么设置?为什么量化后还能保持效果?LoRA和Adapter的区别是什么?全力回答这些问题,核心在于都要落到“参数高效微调”的本质——用低秩近似来约束参数量,避免灾难性遗忘的同时大幅降低显存开销。而QLoRA是在LoRA基础上把底座模型量化到4-bit,再用NF4类型和Double Quantization减少存储误差,我实际用下来4-bit微调7B模型的显存开销稳定在12-14G左右,一张消费级显卡就能跑。
全参数微调、LoRA微调、Prompt Tuning怎么选。这里我会反问业务场景和资源条件。全参数微调效果好但贵;LoRA介于中间,是目前最主流的;如果底座够强、任务是格式转化类,Prompt Tuning或者Ice Breaker的套路就够了。具体到计算资源,可以给面试官展示一个数据:全参数微调7B用DeepSpeed ZeRO-3,至少需要4张80G的A100;LoRA单张24G的4090就能跑。这个体感差异足够说明选择逻辑。
DeepSpeed ZeRO的三个阶段。ZeRO-1只做优化器状态切分,ZeRO-2把梯度也切了,ZeRO-3把参数、梯度、优化器状态全部切分到各卡,配合CPU Offload进一步让显存消耗转移到内存。很多候选人能背出来,但一问“视频训练该选哪个Stage,显存不够时要不要开Offload”就卡壳。我通常建议:追求训练效率用ZeRO-2,显存实在不够且单卡带宽不错的情况下再上ZeRO-3+Offload。
2.3 推理优化与量化题:高频且区分度最大
这也是现在面试场上的“高分区”。题目非常具体,比如:
现有7B模型,单张16G卡,每token延迟20ms,要优化到10ms以内,你会怎么做?这道题没有一个固定答案,它考察的是优化手段的取舍。我的回答链路是:先用TensorRT-LLM做结构化推理优化,配合KV Cache量化、FasterTransformer算子融合,通常能拿到30%-50%收益;再上INT8/INT4量化,其中AWQ比GPTQ在实际部署中更好,因为它激活感知,对效果影响更小;最后是服务层优化,比如动态batching和PagedAttention,提升吞吐量。每一步都有参数和数据支撑,面试官想看到的就是这种有主次、有预期的方案。
KV Cache是什么,怎么估算显存?这个问题几乎必问。KV Cache就是把历史token的Key和Value缓存下来,避免每一步重新计算。显存估算公式是2 * batch_size * seq_len * num_layers * hidden_size * 2(K和V各一份)* 2字节(FP16)。以7B模型、batch=1、seq_len=2048为例,算下来大概在1.2G左右,如果和上下文长度到32K,显存开销就变成十几G,所以长上下文部署必须上量化技术和窗口缓存策略。
Prefill和Decode阶段为什么分开优化?这两个阶段的计算特征完全不同,Prefill是计算密集型的矩阵乘法,适合用高并发和更大batch;Decode是访存密集型的向量操作,GPU利用率低,要提升吞吐就要做连续批处理、投机采样等。能把这两个阶段的差异说清楚,再落到“所以服务框架会把它们调度分离”这个结论,面试官的印象会很好。
2.4 RAG与Agent场景题:没有标准答案,但有高分链路
整个RAG链路涉及文档解析、分块策略、Embedding模型选择、向量检索、重排序、Prompt组装。面试官核心会问:
RAG流程里哪个部分最影响效果?我的经验是,很多人以为是Embedding或向量库,其实出问题最多的是文档解析和分块。比如PDF里的表格、多栏排版,解析完就可能乱了。分块大小直接影响召回命中率,一般256到512个token是一个经验区间,还需要配合重叠切块。这块没人会去背面经,真正有实操的人可以直接拿出来分享自己调分块策略的对比数据。
怎么处理RAG召回结果不准确的情况?可以从三个层次回答:先优化召回侧,做混合检索,把向量检索和BM25结合,因为关键词信息在向量空间往往表现不稳定,BM25恰好能补上精确匹配;再上重排序模型,用Cross Encoder对候选结果重新打分,效果提升非常明显;最后是生成侧优化,把Prompt写成允许模型基于已有上下文推理,同时让模型对未检索到的信息明确表示不知,减少幻觉。
Agent的工作流设计题也越来越多。比如“要给模型加一个工具调用功能,怎么设计?”回答要点是:定义清晰工具接口、构建Few-shot示例让模型学会调用、处理模型输出结果到工具参数的映射、以及要不要加一层校验防止参数幻觉。一套完整的可落地链路,比一百个名词解释都管用。
2.5 综合方案设计题:从模型到业务闭环
这类型最近非常常见。面试官往往给一个虚拟业务,要求从0到1设计完整方案。比如:
要做一个人工智能文档助手,处理几千份公司内部文档,你怎么设计?我的答题框架是五步走:需求边界明确、技术选型对比、数据流程打通、效果评估体系、成本与迭代计划。底座模型选择上,先问清楚数据能不能出域,能出域用通用API,不能出域走私有化部署的7B或13B开源模型。RAG是首选,因为对垂直领域知识更新友好,不需要周期性重训。最后设定评估指标,召回率、答案准确性、引用正确率、端到端延迟,每一项给一个可量化的值。这套框架一说出来,面试官基本就能判断你是一个做过真实项目的人。
3. 真题实操:五个典型面试题的完整答题示例
3.1 从零部署一个对话模型,你会怎么做
这个问题我最近常被问到,也常用来面别人。一个让面试官满意的回答至少包含几个环节:先定基础模型,如果在中文场景,国内主流的7B模型在效果和硬件成本之间就是平衡选择,即使企业里私有部署也一样;然后是推理框架,如果用英伟达卡优先TensorRT-LLM,如果是国产加速卡就看对应厂商对vLLM的适配情况;接着是服务封装,OpenAI兼容接口能大幅降低业务方接入成本,这个设计细节会体现工程经验;最后加一层模型路由,简单问题走小模型、复杂问题走大模型,降低整体成本。
3.2 说一次你实际遇到的模型训练异常,怎么排查的
这种没有标准答案的题,目标是看你有没有真实训练经验。我常用的一个例子是loss变成NaN,然后建立排查思路:先确认是前向还是反向的问题,缩小范围看具体在哪一层出现NaN;接着定位到学习率过大导致梯度爆炸,还是数据里有脏数据;再复现时做一个梯度裁剪对照,确认是梯度问题后加上mixed precision的动态loss scaler,并且把batch内的异常样本清掉。整体上,把定位链路讲清楚,远胜过直接说“我调低了学习率”。
3.3 7B模型部署在4张卡上,怎么做并行
这个题考核并行策略的取舍。回答时先指出模型并行和数据并行的本质区别:数据并行是每张卡都有完整模型副本,各自处理不同batch;张量并行则是把每一层的矩阵计算切到不同卡上。7B模型如果用全参数,张量并行通常是更合理的选择,因为层数不深、单层矩阵大,按层切分的流水线并行反而可能因为通信开销大于收益。再补充一点,说4张卡做张量并行后,每张卡的KV Cache显存也能翻四倍,支持更大的并发。充满细节的回答,会让面试官觉得你真的部署过。
3.4 怎么评估一个微调模型的效果
面试官问这个是想看你有没有建立评估闭环的习惯。传统做法是拿一个通用测试集跑rouge、accuracy这些指标,但真实场景必须再做维度评估:答案准确性、忠实度、覆盖度、毒性,再配一套人工打分标准。我实际经验里最有用的,是建立一个Bad Case库,每次迭代后都回归测试,确保新版本没有退步。从指标到人工评估到回归机制,这套闭环展示的是数据驱动的工作习惯。
3.5 如果让你用大模型做一个小工具,你会做什么
这道题看着轻松,其实面试官在考察创造力和产品敏感度。比较加分的回答思路,是先描述用户的真实痛点,再说明为什么大模型是合适方案,然后给一个极小的核心链路,顺便提两个坑。比如做一个文档表格提取工具,核心链路就是让视觉模型识别复杂表格结构,再给语言模型做结构化输出,坑在于表格合并单元格和公式表达容易被模型转错。这样既显产品思维,也专业感十足。
4. 常见翻车点与避坑技巧实录
4.1 只会答概念,没有量化概念
这是最大的翻车点。不少候选人说“我用过LoRA”,问batch_size和gradient_accumulation怎么配,答不上来;说“我做过量化”,问INT8推理显存能省多少、精度掉了多少,也没有体感。大模型面试越来越看重数字感和对比感。我自己的建议是,简历里每写一个技术点,就必须准备三组数字:训练显存、推理延迟、效果变化。
4.2 对开源生态不够熟悉
很多传统深度学习背景的候选人,模型架构讲得很好,但问起目前主流开源模型、主流推理框架、微调工具的优缺点却比较陌生。面试准备时必须清楚:哪几个开源模型生态成熟、支持中文好、量化方案齐全;哪些框架各有什么不足;主流Agent框架是怎么处理工具调用的。这些不需要源码级熟悉,但至少要能说出各有边界。
4.3 长文本与流式交互没有体感
长文本是现在区分度很高的考点。候选人背了RoPE的定义,但问“如果模型训练时就用了4K上下文,部署时怎么支持到32K”往往答不完整。可以答三条路线:继续微调拉长,位置编码换成能够外推的类型;推理时配合窗口式KV Cache管理,避免显存爆炸;在工程层做上下文压缩,比如检索时只取关键片段。三个方向缺一个,就说明没有真正做过长文本场景。
4.4 没有准备自己的深度亮点
有的人面试全程都在回答,却连一个属于自己的深度项目经历都没有。这在现在的面试环境里很吃亏。面到一个项目时,我会追得很细,但也真的希望候选人能主动展开:为什么选这个模型、数据怎么清洗、效果何时达标、部署踩了什么坑。这些才是我判断潜力最可靠的证据。
4.5 只看面经,不做源码级理解
面经能给你范围,给不了深度。同一个问题,比如FlashAttention,看面经只能记住“分块计算、减少访存”,但面试官一句“为什么能减少访存,GPU里的高速缓存和HBM分别发生了什么”就能看出真伪。深度学习框架的算子执行都有规律可循,与其背一百道面经,不如把Transformer相关的核心模块源码逐行读一遍,效果拔群。
4.6 忽略细节中的敏感点
比如面试官问“显存不够怎么办”,候选人一上来就说“换更大的卡”,这会直接被减分。面试官希望看到的是:先量化显存占用,再谈优化手段,最后才考虑换硬件。还有一种情况,一些候选人在Agent相关问题上只讲“给模型一个API它就会调用”,却完全没提安全问题、参数校验、工具返回内容的防注入处理,这种忽略会让面试官质疑你的工程成熟度。
5. 我的三点核心建议
如果只给正在准备的人三条建议,我的排序是这样。
第一,建立自己的量化基准体系。给自己定几个必测任务,比如中文长文档问答、代码生成、数学推理,跑通几个主流开源模型不同尺寸和不同量化档位的效果、显存、延迟数据。这些数据准备完,遇到任何场景题都能立刻用数据说话,这是硬通货。
第二,亲手完成一个封闭的部署项目。任务不复杂,但要求全流程独立跑通:模型下载、数据集构造、LoRA微调、启动脚本、量化、部署、写一个简单的评测脚本。这样所有概念都会内化成体感,而这恰恰是现在面试最难被问倒的东西。
第三,培养持续的信息敏感度。关注大模型方向的论文、开源社区动态、框架更新记录,每周整理一两篇自己真正读过的技术细节。不是为了面经,而是那些更新变化里,往往藏着下一道面试题的目的。
我自己后来看候选人时,最看重的始终不是准备得多完美,而是这一行里少见的踏实与真实。技术迭代快,没有人能全知全能,但一个能把一件事情真正做透的人,换到任何新方向上,都值得放心。