简介这份PDF资料整理自字节跳动大模型算法岗一面、二面、三面的真实面试记录面向准备冲击大厂算法岗位的求职者尤其是已有一定深度学习基础、希望系统梳理大模型知识体系的中高级候选人。内容按面试轮次组织一面聚焦Transformer与LLaMA的LN差异、RMSNorm与FFN手写、数据清洗流程、PPL公式、位置编码及prompt范式等基础考点二面深入数据配比策略、主流LLM结构设计、模型评估与工具调用实现三面覆盖DeepSpeed各阶段分片代价、DP与DDP区别、训练时间估计、模型监控、预训练与SFT评估及decoding策略并附cross-attention手撕题。资源包仅含1个PDF文件大小约75KB轻量便携适合通勤或面试前快速翻阅。目前已有175人学习可帮助读者对照真实面试节奏查漏补缺理解各轮考察重点与追问方向为算法求职面试提供有针对性的复习线索。1. 大模型算法面试到底在考什么从一道 RMSNorm 手写题说起很多人第一次看到“大模型算法面试”这几个字脑子里浮现的画面是面试官坐在对面抛出一个高深莫测的公式你答不上来空气凝固。其实真实的面试现场往往更朴素——面试官可能只是问你一句“Transformer 和 Llama 的 LayerNorm 有什么区别你手写一下 RMSNorm。”这个问题看起来简单但它像一把钥匙能打开大模型算法岗考察的整条链路。为什么因为一道 RMSNorm 手写题背后藏着对归一化原理的理解、对模型结构演进的关注、对代码实现细节的敏感度甚至能延伸到你有没有真正读过论文、跑过训练。换句话说大模型算法面试考的不是“你背了多少名词”而是“你对这套技术栈有没有形成自己的认知网络”。打个比方这就像考驾照。科目一考交规科目二考场地操作科目三考上路实战。大模型算法面试的一二三面也大致对应三个层次一面考基础概念和代码手感二面考系统设计和数据思维三面考工程落地和全局判断。每一面的侧重点不同但底层逻辑是一致的——面试官在判断你是不是一个“能上手干活、能想清楚问题”的人。所以这篇内容想做的事不是给你一份“标准答案背诵手册”而是把这份面试试题里反复出现的概念拆开揉碎让你搞懂每个术语到底在说什么、为什么面试官爱问它、以及它和相近概念的区别在哪里。读完你至少能做到听到 RMSNorm、SwiGLU、PPL、DeepSpeed 这些词的时候不再发懵而是能接住话头往下聊。2. 一面考的那些基础概念归一化、激活函数与数据清洗2.1 LayerNorm 和 RMSNorm 到底差在哪一个“减均值”的动作Transformer 原始论文里用的是 LayerNorm而 Llama 系列模型换成了 RMSNorm。面试官问这个区别不是想听你背定义而是想看你有没有理解“归一化到底在解决什么问题”。通俗地说归一化的作用是让每一层输出的数值分布保持稳定不至于越传越大或越传越小。LayerNorm 的做法是先算出一个向量里所有元素的均值把均值减掉再除以标准差最后乘一个缩放系数、加一个偏移量。你可以把它想象成给一排高低不平的柱子“找平”——先找到平均高度把每根柱子相对平均高度的偏差算出来再统一压缩到一个标准范围。RMSNorm 则省掉了“减均值”这一步。它只算均方根Root Mean Square也就是先把每个元素平方、求平均、开根号然后直接用原向量除以这个均方根。用同样的比喻它不找平均高度而是直接看这排柱子的“整体能量”有多大然后按能量大小做缩放。为什么 Llama 要这么改核心原因是计算效率。少算一次均值、少存一个偏移参数在大规模训练里能省下可观的计算量和显存。而且实践中发现省掉减均值这一步对模型效果的影响很小。面试官让你手写 RMSNorm就是在确认你是不是真的理解这个“省”字省在了哪里。import torch import torch.nn as nn class RMSNorm(nn.Module): def __init__(self, dim, eps1e-6): super().__init__() self.eps eps # 可学习的缩放参数初始化为全1 self.weight nn.Parameter(torch.ones(dim)) def forward(self, x): # 计算均方根先平方再求均值最后开根号 rms torch.sqrt(torch.mean(x ** 2, dim-1, keepdimTrue) self.eps) # 用原向量除以均方根再乘缩放参数 return (x / rms) * self.weight这段代码里有两个关键点值得注意。第一eps的作用是防止均方根为零时出现除零错误通常取一个很小的数。第二keepdimTrue保证了归一化维度上的形状对齐否则广播机制会出错。面试时如果能把这两点主动说出来比单纯写出代码更能体现你的工程直觉。2.2 FFN 和 SwiGLU激活函数换了个“门”Transformer 里的 FFN前馈网络通常是“线性层 → 激活函数 → 线性层”的结构。原始版本用的是 ReLU 激活后来出现了 GELU而 Llama 用的是 SwiGLU。面试官问“FFN 有什么不同”其实是在问你对激活函数演进的理解。ReLU 最简单负数变零正数不变。它的优点是计算快缺点是负数区域梯度为零可能导致神经元“死掉”。SwiGLU 则复杂一些它引入了“门控”机制——用两个线性变换分别得到两组结果其中一组经过 Swish 激活函数后与另一组做逐元素相乘。你可以把它理解成一组数据负责“提供信息”另一组数据负责“控制阀门开多大”两者配合决定最终输出多少。这种门控设计让模型在表达能力和训练稳定性之间取得了更好的平衡。代价是参数量增加了——因为多了一个线性变换。所以面试官如果追问“SwiGLU 的代价是什么”你可以直接回答多了一组投影矩阵参数量和计算量都会上升但换来的是更好的效果。2.3 数据清洗里的 PPL困惑度到底在衡量什么一面里还问到了数据清洗流程和质量过滤用什么模型以及 PPL 公式是什么。PPL 全称是 Perplexity中文叫困惑度。它的直观含义是模型看到一段文本时“有多困惑”。困惑度越低说明模型对这段文本越“熟悉”越认为它通顺合理。公式上PPL 是交叉熵损失的指数形式。通俗地说如果模型对下一个词的预测越准确交叉熵越小PPL 就越低。在数据清洗场景里常用一个训练好的语言模型给海量文本打分PPL 过高的文本往往被认为是低质量或不通顺的会被过滤掉。这里有个容易踩坑的地方PPL 低不一定代表文本质量高。如果模型本身训练数据有偏它可能对某些重复性、模板化的文本给出很低的 PPL但这并不意味这些文本有学习价值。所以实际的数据清洗流程往往是多策略组合PPL 只是其中一道筛子还要配合规则过滤、去重、质量分类模型等手段。3. 二面往深里走模型结构、数据配比与评估难题3.1 主流 LLM 结构设计有什么特点Decoder-only 为什么成了主流二面问“主流 LLM 模型结构设计有什么特点”这个问题看似宽泛其实有一个明确的落脚点为什么现在主流大模型几乎都是 Decoder-only 架构要回答这个得先分清三种结构。Encoder-only比如 BERT擅长理解任务它能看到完整输入做双向注意力Encoder-Decoder比如 T5适合输入到输出的转换任务编码器理解输入、解码器生成输出Decoder-only比如 GPT 系列、Llama 系列则是“只看左边”的自回归结构每次预测下一个词。Decoder-only 胜出的原因不复杂结构简单、容易扩展、训练目标统一就是预测下一个词而且在大规模数据上展现出了很强的通用能力。打个比方Encoder-Decoder 像是一个“翻译官”专门做转换Decoder-only 像是一个“接话高手”你给个开头它就能往下编编着编着发现它什么都能干。工程上单一结构也更容易做并行优化。3.2 数据配比怎么量化不是“多放点代码数据”就完事二面里连续追问了数据清洗策略、数据配比思路、数据配比如何量化。这说明面试官非常看重数据侧的思考因为在大模型训练里数据质量往往比模型结构更能决定上限。数据配比指的是不同来源、不同类型数据网页文本、代码、书籍、论文等的混合比例。一个好的配比方案不能拍脑袋决定需要有量化依据。常见的做法是先在小规模模型上做消融实验观察不同配比下验证集表现的变化或者用数据影响力评估方法衡量某类数据对目标能力的贡献度。这里有个血泪经验配比不是一成不变的。预训练早期可能需要更多通用网页数据来打底后期则可能提高高质量数据的比例来做“精调式”预训练。面试官如果问你“怎么判断一个配比方案好不好”你可以从两个角度回答一是看下游任务评估指标是否提升二是看训练过程是否稳定、是否出现某类能力退化。3.3 评估 LLM 为什么难没有标准答案的考试二面问“如何评估 LLM”和“训 LLM 最大的困难是什么”这两个问题其实是一体两面。评估难恰恰是训练难的核心原因之一。传统机器学习任务有明确的标签准确率、召回率一算就清楚。但大模型的输出是开放文本同一个问题可以有多种合理回答。你用 BLEU、ROUGE 这类指标去衡量会发现它们和人类判断的相关性并不高。用人工评估成本高、速度慢、还带有主观性。用另一个更强的模型来打分又存在“裁判偏好”的问题。所以实际工作中评估往往是多维度组合自动指标看趋势人工抽检看质量特定任务用专门设计的评测集。面试官想听到的是你对“评估没有银弹”这件事有清醒认识而不是背一堆指标名字。3.4 工具调用怎么实现让模型学会“伸手拿东西”工具调用Tool Calling是让大模型在需要时调用外部函数或接口的能力。实现思路大致分几步先在训练数据里构造“用户提问 → 模型输出调用指令 → 工具返回结果 → 模型整合结果”的样本让模型学会在什么场景下该调用什么工具推理时模型输出结构化的调用请求系统解析后执行工具再把结果拼回上下文让模型继续生成。这个过程中最容易被问到的细节是模型怎么知道有哪些工具可用答案是把工具的描述信息名称、功能、参数格式放进提示词或系统消息里。模型本质上是在做“根据描述选择动作”的决策。4. 三面看工程功底DeepSpeed、并行策略与训练监控4.1 DeepSpeed 的几个阶段分别在分片什么三面问 DeepSpeed 的几个阶段这是工程侧的高频考点。DeepSpeed 的 ZeRO 优化分为三个阶段核心思路都是“把占显存的东西切开分到不同卡上”。ZeRO-1 分片的是优化器状态。训练时优化器需要维护动量、方差等状态这部分显存占用不小切开后每张卡只存一部分。ZeRO-2 在此基础上进一步分片梯度。ZeRO-3 则连模型参数本身也分片每张卡只保留一部分参数需要时再通信获取。代价是什么通信量增加。分片越细卡与卡之间同步数据越频繁通信开销越大。所以选择哪个阶段本质上是在显存和通信之间做权衡。面试官如果追问“什么时候用 ZeRO-3”你可以回答当单卡显存放不下模型参数时不得不用但如果通信带宽有限要谨慎评估训练速度的下降。4.2 DP 和 DDP 的区别一字之差机制不同DPData Parallel和 DDPDistributed Data Parallel都是数据并行但实现机制有本质区别。DP 是单进程多线程模式主卡负责汇总梯度再分发容易形成通信瓶颈。DDP 是多进程模式每张卡一个独立进程通过环状通信做梯度同步效率更高、扩展性更好。用个比喻DP 像一个组长收作业再统一发回组长忙不过来时全组等着DDP 像每个人同时和邻居交换批改没有单点瓶颈。实际训练中规模稍大基本都用 DDP 或更高级的并行方案。4.3 训练过程如何做模型监控别等 loss 炸了才发现训练监控不是只看 loss 曲线。实际工作中要关注的东西包括梯度范数是否异常增大可能是梯度爆炸的前兆、学习率是否按预期变化、各层参数更新幅度是否正常、显存占用是否持续攀升、吞吐量是否稳定。面试官问这个是想确认你有没有“训练翻车”的实战意识。一个靠谱的回答应该体现出你知道哪些指标是“黑匣子”里的关键读数以及异常时该从哪里排查。5. 常见误区与易混概念这几组词别再搞混了5.1 误区一RMSNorm 是 LayerNorm 的“简化版”所以效果更差易混点很多人以为省掉减均值一定损失表达能力。为什么混直觉上“做得少”等于“效果差”。怎么区分RMSNorm 省的是计算不是表达能力的核心。归一化的关键是尺度稳定减均值主要影响的是平移不变性而实践中这个影响很小。判断标准看实验结论不看直觉。5.2 误区二PPL 低就代表数据质量高易混点把困惑度当成质量分数。为什么混两者都用一个数值表示“好坏”。怎么区分PPL 衡量的是模型对文本的“熟悉程度”不是文本本身的信息价值。重复模板文本 PPL 很低但没学习价值所以要配合去重和多样性筛选。5.3 误区三Decoder-only 比 Encoder-Decoder 更“先进”易混点把主流选择当成技术优劣。为什么混看到大模型都用 Decoder-only 就以为其他结构被淘汰了。怎么区分结构选择取决于任务和工程约束。翻译、摘要等输入输出界限清晰的任务Encoder-Decoder 仍有优势。Decoder-only 胜在通用性和扩展性不是全面碾压。5.4 误区四数据配比就是调一个比例数字易混点以为配比是静态超参数。为什么混听起来像调学习率一样调个值就行。怎么区分配比是动态策略和训练阶段、目标能力、数据质量分布都相关需要实验验证和迭代调整。5.5 误区五工具调用是模型“自己学会了用工具”易混点把工具调用当成模型的内生能力。为什么混模型输出看起来像是主动决策。怎么区分工具调用本质是“根据描述做模式匹配”工具列表和执行逻辑都由外部系统提供模型负责的是选择和建议不是真正执行。6. 什么时候该用这些知识、什么时候别硬套聊到这里你可能会问这些概念我搞懂了但实际面试或工作中什么时候该往深里讲什么时候点到为止我的建议是看对方的问题意图。如果面试官问“RMSNorm 和 LayerNorm 有什么区别”你花三十秒说清“省了减均值、省了计算、效果影响小”就够了除非他追问实现细节否则不需要现场推导公式。但如果他接着问“那你手写一下”这时候就要把eps防除零、keepdim对齐这些工程细节带出来因为他在考察你的代码手感。再比如数据配比。如果面试官只是问“你们怎么做配比”你回答“小规模消融实验加下游评估”就能过关。但如果他追问“怎么量化”你就需要说出具体的评估维度比如某类数据占比变化对特定评测集分数的影响趋势。硬套一个“万能配比公式”反而会翻车因为真实场景里没有放之四海皆准的比例。有一个具体的判断原则概念题答边界工程题答代价。问概念区别你说清“它是什么、它不是什么”问工程选择你说清“选它的好处和付出的成本”。这两条能覆盖大部分面试场景。提示面试里遇到自己不确定的细节直接说“这块我了解得不够深我的理解是……可能不准确”比硬编一个答案更安全。面试官对“知道边界”的候选人通常评价更高。从那以后我每次准备这类面试都会强制自己把每个概念按“一句话定义 → 为什么存在 → 代价是什么”走一遍说不通的地方就是没真懂的地方。这份试题里反复出现的那些词本质上就是一张认知地图的节点节点连成线线织成网面试时才能接得住任何方向的追问。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?