资讯动态

大模型面试8大核心问题:从Self-Attention到Agent容错

发布时间:2026/10/27 3:12:02 来源:尧图企业网站定制
这两年面 LLM 相关岗位前前后后也聊了几百个候选人我自己也被别人面过很多次。有一个很明显的感受很多人简历写得花团锦簇真坐到对面问几个基础问题就现原形。尤其有些连 Transformer 的 self-attention 为什么除以根号 d 都答不利索更别提 LoRA 的 rank 和 alpha 怎么调、RAG 召回不准该怎么办、Agent 工具调用失败怎么容错。这类问题不是闲得没事刁难人而是做 LLM 项目一定会撞上的坎答不上来基本就是淘汰。这篇文章我整理了 8 个我反复在面试里问到的问题覆盖原理、训练、微调、部署、应用几个层面。每个问题我会说明面试官到底想考什么、标准答法是什么、有哪些容易踩的坑。不管你是准备面算法岗、应用开发岗还是推理优化岗照着这条线把思路顺一遍胜算会大很多。1. 面试前的整体思路面试官到底在考什么1.1 这8个问题的考察逻辑先说个很多人忽略的点面试官问技术问题很少是为了让你背概念。大模型方向尤其如此概念可以背但背后的“为什么”和“怎么办”是背不出来的。比如你知道 BPE 是 byte pair encoding但你能不能解释中文语料用它分词为什么效果不如英文你知道 LoRA 省显存但你能不能说清省的是训练时的哪一部分显存能讲到这一层才说明你真的用过。我把 8 个问题按能力维度分了一下问题考察维度对应能力Q1 缩放点积注意力原理深度是否真正理解 Transformer 而不是只会调包Q2 分词与中文特殊性数据处理有没有处理真实语料的经验Q3 预训练-SFT-RLHF 链路训练体系对模型能力来源的理解是否完整Q4 LoRA 微调参数效率微调理论和工程落地的平衡Q5 指令数据构建数据质量是否知道数据才是微调的上限Q6 KV Cache 与量化推理优化部署和成本意识Q7 长上下文与位置编码前沿追踪对新技术有没有跟进和思考Q8 幻觉、RAG 与 Agent 容错工程可靠性能不能把模型落地到真实场景排列上大致是从理论到工程、从单点到系统。很多候选人挂在 Q1 和 Q2因为这两题最基础、最容易被轻视。我见过有人能把 PPO 的公式推得很顺问他 QKV 矩阵为什么要拆成三个反而支支吾吾。这就是典型的根基没打牢。1.2 按岗位定位问题优先级不同岗位对这 8 个问题的考察权重是不一样的你可以按自己的方向去排优先级算法岗 / 预训练岗Q1、Q3、Q7 最重要。你得能从权重初始化讲到梯度稳定性从数据配比讲到 loss 曲线异常排查。应用开发岗 / 智能体方向Q4、Q5、Q8 关键。尤其 Q8现在大家都在做 Agent、做 RAG工具调用失败、记忆污染、自我纠错这类可靠性问题面试官基本都会追着问。推理优化岗 / 部署岗Q6、Q7 是重头戏。KV Cache 的显存计算、量化方案选型、长序列下的推理延迟这些直接决定模型能不能上线。数据岗 / 微调岗Q2、Q5 要深挖。数据标注的 SOP、去重和清洗策略、指令模板怎么不污染生成都是加分项。面试前先判断你投的团队最缺什么能力把对应的问题准备到能举一反三的程度比 8 个问题平均用力更有效。不过下面这 8 个问题我建议还是都过一遍因为它们互相之间有连带关系只懂局部很容易被追问打穿。2. 核心问题逐个拆解8 道题的标准思考路径2.1 Q1Transformer 里的 Self-Attention 为什么要除以根号 d_k这算是 LLM 面试的“入场券”题但答完整的人不多。常见的回答是“防止梯度消失”这个说法太笼统。真正的原因是假设 Q 和 K 向量里的元素是均值为 0、方差为 1 的随机变量那 Q 和 K 做点积之后结果是一个 d_k 维随机变量之和均值是 0方差会变成 d_k。也就是说维度越大点积的数值方差越大。softmax 对大的输入值非常敏感。当点积结果的绝对值很大时softmax 会直接进入饱和区导致绝大多数权重趋近于 0梯度也变得非常小训练根本走不动。除以根号 d_k 之后方差重新变回 1softmax 的输入分布不再随维度变化训练就稳定了。我在面试里通常还会追问一句为什么是根号 d_k 而不是 d_k因为点积是求和方差是线性叠加的标准差则是对维度开根号。你要把方差压回 1就得除以标准差也就是根号 d_k。能把这个推导过程讲顺的人说明至少亲手读过原始论文或者做过实验验证。追问还可能包括多头注意力为什么有效可以答多头让模型在不同子空间里学习不同的注意力模式类似集成多个“视角”。实际训练中我见过把 scale 去掉的变体训练曲线确实会剧烈震荡这也能佐证缩放的必要性。2.2 Q2BPE 分词具体是怎么工作的中文语料有什么特殊问题BPE 的思想其实很朴素先从字符级或字节级词表开始然后不断统计相邻 token 对的共现频率把最高频的 pair 合并成新的 token直到词表达到目标大小。比如 “tokenization” 可能会被拆成 “token” “ization”而不是一个整词这样可以兼顾词表大小和覆盖度。关于未登录词关键点是现代 BPE 大多建立在字节级别上所以理论上任意 UTF-8 文本都可以被拆解成字节子串不会有真正的 “unknown” token。这一点很多候选人答不到会说“遇到生词就标记为 unk”这是老式 n-gram 时代的思路不是 LLM 的处理方式。中文的难点在于英文天然有空格作为分词边界BPE 可以直接在单词上生长。中文没有这个边界如果直接用字符级 BPE容易把常用字拆得七零八落导致序列变长、训练效率下降。实践中通常要先做预分词比如按词或按字切分再用 SentencePiece 的 unigram 模型训练或者用字节级 BPE 处理中文字符。面试里能说出“中文词表设计要在覆盖率和序列长度之间权衡”并且提一句“词表过大会让 embedding 层参数量爆炸词表过小会拉长序列”基本就能过关。这个问题的本质是在考察你有没有做过真实的多语言或中文语料处理。2.3 Q3预训练、SFT、RLHF/DPO 这条链路里每个环节到底在解决什么问题这条链路是现在面试的高频主线。预训练阶段做的是 next token prediction目标函数就是交叉熵。它的核心价值是让模型从海量文本里学到语言规律和世界知识但此时模型只会续写不会“听话”。SFT 阶段用指令-回答对做有监督微调核心不是灌知识而是教模型“交互格式”用户问一句你应该怎么组织回答。这里有一个常见的误区很多人以为 SFT 是让模型变聪明其实 SFT 更偏向行为对齐和格式学习。这也是为什么 SFT 数据质量远比数量重要——几十万条高质量数据可能比几百万条爬来的杂数据效果更好。RLHF 要解决的问题是 SFT 学不到的让输出符合人类偏好而不是仅仅模仿数据。RLHF 通常包括训练奖励模型、用 PPO 优化策略工程复杂度高。近年 DPO 能直接跳过显式奖励模型用偏好对做优化很多团队实际在用。如果面试官问“你们为什么用 DPO 而不是 PPO”比较稳的答法是DPO 实现简单、训练稳定、更省显存适合偏好数据量不大且没有足够做 RL 工程资源的团队但 PPO 的上限可能更高尤其在奖励信号复杂、需要在线探索的场景。这个问题还有一个隐藏考点你是否知道每个阶段的数据质量和数据来源不同。预训练要广和杂SFT 要精和对RLHF 需要能区分好坏的偏好对。能把数据维度的差异讲清楚比单纯背流程更打动人。2.4 Q4LoRA 为什么有效它省的到底是什么LoRA 的核心假设是预训练模型在微调时权重更新的部分天然具有低秩特性。所以它冻结原始权重 W在旁边加一个低秩分解的旁路 BA前向变成 Wx BAx。训练时只更新 A 和 B推理时把 BA 合并回 W不增加任何额外延迟。很多人说 LoRA 省显存但要能说清楚省在哪。全参微调时显存大头通常是优化器状态比如 Adam 的动量和方差参数越多这部分越夸张。LoRA 只训练两个小矩阵优化器状态也就小了同时反向传播不需要为所有层保存梯度这才真正把单卡训练 7B 模型变成可能。至于 COST 本身前向计算还是要过完整的模型所以激活值并没有省太多。实际操作层面面试官喜欢追问 rank 和 alpha 怎么选。我的经验是通用指令跟随或风格调整rank8 或 16 往往就够如果任务需要学习大量新知识、新格式比如让模型学会一种文档结构rank 可以开到 64 甚至 128。rank 开太大反而容易过拟合训练集在验证集上掉点。alpha 一般设成 rank 的 1 到 2 倍不过真正决定效果的还是学习率我一般用 1e-4 到 2e-4 做参考值。还需要知道 QLoRA把底座模型量化到 4-bit再用 LoRA 微调消费级显卡也能跑 7B/13B。面试里如果能补充一句“量化底座会带来轻微精度损失但对大多数指令任务影响不大”会显得你确实做过实验对比。2.5 Q5指令微调数据怎么构造直接用聊天记录精调行不行现在很多团队手里有大量存量聊天记录最常见的想法是聊天记录这么多直接拿去微调吧。我的态度是可以但绝对不能直接用。这句话在面试里本身就是很好的 start point。聊天记录和指令数据有本质区别。指令数据是“用户提出明确请求助手给出正确回答”的对话对而聊天记录里充斥着上下文不完整的片段截断导致问和答错位客服人员随口说的不准确信息模型会把错误当知识学进去语气、角色标识混杂还有大量重复话术涉及隐私敏感内容直接进训练集有合规风险。正确做法是先做数据加工抽取有效问答对、清洗无关内容、重写错误答案、去重、按模板重排。如果要做数据标注标注规范里一定要有正反例示例和审核机制因为纯人工标注的一致性往往是个大坑。标注之后还要算一致性指标用一批样本让两个人标看重合率低于 90% 就需要重新统一标准。另一个关键点是 chat template。微调时 loss 通常只算在 assistant 回复上如果 template 写错了比如把用户内容也算进 loss模型会学到“替用户回答”的坏习惯。我排查过无数次训练后模型输出奇怪的问题最后发现是 template 和 tokenizer 的 chat template 没对齐。这个问题说出来会非常加分因为它是典型的只有做过才见过的坑。2.6 Q6KV Cache 是什么量化方案 GPTQ、AWQ、GGUF 怎么选解码阶段生成每个 token 时attention 都要拿当前 query 去和历史上所有 key/value 做计算。KV Cache 就是把这些历史的 K/V 缓存下来避免每个 token 都重新算一遍。它的代价是显存占用会随序列长度线性增长长对话、长文档场景下尤其明显。面试里具体场景往往是8K 上下文、7B 模型、FP16大概要多少显存粗算一下7B 模型的 KV Cache 大小要看层数、头数、维度。以 LLaMA 7B 为例约 32 层GQA 后 KV head 一般比较小但如果是 MHA 结构一层就要为每个 token 存储 2 * 头数 * 头维度 个浮点数。FP16 就是每个数 2 字节乘以序列长度就是总显存。你能当场估算出来面试官基本就能确定你部署过模型。量化方案的选择也有套路GPTQ基于二阶梯度信息做逐层量化常见于 GPU 推理对模型精度影响相对可控AWQ根据激活分布保护重要权重通道量化速度和精度都不错目前比较流行GGUFllama.cpp 的格式特别适合 CPU 推理和本地/移动端部署也是很多本地运行软件默认支持的格式。面试加分项是可以提一句如果模型要做数学或代码任务量化后精度掉得比通用对话明显如果显存紧张可以考虑混合精度只量化 attention 层或 feed-forward 层效果差异要靠实验说话。另外“安卓本地运行 gguf 格式 LLM 软件”这类场景本质也是推理优化问题。轻量模型 GGUF 量化 手机 CPU/GPU 推理压到小内存设备上跑靠的就是 KV Cache 裁剪和量化带来的内存收益。能说到这一层说明你对部署的约束有体感。2.7 Q7长上下文怎么做出来的RoPE 在这里扮演什么角色Transformer 本身没有顺序感位置编码就是给模型注入 token 位置信息。RoPE 是目前主流选择思路是把位置信息通过旋转矩阵施加到 Q/K 向量上让注意力分数天然依赖相对位置而不是绝对位置。它比加在 embedding 上的绝对位置编码外推能力更强。“外推”是个高频面试词。用 4K 长度训练的模型直接拿来读 16K 文本性能往往崩塌。怎么办比较经典的做法是位置插值把 RoPE 频率线性压缩让训练过的位置范围映射到更大的范围。后来又有 NTK-aware 缩放和 YaRN 这类改进思路本质上都是调整频率分布让模型更容易适应更长位置。如果想更稳还需要用少量高质量长文本数据继续预训练教模型“读长文”。但长上下文的瓶颈不只是位置编码还有计算和显存。序列长度翻倍attention 的计算量是平方级增长KV Cache 也是线性增长所以工业界在做滑动窗口、稀疏注意力、MQA/GQA 这类结构优化。能主动提一句“长上下文是系统工程不是改个位置编码就完事”会显得有全局观。评测方面长上下文常见的测试是“大海捞针”和 LongBench。面试官问“你的长上下文效果如何”你说跑过大海捞针 16K比只报一个 benchmark 数字有说服力得多。2.8 Q8模型产生幻觉怎么办RAG 是不是银弹Agent 工具调用出错怎么处理幻觉的本质要能说清楚语言模型学的就是“给定前文输出概率最高的下一个 token”它优化的是文本的似然而不是事实的校验。所以模型会用很高置信度说出编造的内容这和人类的“瞎编”有本质区别。缓解幻觉的常用路线是 RAG。但 RAG 不是银弹它的失败模式很多文档切分不合理导致语义断裂召回阶段 Top-k 选得不准生成阶段模型不忠实于检索内容。所以 RAG 要分两条线评估检索质量和生成忠实度。检索质量看召回率、MRR生成忠实度可以人工看也可以用 LLM-as-judge 自动评估但要注意评委模型本身的偏差。Agent 场景则是另一个坑。工具调用经常失败工具参数传错、工具返回空、外部接口超时。面试里我会问“你写的 Agent 工具调用失败会怎么处理”能给出这个答案的候选人不多。比较成熟的方案是设计自主容错控制流先重试一次换个参数再试还不行就换备用工具再不行就让模型基于已有信息做部分回答同时明确告诉用户“这一步我没查到”。同时要设置失败次数上限防止模型陷入死循环烧 token。这其实就是“LLM 智能体自主容错控制”的工程实践核心是把 LLM 当成一个不稳定组件在其外围做防御式设计。记忆污染也是 Agent 场景的高频问题。长期记忆里存了错误信息会让后续推理越跑越歪。可以用结构化记忆 定期清洗或者给记忆条目加置信度评分。能把这些细节讲出来的人往往是真做过 Agent 系统的。3. 现场追问与常见扣分点3.1 面试官追问时最想听到什么基础问题只是筛子真正拉开差距的是追问。比如你说“我用了 RAG”面试官大概率会问你的切片长度怎么定的是固定长度还是按段落切召回结果有没有做重排如果检索不到相关内容你是让模型硬答还是直接说不知道这些才是决定系统上限的细节。我自己的经验是回答追问时不要只说“我做了什么”要加“为什么这么做”和“效果上观察到什么变化”。比如“我把 chunk 从 512 改成 256千问的答案引用准确率从 42% 提到 58%原因是长 chunk 里信息太杂容易把上下文搞混。”这类回答既体现实验能力又显得有数据意识。还有一类低级失误是把“默认值”当成“调参结论”。比如问为什么 max length 设 2048答“因为大家默认用 2048”这是个扣分项。更好的答法是取决于任务分布如果用户问题大多在几百字符内序列太长反而浪费显存、增加延迟所以先统计了线上长度分布再选的。3.2 常见错误答案与扣分点速查我把这些年面试中遇到的典型错误整理成一张表你可以对照自查面试题错误答案正确方向为什么除以根号 d_k防止梯度消失点积方差随维度变大缩放让 softmax 不饱和BPE 遇到未登录词怎么办标成 unk字节级 BPE 可分解任意文本LoRA 省什么省显存省优化器状态和梯度存储前向激活值并未省多少聊天记录能直接精调吗能数据多需要清洗、提取问答对、修复错误、合规审查RAG 能解决幻觉吗能挂了向量库就行RAG 有自己失败模式召回和生成要分开评估KV Cache 作用加速训练它主要是加速推理代价是显存随序列线性涨长上下文怎么扩位置编码改大就行要位置插值/微调 结构优化 评测验证这些错误答案背后有一个共同问题只记住了结论没推演过过程。所以复习时最好把所有结论都还原成一次推导或者一个实验能讲出因果关系才算真的会。3.3 怎么用项目经历把问题答得更扎实面试官问技术问题最终都会落到“你实际做过什么”。这里推荐 STAR 式表达背景Situation→ 任务Task→ 行动Action→ 结果Result。但很多人的 STAR 是流水账没有重点。关键是在 Action 里突出“决策过程”在 Result 里给出量化结果。比如你做过一个客服机器人不要只说“我用 ChatGPT API 做了个客服”而是说背景是客服人工压力大需要自动答复高频问题任务是要把 FAQ 的准确率做到 85% 以上行动是我先构建了 FAQ 数据、选了 RAG 方案召回用混检模型重排用 cross-encoder生成用 7B 模型加模板约束结果是对 500 条测试集准确率 87%单次回答延迟 1.2 秒。这套表达出来面试官基本不会再追问“你是不是只是调了 API”。还有一个加分技巧准备一段“踩坑经历”比如训练时 loss 震荡排查了很久最后发现是学习率太大、或者 RAG 召回结果全是相近内容导致答案重复。面试官对失败经历的接受度其实很高因为它在真实项目中非常普遍能讲清楚排查过程反而加分。4. 复习策略与工具推荐4.1 按岗位定制的复习清单距离面试还有一周的话可以这样安排第 1-2 天集中过 Q1、Q2。把 Self-Attention 的推导自己推一遍用一段中文语料跑一下 SentencePiece直观感受分词效果。第 3-4 天过 Q3、Q4、Q5。找一份开源指令数据集看一下格式自己试着写数据标注规范动手用 LoRA 微调一个小模型。第 5 天过 Q6、Q7。算一下不同模型在 4K/8K 下的 KV Cache 显存把 GGUF 模型在本地跑通一次。第 6 天过 Q8。搭一个最简单的 RAG demo分别看切片大小和 Top-k 对结果的影响。第 7 天把 8 个问题连起来模拟面试用手机录音听自己回答的流畅度。如果你是应用岗可以把第 6 天的时间拉长多研究 Agent 的容错设计如果你是算法岗Q3 和 Q7 的推导建议准备得更深一些。4.2 常用框架和工具怎么选工具选型也是面试加分项但前提是你真的用过。应用层最常听到的是 LangChain 和 LlamaIndex两者都适合搭 RAG 和 Agent 流程。LangChain 生态更全但抽象层多排查问题麻烦LlamaIndex 在检索和索引上做得更专。我的建议是正式项目里自己控制关键流程框架只做胶水层避免被框架限制。本地部署上快速验证首选 Ollama 或 LM Studio两者都支持 GGUF 格式。手机端跑轻量模型在安卓上也能做方法就是把模型量化成 GGUF再配合推理引擎跑。还有像 DeepSeek harness 这类工具链主要用来做模型评估和对比实验面试前提一嘴“我用 harness 做过同配置下的模型效果对比”会显得很专业。数据标注和微调层面常用的有开源标注工具做指令数据的清洗和标注配合模板校验脚本。核心原则是数据流程要可追踪每条数据能查到来源和处理记录不然出了问题很难定位。4.3 我的个人体会与一个小技巧这 8 个问题看着是面试题其实也是平时项目里最容易翻车的几个点。带过不少人之后我发现能把这些内容讲出体系感的人工作里踩坑一定不会少但坑踩完是真的沉淀下来了。面试前与其焦虑“会不会问偏题”不如把每个问题都和自己的项目关联起来形成“问题 → 我做过什么 → 效果如何”的叙事。最后分享一个小技巧模拟面试的时候不要只是默念答案要真的出声讲一遍。讲的时候你会发现自己哪些地方卡壳哪些地方逻辑不通。另外准备一个小本子把面试官实际追问的问题记下来这些都是你下次面试最好的复习材料。祝顺利。

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

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

免费获取报价 →
↑