1. 大模型面试考什么:先看全局地图,再谈具体招式
这两年“AI大模型面试题”成了技术社区里高频出现的检索词。不管是刚入门的学生、传统CV/NLP转行的工程师,还是在职想跳到大模型赛道的人,多少都有这个困惑:大模型方向的面试到底准备到哪个程度才算合格?
我先给一个判断:大模型岗位的面试,本质上不是考“背了多少个模型结构”,而是考“你能不能在大模型落地链路里独立解决一个真实问题”。从大厂到中厂再到创业公司,考察维度通常围绕五个方面:
- 基础理论是否扎实:Transformer、注意力机制、位置编码、归一化、损失函数这些基本功,不能只会画图,要能推导细节。
- 对大规模训练的理解:数据配比、并行策略、分布式训练、混合精度、断点续训、集群调度,这些是大模型独有的工程体检项。
- 微调与对齐的实操能力:LoRA、QLoRA、全参微调、RLHF、DPO这些方法不能停在概念层面,要能讲清楚“什么时候选哪种”,还要能说出踩过的坑。
- 推理与产品落地的Sense:量化、剪枝、蒸馏、KV Cache、投机采样、服务化部署,以及RAG、Agent、多模态等应用方案的实际效果边界。
- 代码与快速实现力:手撕注意力、手写采样、写个简单的分布式训练流程,很多面试官真的会让你现场敲。
这五块内容对应着真实的研发链路:从训练数据到模型训练、从模型调优到部署推理、从场景设计到稳定性保障。面试题看起来零散,但背后全是这条链路的具体切面。
所以我不建议东一榔头西一棒子地刷题。更好的方法是先理解面试官的思维模型:他问一个问题的背后,往往是在判断你能否在真实项目中顶得上去。这篇内容我会沿着上述五个方面,把高频问题、原理拆解、回答思路和容易翻车的细节都过一遍,也会穿插一些我自己准备面试时的实践经验,希望能减少走弯路的时间。
2. 核心理论高频题:从过拟合背诵到能推导原理
大模型面试的第一类必答题,基本都会落在模型家族和核心组件上。很多人准备这一类时有个误区,就是把博客里的结构说明背得滚瓜烂熟,但是面试官稍微变一个角度问“为什么”,立刻卡壳。下面挑几个真正高频且容易翻车的点展开说。
2.1 Transformer、注意力机制与位置编码的追问套路
Transformer 的相关问题几乎是每场面试的开门题,但水平差异很快会体现在追问层。
- 基础问:讲一下 Self-Attention 的计算过程。这个不能只回答“Q乘K的转置除以根号d,再softmax,再乘V”。面试官想听的是每一步的维度变化,以及为什么缩放因子取根号d。缩放的原因是,当 d 很大时Q和K的点积数值方差会变大,softmax的梯度会变得很小,除以根号d之后让分布更平滑,训练更稳定。
- 升级问:为什么不用 RNN/LSTM 而要引入自注意力?这要对比着说。RNN 是顺序计算,难以并行,长距离依赖受限于梯度传播问题。Self-Attention 能一步看到整个序列,计算可并行,理论上任意两个位置之间都有直接路径。代价是没了天然的顺序信息,所以才需要位置编码。
- 进阶问:RoPE 和 ALiBi 有什么区别?为什么现在主流模型都用 RoPE?关键点是 RoPE 通过旋转矩阵给每个位置赋予相对位置信息,外推能力相对好,而且不影响注意力计算的并行性。ALiBi 则是在注意力分数上直接减去一个与距离相关的偏置,实现简单,外推也不错,但有些场景下精度略逊。这里要能画出旋转位置编码的矩阵形式,能说出频率参数怎么设置。
- 追问到具体:长上下文的稀疏注意力、Sliding Window、Group Query Attention 等变体,考察你是否跟进最新架构。GQA 尤其要重点准备,因为它直接影响推理显存和速度。
我把这块的准备建议总结成一句话:不要只背论文里的图,要把矩阵维度和计算流程在纸上推导两遍,亲测下来面试时的表达会明显更连贯。
2.2 归一化、激活函数与初始化:容易被忽略但经常被深挖
很多候选人把注意力全放在注意力机制上,结果面试官随口问一个 LayerNorm 和 RMSNorm 的区别,就开始含糊。这类问题频率不低,因为大模型训练稳定性和这些选择强相关。
- LayerNorm 是在每个样本的特征维度上计算均值和方差,做标准化;RMSNorm 去掉了均值计算,只对均方根做归一化。RMSNorm 少了平移不变性,但计算开销更小,而且在实际大模型训练中效果足够,所以现在 LLaMA、Mistral 等模型基本都用 RMSNorm。
- 激活函数方面,GELU、SwiGLU 是必聊项。SwiGLU 是门控线性单元和 Swish 的组合,能引入非线性且保有更好的梯度流。为什么大模型里普遍用 SwiGLU 而不是 ReLU?主要是实验表现更好、信息选择能力强,代价是参数多了一部分。
- 初始化的问题经常以“为什么千亿模型不初始化容易炸”出现。深度模型前向传播时,方差会逐层累积,需要根据层数和宽度设置合适的初始化尺度。大模型场景里常用 Depth-scaled init 或特殊标准差设置,目的是让每层输出的方差保持一致。
这些细节从表面看只是选择题,但面试官可以通过追问“计算量变多了为什么还要用”来判断你是真的理解原理,还是仅仅背结论。
2.3 Tokenizer、词表与损失函数中的冷门考点
Tokenizer 看似基础,但面试官喜欢用它来考察你对训练数据管线的理解。
- 主流方法:BPE、WordPiece、Unigram 的区别和各自适用的场景。
- 高频追问:词表大小对模型训练和推理的影响。词表大,需要更大的 embedding 矩阵,显存和显存带宽都会增加;词表小,单个 token 的信息密度低,序列长度变长,计算量也可能变大。这是一个需要权衡的问题。
- 冷门追问:如何添加新词?如何评估 tokenizer 的压缩率?如果语料是多语言的,词表怎么分配比例才合理?
损失函数部分,大模型一般用交叉熵,但面试官喜欢追问:为什么用 token-level 的交叉熵而不是句子级损失?答案在于生成任务天然是逐步预测的,token 级交叉熵可以给每个位置的预测提供梯度,且能配合 mask 忽略填充部分。还可以追问标签平滑在 LLM 训练里的作用,顺带把训练稳定性带出来。
理论题的回答状态,某种程度上决定了整场面试的基调。我的建议是:把每个高频题都整理成“基础结论 + 公式推导 + 场景取舍”三段式,练习时自己对自己讲两遍,直到不看资料也能流畅表达。
3. 微调、对齐与数据工程:面试里的“大模型核心方法论”
理论题只是准备了入场券,真正区分候选人的是大模型专属方法论类问题。微调和人类偏好对齐,基本是每家公司的必考板块。
3.1 指令微调与参数高效微调:LoRA、QLoRA、P-Tuning怎么选
面试官问“你会用什么方案来微调一个模型”,其实是在考验你能不能基于业务约束选方案。这里要先把方案谱系讲清楚:
- 全参微调:效果上限高,但硬件成本高、调参难度大,而且产出是完整的模型副本。除非领域偏移很大且资源充沛,否则不是普通团队的第一选择。
- LoRA 类低秩适配:冻结原模型,只训练低秩矩阵,显存占用和可训练参数量都大幅下降。核心点在于低秩矩阵的秩 r 怎么设、作用在哪些模块上(一般是注意力层的 Q/K/V/O)、alpha 和 r 的关系(LoRA 的缩放因子一般是 alpha / r)。
- QLoRA:把底模压缩到 4-bit,同时用分页优化器等方法省显存,是在单卡显存不足时的强方案。面试官会问“4-bit 量化后训练会不会崩”,回答要点是 QLoRA 用了 NF4 数据类型和双量化,且仍然主要更新 LoRA 适配器,底模的量化误差不会直接反传到大权重上。
- P-Tuning 和 Prefix-Tuning:通过连续提示向量来适配下游任务。参数最少,但效果在复杂任务上常不如 LoRA,适合低成本原型验证。
回答这类问题时,最好带上真实的资源数据,比如“我之前在单张消费级显卡上用 QLoRA 微调了一个中等规模模型,序列长度设为多少,batch size 多少,显存峰值多少,训练时间多少,最终在什么任务上提升了几个点”。有具体数字的答案会比一堆概念更让人信服。
3.2 RLHF 与 DPO:对齐训练背后的逻辑
对齐是大模型面试的分水岭话题。很多人能说出 RLHF 有三步:训练奖励模型、用 PPO 优化策略、结合人类反馈。但如果面试官问“PPO 里的 KL 惩罚为什么不能省”,或者“RLHF 工程落地难在哪”,就会露馅。
- 基础逻辑:RLHF 的目标是让模型输出符合人类偏好,但直接最大化奖励模型分数可能导致模型产生奖励黑客行为,比如输出冗长、重复、堆砌关键词来骗高分。所以要在目标里加上和参考模型的 KL 散度约束,限制策略不能偏离太远。
- DPO 的出现是为了绕开 PPO 的工程复杂性。DPO 直接利用偏好对数据构造 loss,不需要单独训练奖励模型,也不需要在线采样。面试官常问“DPO 和 RLHF 的适用场景”,回答方向是:算力和工程资源有限、偏好数据已经收集好的时候,DPO 更轻量;需要精细控制多目标、在线探索时,RLHF 的灵活性略强。
- 数据问题常被单独拎出来问:人类偏好数据怎么清洗?多个标注员意见不一致怎么处理?奖励模型会不会学到标注偏差?这类问题没有标准答案,但要表现出你对数据质量和偏置的敏感度。
对齐方向还有一个高频衍生问题:如何防止模型越狱或输出不安全内容?这既涉及 RLHF/DPO 阶段的 red teaming,也涉及推理阶段的输入输出风控,建议准备两条思路:训练侧干预和推理侧规则护栏配合,不要只说一条。
3.3 数据配比、去重与课程学习:鲜有人准备但含金量高
数据是大模型的根本,但很多面试者只在聊到“数据清洗”时简单提一句“去重、过滤脏数据”,实际上这完全不够。
- 数据配比:不同来源的数据(网页、代码、论文、多语言语料)比例怎么定?面试官问这个问题的潜台词是,你有没有考虑过模型的智能结构。代码数据会显著提升推理能力,但真实世界的语言分布也不能丢;多语言语料过多会稀释核心语言的 representation。回答时可以提数据配比需要用下游任务的 validation loss 来迭代调整,而不是凭感觉。
- 去重策略:MD5 去重是最初级的,语义级去重(比如 MinHash、Embedding 聚类)才能处理“叙述方式不同但内容重复”的数据。重复数据过多会让模型记忆过强、泛化变差。
- 课程学习与数据排序:是否应该先训练简单样本再训练难样本?在大模型 Scaled 到大规模时,课程学习的作用有争议,但在指令微调阶段,“先通用后专业”“由易到难”的排序确实能减少震荡。这一块可以结合自己的微调经验来聊。
4. 推理优化与工程落地:从“会训练”到“能上线”
大模型方向的技术岗面试,越来越看重工程落地能力。面试官希望候选人不是只会调试训练脚本,而是能把模型放进真实业务里跑起来,同时控制成本和延迟。
4.1 量化、KV Cache、投机采样:推理效率三板斧
推理优化是大模型工程面试中反复出现的主题,也是体现项目深度的好机会。
- 量化:INT8、INT4、FP8 这些格式在什么场景下选哪种,需要讲清楚精度损失与速度收益的权衡。我建议准备一个自己实测过的损失数据,比如“在某个任务上从 FP16 换成 INT8,显存下降了约 40%,速度提升了约 30%,但特定任务上的准确率掉了多少,于是用混合量化方案针对性处理”。
- KV Cache:这是解码阶段的显存大头。面试官喜欢问:为什么需要 KV Cache?因为生成时每个 token 要和历史 token 做注意力,把历史 K/V 缓存起来避免重复计算。进一步会问:KV Cache 显存怎么估算?公式大致是 2(K 和 V)乘以层数乘以 head 数乘以 head_dim 乘以 batch size 乘以序列长度乘以字节数,能当场估算并说出“长序列下 KV Cache 显存随 seq_len 线性增长”,就很加分。
- 投机采样:用一个小模型先草拟多个 token,再用大模型并行验证,接受正确的前缀,显著减少解码步数。这个考点需要分清楚“加速生效的前提”和“为什么结果不变”,前者是接受率要够高、验证并行性要发挥出来,后者是使用拒绝采样保证分布一致。
回答推理题时,佐以可量化的指标会大幅增强说服力。“推理速度提升了一倍”不如“单 token 延迟从 45ms 降到 20ms,整体吞吐从多少 QPS 提到多少 QPS”来得真实。
4.2 RAG 与 Agent:面试官最爱问的应用框架题
大模型不能只聊参数,面试中一定会落到应用上,RAG 是当前落地最多、也最好准备的方案。
- 基础链路要能一气呵成:文档切分、嵌入模型、向量检索、重排、拼装上下文、生成。
- 追问点往往在细节:切分 chunk 的长度怎么设?太小可能丢失语义,太大可能超过上下文且检索粒度粗。Embedding 模型基于什么训练?检索相关性和生成质量之间如何平衡?重排的作用有多大?
- 进阶题:RAG 系统怎么评估?不能只看生成结果,还要分别评估检索环节的召回率和排序质量。端到端评估可以用精心构造的 QA 集,环节拆开则需要人工标注相关性。
Agent 方向的高频题包括:Function Calling 的实现原理,工具调用的参数格式怎么让模型稳定输出,多步规划中的错误恢复机制,记忆如何设计。这类题没有标准答案,重点是体现你已经想过边界条件和兜底策略。
4.3 分布式训练与断点续训:高工面试的压轴题
如果是高级别岗位,分布式训练是区分度很大的考察点。
- 并行策略:数据并行、张量并行、流水线并行、序列并行的适用范围和优缺点。至少要能解释:为什么超大模型需要用张量并行把单层参数切到多卡上,为什么流水线并行会有 bubble 问题,ZeRO 系列优化了什么显存分布。
- 混合精度训练:FP16 的动态损失缩放、BF16 的优势(范围大且不需要损失缩放)、FP32 主权重更新。
- 断点续训:大模型训练动不动跑几千卡时,断点是家常便饭。需要掌握 checkpoint 保存频率、保存哪些状态(优化器状态、RNG 状态、DataLoader 状态)、恢复后如何验证一致性。
- 训练不稳定:loss spike 怎么排查?学习率是不是太大、数据里是不是出现了异常 batch、并行策略有没有正确对齐。这种开放性题,能展示排查思路比背结论强十倍。
我个人建议非基础岗位的面试者,一定要把“数据并行 + ZeRO 阶段 + 混合精度 + checkpoint 恢复”这条链路整体串起来,哪怕只是在小规模集群上实验过,面试表达会立刻上一个台阶。
5. 手撕代码与算法细节:面试现场的硬考验
大模型方向的面试中,手撕题已经跟传统算法题很不一样了。面试官更倾向于让你实现模型核心组件或者训练里的小工具,而不是纯粹让做一道中等难度的 LeetCode。
5.1 高频手撕题清单与实现要点
我把自己经历过的和身边朋友反馈的题目汇总成一份清单:
- 手写 Multi-Head Self-Attention:要求能跑通前向,通常会给随机输入,检查输出形状。要注意 mask 的处理、scale 的位置和 batch 维度的广播。
- 手写 Softmax 的数值稳定版本:减去最大值再指数化,这是面试常客,考察你对数值稳定性的敏感度。
- 手写 Feed-Forward Network 加残差连接的模块:容易但要求一次写对。
- 用 PyTorch 实现一个简单的 LoRA 层:训练模式下只更新新增的低秩矩阵,这个题很能考察对微调框架的理解。
- 采样算法:top-k、top-p 采样各自怎么截断,temperature 怎么影响分布,以及贪心解码的局限。
- 用 numpy 实现一个简易的 Transformer 前向:不依赖深度学习框架,能考察对张量运算的底层理解。
其中最值得反复练的是 Multi-Head Attention。建议亲手推导一遍 shape 变换流程:输入 [batch, seq_len, d_model],投影到 Q/K/V,拆多头,转成 [batch, heads, seq_len, head_dim],计算注意力权重,softmax 后乘 V,最后合并头并经过输出投影。
5.2 系统设计题:怎么回答“训练一个千亿模型需要多少卡”
面试大模型岗位,系统设计题基本上是“算力估算 + 稳定性设计 + 成本优化”的组合拳,常见题目有:
- 训练一个特定参数量的模型,需要多少张 GPU,训练多久?这类题要会估算:总算力约等于 6 倍参数量乘以训练 token 数,再除以总算力,再考虑 MFU(模型利用率),就可以得到理想耗时。MFU 一般取 30% 到 50%,要看并行策略和数据加载。
- 推理服务部署时,怎么支撑高并发?要计算单卡显存能容纳多大模型、单卡并发上限多少、需要几块卡、怎么扩展。如果能答出通过 continuous batching 提升吞吐,并解释原理,已经能超过大部分候选人。
- 微调任务的数据侧如何设计?评估集怎么划分?线上模型怎么回滚?
系统设计题不建议追求标准答案,更建议把整个链路要素列全:数据、模型、算力、存储、监控、回滚,让面试官看到你有全局思考能力。
6. 高频问题速查与避坑心得:面试场上别踩这十个坑
最后分享一些我在准备面试过程中观察到的共性问题和复盘点。这些问题不一定每个都会遇到,但踩中任何一个都可能直接影响面试结果。
6.1 大模型面试高频题速查表
| 考察方向 | 高频问题 | 回答要点 |
|---|---|---|
| 架构 | 为什么 Transformer 能用注意力替换 RNN? | 并行性、长距离依赖、计算路径短 |
| 架构 | RoPE 的旋转位置编码怎么理解? | 内积带相对位置信息,外推更好 |
| 训练 | 为什么大模型训练常不稳定? | 学习率、数据质量、并行通信、混合精度设置 |
| 微调 | LoRA 和全参微调怎么选? | 硬件成本、任务差异、部署灵活性 |
| 对齐 | RLHF 为什么要 KL 约束? | 防止奖励黑客、保持模型原有能力 |
| 推理 | KV Cache 的原理和显存估算公式? | 避免重复计算注意力 K/V,显存按层/头/长度线性增长 |
| 推理 | 量化为什么会有精度损失? | 舍入误差、动态范围受限、敏感模块受影响更大 |
| 应用 | RAG 效果不佳时先排查哪个环节? | 检索召回是否可靠、文档切分是否合理、重排是否有效 |
| 应用 | Agent 工具调用输出不稳定怎么办? | 结果约束、few-shot 示例、解析兜底、模型自身调整 |
| 系统 | 一个 7B 模型用 INT4 部署最低要多少显存? | 参数本身约 3.5GB,加上 KV Cache 和 CUDA 开销,通常需要 6-8GB |
这个表格里的问题,建议不要背答案,而是拿来自测,看自己能不能不看材料把要点讲舒服。能流畅讲出为什么,才算真的准备好。
6.2 避坑心得:来自实际复盘的经验
- 只背结论不背推导。面试官一旦追问,就马上暴露是知识搬运工。我通常建议准备时把每个结论往深处问自己三次,直到问到答不上来,然后把这个边界也写进笔记,因为它极可能就是面试的下一题。
- 简历上写的技术栈必须能自圆其说。如果写了熟悉大模型微调,却在追问 LoRA 的 rank 怎么影响效果时支支吾吾,结果会很糟糕。宁可少写一个项目,也别写经不起追问的点。
- 容易忽视冷门但高频的细节点:GQA 和 MQA 的区别、ChatML 和 Llama 的对话模板差异、上下文窗口扩大的位置编码改造方式、bf16 和 fp16 在反向传播中的表现差异。这些小点一旦考到,会是很漂亮的加分项。
- 及时补齐 Tokenizer 和数据层面的知识,因为从实际面试看,大模型岗位越来越看重数据敏感度。很多候选人在模型结构上表现得很好,但一聊到“如果给你一份杂乱语料,你怎么构建训练集”就卡壳。
- 实践是面试的底气。在条件允许的情况下,尽量在本地动手跑一次 Lora 或 QLoRA 微调,部署一次 API 服务,测一下推理延迟,记录数字。这些真实经验在面试里非常有说服力。
大模型方向的面试问题变化很快,但底层考察的核心一直没有变:是否具备完整链路的问题解决能力,是否理解技术方案背后的取舍,是否有工程判断力。以这个思路去准备每一个题目,基本就不会跑偏。
最后分享一个我自己反复验证的小方法。面试前一周,不刷新题,只拿出已经整理好的十道核心题,像真的在面试一样,开着录音自己讲一遍。回放时你会发现很多自己平时没注意的口头禅、含糊表达,还有逻辑断层。改完再讲一遍,到面试现场时状态会稳很多。这也是我每次准备和复盘时最有价值的环节。