资讯动态

大模型面试基础题五主线:注意力机制、训练对齐与推理部署底层原理

发布时间:2026/10/17 11:46:41 来源:尧图企业网站定制
1. 开场先聊一个现象基础题不是在考背诵而是在考你有没有自己的知识骨架这段时间帮几位准备大模型方向面试的朋友做模拟我明显感觉到一个现象很多人简历上写着“熟悉大模型应用开发”项目也能聊得头头是道但只要问题从“你怎么用API”往上深挖一层变成“你为什么这样设计Prompt”“这个模型帮你干活的时候到底发生了什么”就开始含糊了。这不是个例。原因也简单——大模型这个领域太新大家普遍是“API调用流”出身日常工作就是调接口、写Prompt、做RAG真正接触模型内部机制的机会很少。而面试官问你基础题并不是真的指望你把论文公式背下来他们想看的是两件事第一你有没有把一个复杂系统拆成几个核心机制去理解的能力第二你将来遇到没见过的模型、没见过的bug时有没有一套稳定的底层知识框架去支撑判断。所以这篇内容我打算把大模型面试里最常被问到的基础题整理成五条主线每条主线给一个完整的回答思路和底层原理拆解而不是简单罗列“标准答案”。特别是那些“你背了但不知道为什么会这样”的知识点我会把背后的逻辑讲透。你把这五条主线看完再回去对照任何一家公司的面试题会发现大部分基础问题都落在里面。基础岗和算法岗的深度要求不一样但框架是对的。2. 第一道必考题Transformer的注意力机制到底在做什么2.1 自注意力不是“查词典”而是“加权汇总意见”面试官问“讲一下自注意力机制”的时候很多人的回答是“输入通过Q、K、V三个矩阵变换然后计算Q和K的点积做softmax再和V相乘得到输出。”这段流程背得滚瓜烂熟但你再追问一句“QK点积的物理意义是什么”就沉默了。我的建议是用套会议场景去理解。假设你在开项目评审会屋子里每个人都要发言你想形成自己的结论。自注意力做的事情是每个人先亮出自己的“话题标签”这就是K代表“我这段内容是关于什么的”、自己的完整发言内容这就是V而你脑中有一个“我现在想解决什么问题”这就是Q。你会根据Q去对比每个人的K看看谁的发言和你目前的需求最相关然后把这个相关性作为权重把所有人的V加权汇总成一个综合意见。相关性越高权重越大。也就是说自注意力机制的核心不是“查找”某个位置的固定内容而是让序列里每一个token都动态地和所有其他token计算关联强度然后依据强弱程度重新融合信息。这也是为什么Transformer被称为“上下文建模”能力强——它在计算每个词的表示时看的不是紧挨着的那几个词而是整句话甚至整个段落里所有词且这个关联强度是数据驱动学出来的。面试官听到这层就知道你是真懂了而不是只会念公式。2.2 面试官最爱追问为什么点积之后要除以根号d_k这个问题出现的频率极高而很多人只会回答“防止数值过大导致softmax饱和”这本身没错但不完整。从概率和方差的角度看更通透。假设Q和K里的元素是标准正态分布、均值为0方差为1那么两个向量点积之后的结果方差会随着向量维度d_k线性增长标准差变成根号d_k。如果维度是64点积结果的标准差就是8意味着很多值会落在8以外把这些数直接丢进softmax指数运算后小的值和大的值差距会被急剧放大softmax输出会迅速趋向于一个“独热”分布——最大的那个位置概率接近1其余位置接近0。这样的结果就是模型几乎只关注某一个token损失了“关注多个位置”的能力同时在反向传播时softmax那些接近0的梯度也会变得非常小梯度消失风险上升。除以根号d_k之后相当于把点积结果的方差重新拉回1附近让softmax输入分布处的梯度保持在一个对训练友好的区间。所以这个缩放不是拍脑袋定的它是在维持“表达能力”和“训练稳定性”之间的一个平衡。2.3 多头注意力为什么有效有些面试者会在这里补充“多头就是多做几次注意力然后拼起来”这句话是对的但少了最重要的“为什么”。单一注意力头只有一个关系模式它只能根据一种“相关性定义”去融合信息。比如在“小明把苹果递给小红”这句话里一个头可能学到“动词的施事者是小明”另一个头学到“苹果是递给小红这个动作的对象”。如果只有一个注意力头它必须在一套权重里同时兼顾语法角色、指代关系、语义关联等多种关系拟合压力很大。多头机制本质上是把“关系建模”这件事并行化为多个子空间每个头在相对较低的维度上d_k通常是d_model除以头数专注学习一种关系模式最后把各头的输出拼接并线性变换。这相当于一支团队里有人专门盯语法、有人专门盯语义、有人专门盯位置关系综合判断自然比一个人全面。基础面试题如果只答到这里还不够建议再补一句“多头让模型在同一层同时从多个表示子空间获取信息”这句话直接点中了论文标题里“Attention is All You Need”的那个设计精髓。2.4 容易被人忽视的分层表示Transformer相关常考追问还有“各个层学习到的特征有什么不同”。这个问题在面试里出现频率不低但很多准备过Transformer原理的人反而没想过。一个比较通用的认知是底层靠近输入学到的更多是局部词汇模式和浅层句法特征比如词性、短语边界中层开始对句法结构和部分语义关系敏感深层则更接近“任务导向”的语义抽象比如跨句的信息综合、长距离指代。这个认知是从CV和NLP的神经可解释性研究迁移过来的虽然不同模型细节有区别但总体方向一致。面试时候讲这一段最好的方式是结合一个实际任务来讲比如在文本分类任务里微调时通常只动最后几层效果也不差就是因为前面层在预训练阶段已经学到了比较通用的语言特征任务特异的变换主要发生在高层。这也能顺带衔接上后面要说的LoRA、冻结层参数等微调策略。3. 训练流程是条完整的故事线预训练、监督微调和偏好对齐到底各做了什么3.1 预训练阶段是“大量读书自己悟”学的本质是续写能力“大模型是怎么来的”这个问题基础面试里几乎必问。很多人回答“用海量数据训练出来的”没有错但太空了。面试官想听你讲清楚三个环节各自解决什么问题。预训练Pretraining阶段的训练目标一句话就能讲完给定前n个token预测第n1个token是什么。这个自监督目标的好处是不需要人工标注网上几乎所有文本都能直接当训练数据。模型在互联网级别的语料上反复做“接下一句话”的练习后会习得词汇、语法、事实性知识、推理模式甚至一部分世界常识。但注意这个阶段学到的能力本质是“续写”——给它一个上文它按统计概率分布去续出下文它并不知道什么叫“回答问题”也不知道什么叫“遵守指令”。这个阶段最核心的问题用圈内常说的话就是“预训练模型是个知识渊博的续写机器但不好用”。你需要用后续阶段把它改造成“能对话、能按要求干活的助手”。3.2 SFT阶段的价值教模型学会“答题格式”监督微调Supervised Fine-tuning简称SFT的目的是让模型把“续写”变成“指令回答”。具体做法是准备一批指令和期望回答的配对数据比如“请用一句话解释什么是量子纠缠”——“量子纠缠是两个粒子之间存在一种关联测量其中一个会瞬间影响另一个的状态”。然后以标准的交叉熵损失去微调上一步得到的基座模型。这步在面试时容易被轻视但恰恰是产品上线前最花人力的一步。因为SFT数据的质量直接决定模型回答风格和基础能力边界。这里有个经典经验SFT数据不需要特别多但要求高。几千到几万条高质量样本就可以把模型的“行为模式”改过来数据精而不多是关键反而是数据噪声会让模型输出变得不稳定出现“答非所问”“格式混乱”等问题。如果你面试的是应用方向可以在这一节多说一句SFT本质上是“行为克隆”它模仿的是数据里的回答风格而不是让人模型变得更聪明。模型解决难题的能力绝大部分在预训练时已经定型了SFT主要负责把已有能力引导到“正确姿势”上来。这句话能帮你解释为什么有时候一个模型SFT后还是会犯事实错误——因为它预训练阶段记的就是错的你后面对齐阶段很难把脑海深处的知识改掉。3.3 对齐阶段RLHF和DPO你至少要讲清楚一个大模型的“安全对齐”是近几年面试里一个绕不开的点。最经典的方案是RLHF基于人类反馈的强化学习流程大致四步先用SFT得到一个基础模型再训练一个奖励模型让它学习“对人类偏好来说哪个回答更好”然后用强化学习算法一般是PPO去更新策略模型让模型的输出在奖励模型眼里得分越来越高最后加上一个和参考模型的KL散度约束防止模型跑偏到“为了高分而胡言乱语”。面试者在解释这条链路时最容易断的环节是为什么不能直接用奖励模型打分排序做SFT非要绕一大圈用强化学习原因是——奖励模型给的是一个分数这个分数是连续值但你没法直接把它当作训练信号的梯度来反向传播因为采样过程和softmax输出之间存在不可导的断点。强化学习的策略梯度方法正好解决“从离散采样到参数更新”的桥接问题。这也是SFT和RLHF在训练信号上的本质区别。DPODirect Preference Optimization是近年来面试里的“新宠”它巧妙的地方在于直接从人类偏好数据里构造了一个目标函数把RLHF里“训练奖励模型RL采样优化”的两步并成一步训练稳定、资源消耗低。它的推导基于一个结论最优策略和奖励函数之间存在闭式解关系因此偏好数据可以直接约束策略本身不需要显式训练奖励模型。面试里能把这个对比讲出来会让面试官觉得你关注技术演进而不只是背了个传统方案。3.4 LoRA这类参数高效微调为什么管用“LoRA的原理”基础岗已经越来越常被问到。LoRA的观察来自一个有意思的实证现象大模型预训练参数的秩非常高但在针对具体任务做微调时权重的更新量往往集中在一个很低的秩子空间里。也就是说微调时真正需要改变的有效信息量没那么大不需要完整更新几亿甚至几百亿参数。LoRA的做法是把原始权重冻结在旁边训练两个低秩矩阵A和B优化目标变成AB这个低秩增量。比如原始矩阵是d×kLoRA用Ad×r和Br×k去逼近权重更新量r往往只取8到64参数量一下子降了几个数量级。好处显而易见显存占用小、训练快、切换任务时只需换一个轻量的适配器文件而且可以热插拔。实际的顾虑也有LoRA微调在下游任务上多数情况能达到全量微调的七八成效果但在某些复杂推理任务上差距仍然存在不是万能银弹。4. 看起来简单但特别容易翻车的概念题Tokenizer、上下文、采样参数和幻觉4.1 Tokenizer中文一个字要几个Token为什么英文用户总感觉更“划算”很多做应用的人直到账单出来才真正理解“Token”到底是什么。Token是模型处理文本的基本单位它不一定等于“字”或“词”。现代大模型普遍用BPEByte Pair Encoding这类子词切分算法核心思路是把高频词保留成完整token把罕见词拆成更小的子词片段甚至字节级别。这里有个中文用户特别容易踩的坑中文字符的熵比较高常被拆成1个token的是常用字很多词会被拆成2到3个token生僻字更夸张而英文一个常见单词往往就是1个token。所以同一段信息量中文文本消耗的token数量通常多于英文。这会影响两方面一是计费成本二是模型实际能“看到”的文本长度——因为大模型的注意力计算和显存消耗是按token数算的而不是按字符数算的。面试者如果是在应用岗位建议把Token化对实际效果的影响也说出来Token切得越碎模型越难把握长程依赖而中文训练语料里如果切分策略不合理部分信息可能被切分得支离破碎影响模型对词边界的判断。这也就是为什么各公司都要针对中文优化Tokenizer——不是“炫技”而是直接决定模型使用体验和成本的关键环节。4.2 上下文长度不是“记忆容量”而是“可注意窗口”面试里一个高频概念辨析是“上下文长度Context Length到底代表什么”。很多人答“模型最多能记住多少个字”这个说法不够准确而且容易引到错误方向。RNN时代模型确实受制于记忆容量信息要压进固定大小的隐状态时间久了会遗忘。但Transformer的架构下每个token都能通过注意力直接看到窗口内的任意其他token所以它没有“逐渐遗忘”的问题它的限制更多来自计算量。上下文长度从4096增加到32768注意力计算量是平方级增长显存占用同样暴涨所以长度不是“能不能记住”而是“在算力资源约束下能开多大的窗口”。更本质地说即使上下文窗口很大模型也并不会把窗口内所有信息平均使用——它可能会把大量注意力集中在某些位置其他位置的实际利用率很低。所以业界现在流行的“大海捞针”测试本质上就是在测长文本中模型是否能主动把注意力放到关键位置。面试时把“平方级开销”和“注意力分布非均匀”这两个点讲出来会明显拉开与其他候选人的差距。4.3 温度、Top-p、Top-k不是随便填的面板参数这组参数基础岗几乎必考而且很多人只背结论“温度越高越随机”不深想背后的概率分布逻辑。温度T出现在softmax公式的分母上softmax(QK^T / sqrt(d) / T)。T越大softmax分布变得越平滑概率差距缩小采样时低概率词被抽中的机会变大输出更多样化T越小分布越尖锐高概率词更容易被选中输出更确定。所以温度实际控制的是“概率分布的尖锐程度”而不是“随机性开关”。Top-p和Top-k解决的是另一个问题候选词太多时哪怕一些词概率很小累计起来也可能被抽到产生逻辑崩坏的内容。Top-k的做法很直接只保留概率最高的k个词重新归一化Top-p是保留累计概率超过阈值p的最小集合属于按需裁剪。两者经常配合使用它们在质量稳定性与多样性之间提供了一个旋钮。一个实用的经验是代码生成、数学推理任务里温度调低0.1到0.3配合适当Top-p能显著减少胡编乱造创意写作则温度0.8到1.0效果会更灵活。4.4 幻觉为什么模型会一本正经地胡说八道幻觉已经成了大模型落地的“头号公敌”也必然出现在基础面试题里。关键不是背定义而是能拆解出幻觉的几条来源。第一层原因是训练目标的偏差。预训练时模型的目标是“最大化下一个词的概率”它从没有学过“我不知道”这个选项。数据里没有的知识它不会自动学会说“我不知道”它只会按统计规律编一个听起来合理的后续。第二层原因是解码策略本身默认偏好流畅性采样时概率高的路径往往是流畅自然的但不代表它是真实的。第三层原因是训练数据本身包含噪声和错误信息——互联网语料里大量内容是错的、过时的、矛盾的模型在拟合这些数据时就把错误内化了。面试时如果能再补一句“所以幻觉不能靠事后惩罚根除需要从数据、训练目标、推理时验证三个环节一起治理”基本就能把这个题的层次立起来。工程上治理幻觉常见的方案包括RAG检索增强生成、约束解码、模型自检等可以放在开放题里展开。5. 推理部署方向的送分题与送命题显存估算、KV Cache和量化5.1 快速估算7B模型推理到底要多少显存这是应用工程师面试几乎必考的口算题。核心是字节数换算一个FP16参数占2字节一个INT8参数占1字节一个INT4参数占0.5字节注意实际实现会有额外开销。一个7B模型用FP16存权重大约需要14GB显存。如果加上推理过程中的KV Cache、激活值等一张24GB的卡基本能跑起来如果量化到8bit权重只要7GB十几GB的卡也能勉强运行。很多面试者提到显存只算权重漏了KV Cache这是大坑。推理时每个token都需要沿序列长度保存Key和Value向量随着请求不断变长KV Cache的显存占用会线性增长。长对话下KV Cache可能比模型权重还占显存。这就是为什么“长上下文”始终是推理优化界的一大难题也是为什么GQA分组查询注意力这类架构改动能成为新的“炫技点”——它通过让多个查询头共享一组Key/Value来砍掉大部分KV缓存开销。5.2 推理过程为什么慢KV Cache解决了什么面试里有一道关于“自回归生成”的必问题为什么大模型生成一个字要那么久答案分两块第一生成是逐token的串行过程每生成一个token都要完整跑一遍前向传播第二每一步需要重新计算前面所有token的注意力如果从头算复杂度是序列长度的平方级增长。KV Cache正是针对第二点的优化。在生成第t个token时这个token之前的K和V其实在前面的步骤里已经算过了把这些向量缓存下来这一轮只需要计算新token对应的Q、K、V然后用新的Q和缓存的K、V做注意力省掉了大量重复计算。用上KV Cache后单步生成的复杂度从O(n²)降到O(n)效果非常显著。这也是为什么推理框架里一说到“长上下文稳步提速”KV Cache必然出现在核心优化列表中。不过KV Cache也有代价显存占用线性上升且批量推理时每个序列的缓存长度不同给batching和显存管理带来额外复杂度。现在有PagedAttention这类技术把KV Cache分页就是借鉴操作系统虚拟内存管理的思路来缓解碎片化。面试答到这里基本上已经把推理部署的核心点都覆盖了。5.3 量化、剪枝、蒸馏简单讲清楚“省内存三件套”“怎么把模型做小、做快”是部署岗最常聊的话题但基础面试里只需要讲清思路即可。量化是把权重从FP16降为INT8或INT4对应显存减少到1/2或1/4。但单纯压缩权重会损失精度所以业界常用GPTQ、AWQ这类训练后量化技术通过观察激活值分布来校准量化参数把精度损失压到很小。剪枝是直接砍掉不太重要的权重或注意力头好比给文章删除冗余形容词。蒸馏则是让一个大模型当老师把一个更大模型的知识“教”给小模型让小模型在输出分布上尽量逼近老师。三个方向可以叠加但每种方法都会在不同任务上有不同表现需要实测验证而不是只看参数规模。面试时建议把“精度-成本-速度”的三角权衡挂在嘴边——部署本质上是在资源有限的情况下对这三个目标做取舍任何优化方案都要放到这个框架里评价。6. 开放式问题才是真正的分水岭你怎么拆解一个没见过的问题6.1 面试官想听的不是你背过多少行情而是你的决策路径基础题之外现在的大模型面试基本都会给一道开放式场景题比如“给某业务选一个开源模型你会怎么挑”“如何降低问答场景的幻觉率”。这类题没有标准答案但特别能区分“真懂”和“背过”。大部分人的第一反应是给一个具体方案比如“用更强的模型”“加RAG”。但面试官想看到的其实是你先拆解问题的能力。一个更完整的回答结构是明确约束条件比如成本上限、延迟要求、部署环境拆解任务类型比如是开放问答还是格式化抽取再制定技术选型标准比如按准确率需求决定用7B还是13B最后还要说明风险与兜底机制比如效果不达标时怎么退回。举一个实际例子。假设问题是如何降低客服场景的回答幻觉率正确答案不是冲上去改模型而是分几步考虑先把能通过检索获取的标准答案外置用RAG把模型生成内容锚定在知识库里再对输出加约束解码确保关键字段格式必填然后对历史对话数据做SFT把回答风格收敛到客服口径最后用评测集持续监控幻觉比例做回归测试。这样的回答路径展示了你对“问题定位-方案设计-风险控制”的整体把握远胜于一句“用RAG”的答案。6.2 怎么让开放题答得既有深度又像个同行这里有个容易被忽视的技巧承认边界。面试官提到一个新词你不太熟直面承认然后补一句“我对这块具体细节了解有限但按我对相关机制的推测它应该和……有关系逻辑上可能是……”。这比强行编造要体面得多因为没有面试官期待你覆盖所有方向但所有人都希望候选人具备“用已知框架推理未知问题”的能力。另外在和面试官交流时适当用“从现象推断机制”的思路组织语言例如“从实际表现看长文本任务里模型中段信息的召回效果会比首尾差我推测注意力分布可能存在‘位置偏差’”这个表述方式会让对方觉得你是在做工程分析而不是背教科书。6.3 面试中常见的三个表达陷阱第一个是堆术语。一说推理优化就立刻冒出PagedAttention、投机采样、张量并行一整套名词但问到其中某一个的具体原理又支支吾吾这种“名词密度大于理解深度”的表述方式会快速透支印象分。正确做法是每抛出一个小词后面紧跟一句工作原理——如果发现自己接不上就宁可不提这个词。第二个是不给量化依据。讲到显存、速度、效果指标时只说“会变快”“会更准”但没有具体数字和测试方法听起来像拍脑袋。面试官想听的是你是否知道“多少并发下会超时”“准确率指标用什么集评测”这样才能判断你到底上手跑过没有。第三个是忽略风险边界。想表达方案优点时顺带说清楚“这个方法在什么情况下不适用”反而能体现你对技术的完整认知。比特化方案就补一句“INT4对超大模型收益明显但对小模型可能精度损失过大得不偿失”——这种边说优点边划边界的风格才是资深从业者的表达习惯。7. 再分享一个我实际带朋友模拟面试时觉得最管用的复习方法说了这么多知识点最后分享一个我自己的观察。大多数面试翻车的人问题不是“不会”而是知识是零散的点没有串成一条线。面试官随机从一个点扎进去你能迅速沿自己的知识树展开才算真正过关。我建议准备面试的人先把上述五条主线按“数据怎么准备—模型架构怎么算—训练怎么学—怎么让它听指令—怎么高效落地”这条主故事线自己讲一遍。每讲到一个知识点就问自己三个问题它解决什么问题不解决会怎样换个方案会有什么取舍这套三问法比盲目刷题有用得多因为你真正建立的不是“面试答案库”而是一套可迁移的思考框架。如果时间有限优先把Transformer注意力机制、Token与上下文、SFT与对齐这三个点吃透因为它们是大模型所有上层应用的基石。剩下题目你哪怕遇到完全没见过的也能用“它解决什么问题—底层机制是什么—当前方案怎么做”这个框架去临场组织语言。面试说到底是一次同行之间的技术对话能做到对方刚开口你就知道他要问哪一层这场对话基本就稳了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑