AI大模型面试必问的20个问题:从Transformer到RLHF全覆盖

面试专题作者: 美历团队

大模型面试高频20题全覆盖:Transformer基础、预训练、微调SFT/LoRA/RLHF/DPO、推理KV Cache/量化/投机解码、应用RAG/Agent/Prompt Engineering,每题含考察点与答案方向

背景介绍

说实话,我一开始准备大模型面试的时候,完全是一头雾水。网上资料太多太杂,有的讲Transformer讲得特别深,有的又只聊应用层,根本不知道面试官到底会问什么。后来我面了大概七八家做LLM的公司,从小创业团队到大厂研究院都面过,慢慢摸出了一套规律——大模型面试的核心考察点其实就那几个板块,每个板块的高频题也就那么几道。今天我就把这20道必问题整理出来,希望能帮到正在准备面试的同学。

面试流程复盘

我面的几家公司流程都差不多:先是简历筛选,然后一轮技术面(主要考基础),二轮深入面(考项目+手推),三轮可能是交叉面或者系统设计面。大模型岗的技术面有个特点,就是基础知识占比特别大,不像传统开发岗那样主要考项目经验。面试官会从Transformer原理开始问,一路问到训练、微调、推理、应用,基本上每个环节都会出题。我印象最深的是某大厂二面,面试官一口气问了40分钟基础题,从Self-Attention问到DPO,中间没有任何项目相关的讨论,纯考八股。所以基础不扎实真的很难过。

真题汇总

一、Transformer基础(4题)

1. Self-Attention的原理是什么?为什么比RNN好?

考察点:理解注意力机制的核心计算流程,以及相比序列模型的优劣。

答案方向:Self-Attention的核心是QKV计算,输入序列分别乘以Wq、Wk、Wv得到查询、键、值矩阵,然后用Q和K的点积算注意力权重,再乘以V得到输出。相比RNN,最大的优势是并行计算长距离依赖建模。RNN必须逐步处理序列,而Self-Attention可以一次性计算所有位置的关系,训练速度快很多。而且RNN的长距离依赖会衰减,Attention则直接建模任意两个位置的关系,没有衰减问题。时间复杂度上Self-Attention是O(n²),这是它的劣势,但通过稀疏注意力可以缓解。

2. 位置编码有哪些方式?RoPE为什么好用?

考察点:理解位置信息的注入方式,以及旋转位置编码的优势。

答案方向:位置编码主要有绝对位置编码(正弦/余弦、可学习)和相对位置编码(RoPE、ALiBi)。RoPE的核心思想是通过旋转矩阵将位置信息融入Q和K的点积中,使得内积自然包含相对位置信息。RoPE的好处是:外推性好,可以通过NTK-aware插值扩展到更长的上下文;计算高效,不需要额外的位置嵌入参数;相对位置感知,天然建模相对距离。现在主流大模型基本都用RoPE了。

3. 多头注意力的作用是什么?头数怎么选?

考察点:理解多头机制的动机和设计选择。

答案方向:多头注意力让模型可以在不同子空间中关注不同的信息模式,类似于CNN的多通道。每个头学习不同的注意力分布,有的关注局部语法,有的关注长距离语义。头数的选择一般是维度/头维度,比如768维用12个头(每头64维)。头数不是越多越好,太多会导致每个头的维度太小,表达能力不足。GQA(分组查询注意力)是近年的改进,多个Q头共享K/V头,在推理时减少KV Cache开销。

4. FFN层的作用是什么?为什么用GLU变体?

考察点:理解前馈网络的角色和GLU激活的优势。

答案方向:FFN是Transformer中的"记忆"模块,Attention负责信息路由,FFN负责信息加工和存储。标准FFN是两层线性变换+ReLU激活。GLU变体(如SwiGLU)引入了门控机制,公式是Swish(xW1)⊙(xW2),其中⊙是逐元素乘法。GLU的优势是表达能力更强,门控机制可以动态过滤信息;训练更稳定,Swish激活比ReLU在深层网络中表现更好。LLaMA、Mistral等模型都用SwiGLU。

二、预训练(4题)

5. 预训练的目标函数是什么?为什么用CLM而不是MLM?

考察点:理解语言建模目标的选择。

答案方向:预训练主要有两种目标:CLM(因果语言建模,自回归预测下一个token)和MLM(掩码语言建模,预测被遮蔽的token)。现在主流大模型都用CLM,原因是:与生成任务天然对齐,下游应用主要是生成式任务;训练数据利用率高,每个token都作为标签参与训练;扩展性好,CLM的scaling law更清晰。MLM虽然单步信息密度更高,但和生成式任务有gap,现在主要用于编码器模型如BERT。

6. 预训练数据清洗有哪些关键步骤?

考察点:理解数据质量对模型性能的影响。

答案方向:数据清洗是大模型训练中最容易被低估的环节。关键步骤包括:去重(MinHash/LSH去重,避免记忆效应);质量过滤(用小模型打分,过滤低质量网页);有害内容过滤(安全分类器过滤暴力色情内容);PII移除(脱敏个人身份信息);语言识别(过滤非目标语言数据);格式清洗(去除HTML标签、模板文本等)。数据质量直接决定模型上限,GPT-4的训练数据清洗流程据说比模型架构还复杂。

7. 训练不稳定怎么排查?loss spike怎么处理?

考察点:理解大模型训练的工程挑战。

答案方向:训练不稳定是大模型训练最头疼的问题。排查思路:检查数据(是否有脏数据、异常分布);检查梯度(监控梯度范数,是否有爆炸/消失);检查学习率(warmup是否充分,峰值是否过高);检查精度(混合精度训练是否有溢出)。Loss spike的处理:最直接的是跳过 spike 前后的checkpoint,回退到稳定点重新训练;也可以降低学习率、增大梯度裁剪阈值。Meta训练LLaMA时用了7个阶段的学习率调度来保持稳定。

8. 长上下文怎么实现?有哪些技术方案?

考察点:理解长上下文扩展的技术路线。

答案方向:长上下文主要有三种路线:训练时扩展(直接增大序列长度训练,成本高但效果最好);位置编码外推(NTK-aware插值、YaRN等,通过调整RoPE的频率基底来扩展上下文窗口);推理时扩展(StreamingLLM、注意力汇聚等,只保留sink token和局部窗口的KV Cache)。实际上往往是组合使用:先在4K上预训练,再用NTK-aware扩展到32K做继续预训练,最后用长数据微调。GPT-4的128K上下文就是这么做的。

三、微调(4题)

9. SFT的数据怎么构造?有什么坑?

考察点:理解指令微调的实践细节。

答案方向:SFT数据构造的核心是多样性和质量。数据来源包括:人工标注、GPT-4生成、开源数据集清洗。关键坑点:格式一致性(不同来源的数据格式要统一,否则模型会混乱);长度分布(不能全是短回答,要有长文生成样本);拒绝样本(要加入模型应该拒绝回答的样本,否则模型会乱答);重复去重(相似指令要去重,否则模型过拟合)。数据量不需要太多,LIMA论文证明了1000条高质量SFT数据就能得到不错的效果。

10. LoRA和QLoRA的区别是什么?怎么选?

考察点:理解参数高效微调的原理和选择。

答案方向:LoRA在原始权重矩阵旁添加低秩分解矩阵ΔW=BA,训练时只更新A和B。QLoRA在LoRA基础上加了三个优化:4-bit NormalFloat量化(用NF4数据类型替代FP16,更精确的量化);双重量化(对量化常数再量化,节省显存);分页优化器(用CPU内存分页处理优化器状态,避免OOM)。选择上,显存够用LoRA,显存紧张用QLoRA。QLoRA的精度损失很小,基本可以替代LoRA。秩r的选择一般是8-64,任务越复杂r越大。

11. RLHF的流程是什么?PPO训练有什么难点?

考察点:理解人类反馈强化学习的完整流程。

答案方向:RLHF分三步:训练奖励模型(用人类偏好数据训练一个打分模型);用PPO优化策略模型(最大化奖励同时约束KL散度,防止偏离太远);迭代优化(收集新偏好数据,重复上述过程)。PPO的难点:训练不稳定(奖励模型和策略模型的更新容易互相干扰);KL约束难调(太松模型会reward hacking,太紧模型学不到东西);显存开销大(需要同时加载4个模型:策略、参考、奖励、价值)。InstructGPT用了非常精细的超参调优才稳定训练。

12. DPO相比RLHF有什么优势?

考察点:理解直接偏好优化的原理和优劣。

答案方向:DPO的核心思想是跳过奖励模型,直接用偏好数据优化策略。它通过数学推导证明了在特定条件下,最优策略可以用偏好数据直接参数化,损失函数是log-sigmoid形式。DPO的优势:不需要训练奖励模型,流程简单;训练更稳定,没有PPO的4模型联合训练问题;计算成本低,只需要2个模型(策略+参考)。劣势:泛化性不如RLHF,DPO只优化训练数据中的偏好,无法泛化到新的偏好维度;对数据质量更敏感,噪声偏好数据会直接影响策略。实际中DPO和RLHF各有适用场景,简单对齐用DPO,复杂对齐还是RLHF更灵活。

四、推理(4题)

13. KV Cache的原理是什么?怎么优化?

考察点:理解推理加速的核心技术。

答案方向:KV Cache是在自回归生成时缓存已计算的K和V矩阵,避免重复计算。每个新token只需要和缓存的KV做注意力计算,不用重新计算之前所有token的KV。优化方法:GQA/MQA(多个Q头共享KV头,减少KV Cache大小);量化(KV Cache用8-bit或4-bit存储);分页注意力(vLLM的PagedAttention,像操作系统管理内存一样管理KV Cache,避免碎片);滑动窗口(只保留最近W个token的KV,如Mistral的滑动窗口注意力)。KV Cache是大模型推理最大的显存瓶颈,优化空间很大。

14. 量化有哪些方式?INT8和INT4的精度损失大吗?

考察点:理解模型量化的原理和效果。

答案方向:量化分训练后量化(PTQ)量化感知训练(QAT)。PTQ又分权重量化(只量化权重)和权重+激活量化(W8A8、W4A16等)。INT8权重量化精度损失很小,基本不影响效果;INT4权重量化在7B以上模型上损失也可接受,但小模型(1-3B)会有明显退化。关键技巧:GPTQ(逐层量化,用Hessian信息补偿量化误差);AWQ(基于激活感知的权重量化,保护重要通道);SmoothQuant(把激活的量化难度迁移到权重上)。现在W4A16是最主流的推理量化方案。

15. 投机解码是什么?能加速多少?

考察点:理解投机推理的原理和加速效果。

答案方向:投机解码的核心思想是用一个小模型(draft model)快速生成多个候选token,然后大模型一次前向传播验证这些token是否正确。如果小模型生成的k个token中有n个被大模型接受,就相当于一次前向传播生成了n+1个token(n个接受的+1个大模型自己生成的)。加速比取决于小模型和大模型的分布匹配程度,匹配越好加速越高。实际中一般能获得2-3倍的加速,且不损失精度。Medusa是投机解码的改进版,给大模型加多个预测头来并行生成候选token,不需要单独的小模型。

16. 主流推理框架有哪些?怎么选?

考察点:了解推理框架的生态和选型。

答案方向:主流框架:vLLM(PagedAttention,吞吐量高,适合在线服务);TGI(HuggingFace出品,功能全面,部署方便);TensorRT-LLM(NVIDIA出品,GPU优化极致,但上手门槛高);llama.cpp(CPU/Apple Silicon推理,适合本地部署);MLC-LLM(编译优化,跨平台)。选择建议:在线服务选vLLM或TGI,追求极致性能选TensorRT-LLM,本地开发选llama.cpp。vLLM目前社区最活跃,是大多数团队的首选。

五、应用(4题)

17. RAG的流程是什么?怎么提升效果?

考察点:理解检索增强生成的实践。

答案方向:RAG流程:用户问题→Embedding→向量检索→拼接上下文→LLM生成。提升效果的方法:检索优化(混合检索:向量+关键词、重排序:用Cross-Encoder精排);分块优化(语义分块替代固定长度分块、父子文档策略);查询优化(查询改写、多查询扩展、HyDE假设性文档嵌入);生成优化(上下文压缩、引用追踪、幻觉检测)。RAG最大的坑是检索质量,检索不到相关文档,生成再好也没用。建议先花80%精力优化检索,再优化生成。

18. Agent的核心架构是什么?怎么设计?

考察点:理解AI Agent的设计模式。

答案方向:Agent核心是感知-决策-执行循环:LLM作为大脑,接收环境信息→思考下一步行动→调用工具执行→观察结果→继续思考。主流架构:ReAct(推理+行动交替,简单但token消耗大);Plan-and-Execute(先制定完整计划再逐步执行,适合复杂任务);LATS(语言Agent树搜索,用蒙特卡洛树搜索做规划)。设计要点:工具定义要清晰(名称、描述、参数schema);错误处理要完善(工具调用失败要有重试/回退);上下文管理要合理(对话历史太长要截断/摘要)。

19. Prompt Engineering有哪些技巧?

考察点:掌握提示词工程的核心方法。

答案方向:核心技巧:角色设定(给模型一个专业角色,输出更专业);少样本学习(给几个示例,模型能快速理解任务格式);思维链(加"让我们一步步思考",让模型展示推理过程);结构化输出(要求JSON/Markdown格式,方便后处理);自我一致性(多次采样取多数结果,提高可靠性);分步指令(复杂任务拆成多步,每步给明确指令)。进阶技巧包括元提示(让模型自己优化提示词)和自动提示优化(如OPRO用LLM搜索最优提示)。

20. 多模态大模型怎么做的?有什么挑战?

考察点:理解多模态模型的技术路线。

答案方向:主流方案:编码器-对齐-LLM,用视觉编码器(如ViT)提取视觉特征,通过投影层对齐到语言空间,然后输入LLM。代表模型:LLaVA(简单线性投影)、Qwen-VL(交叉注意力)、GPT-4V(细节未公开但推测类似)。核心挑战:模态对齐(视觉和语言的语义空间差异大,对齐质量决定多模态理解能力);高分辨率处理(图像分辨率高,token数爆炸,需要动态分辨率或切片策略);训练数据(高质量图文对数据稀缺,需要精心构造);幻觉(多模态模型更容易产生视觉幻觉,需要专门的对齐训练)。

心得建议

准备大模型面试,我的最大体会是基础一定要扎实。Transformer的每个细节都要搞清楚,不能只背结论。面试官最喜欢追问"为什么",比如你说RoPE好,他一定会问"为什么RoPE能外推",你说DPO简单,他一定会问"DPO的数学推导是什么"。所以每个知识点不仅要知其然,还要知其所以然。

第二个建议是关注最新进展。大模型领域发展太快了,半年前的知识可能已经过时。面试前一定要看最近3个月的论文,特别是各大厂的最新工作。我面试时就因为不知道GQA被面试官提醒了,很尴尬。

第三个建议是动手实践。光看不练是不够的,至少要用HuggingFace跑一遍SFT和LoRA微调,用vLLM部署过推理服务,用LangChain搭过RAG系统。面试官很看重实践经验,能说出踩过的坑比背理论强一百倍。

FAQ

Q:大模型面试需要刷LeetCode吗?

A:看岗位。如果是偏算法研究的岗位,一般不考算法题,主要考理论和推导。如果是偏工程的岗位(推理优化、训练框架等),会考中等难度的算法题。建议至少刷50道中等题保底。

Q:没有大模型训练经验怎么办?

A:可以用开源模型做微调实验,用HuggingFace的TRL库跑SFT/DPO,用vLLM部署推理。这些都可以写在简历上。关键是能说出具体的技术细节和踩过的坑。

Q:面试被问到不会的问题怎么办?

A:诚实说不太了解,但可以说说自己的理解方向。比如被问到某个具体论文,可以说"这篇论文我没读过,但从问题来看我猜测可能的思路是..."。面试官更看重思考能力而非记忆能力。

Q:需要读哪些论文?

A:必读:Attention Is All You Need、GPT系列、LLaMA系列、InstructGPT(RLHF)、DPO。选读:Flash Attention、vLLM、RAG相关论文。至少把必读论文的方法部分仔细看一遍。

Q:大模型面试和传统ML面试有什么区别?

A:传统ML面试更偏数学推导和统计基础,大模型面试更偏系统工程和最新技术。但基础是相通的,建议先打好传统ML基础,再学大模型专项知识。

#LLM#Transformer#RLHF#DPO#LoRA#KV Cache#RAG#Agent#面试八股文#大模型