面经合集
完整信息
本篇目录
这套面试题的含金量极高,涵盖了大模型算法工程师在工业界落地的所有核心痛点:从底层结构理解,到数据清洗,再到 SFT 与 RLHF(GRPO)的端到端闭环。面试官不仅在考查你的理论深度,更在试探你是否有过真实的“踩坑”经验。
为了让你在后续的面试或复盘中思路更清晰,我将这 20 多个零散的问题重新归类为五大硬核技术模块,并为你进行深度拆解与扩展。
模块一:LLM 训练的命脉——SFT 与 RL 的交响曲
工业界训练模型,SFT(监督微调)和 RL(强化学习)缺一不可,这是面试官反复深挖的核心。
1. 既然有了高质量思维数据集,为什么还要叠加 RL?(缺一不可的底层逻辑)
- SFT 的局限(行为克隆): SFT 使用的是交叉熵损失(Cross-Entropy),本质是逼近人类分布。它只能解决“模型会不会说人话、能不能模仿格式”,但存在暴露偏差(Exposure Bias),且无法直接优化业务真正关心的不可导指标(如推荐系统里的 NDCG/MRR、业务里的严格 JSON 格式率)。
- RL 的降维打击(探索与上限): RL 通过环境反馈(Reward)让模型在巨大的动作空间中自主探索。SFT 只能从正确的轨迹中学习,而 RL 能从“失败的轨迹”中学习(拉低负样本的概率),教会模型“此路不通”。
2. SFT 训练到什么状态,才适合切入 RL 阶段?
- 合格线: SFT 必须达到“格式基本不崩,具备初步解决任务的逻辑”。具体指标表现为:Loss 曲线进入平缓期(Plateau),在验证集上的 Rouge 或 Exact Match(精准匹配率)不再显著提升,且输出 JSON/XML 等工具格式的合法率达到 80% 以上。
- 强行 RL 的后果: 如果 SFT 没训透就上 RL,模型生成的全是乱码,Reward Model 只能给出 0 分(奖励极其稀疏)。这会导致 RL 算法计算出的 Advantage 全部失效,策略网络瞬间崩溃。
3. SFT 与 RL 数据集的区别与复用
- SFT 数据: 必须是高质量的 Prompt + Ground Truth(标准答案),注重多样性和逻辑严密性,成本极高。
- RL 数据: 可以复用 SFT 的 Prompt,但不需要 Ground Truth。RL 只需要 Prompt 加上一个环境(如代码编译器、业务规则引擎)来动态计算 Reward。RL 的数据分布必须高度贴近线上真实分布,甚至可以故意混入一些容易出错的 OOD(分布外)Prompt,逼迫模型学习鲁棒性。
4. 为什么 RL 初期奖励值会短暂下跌,随后才稳步抬升?
- 对齐税与探索期(Alignment Tax & Exploration): RL 刚启动时,模型开始尝试偏离 SFT 的初始策略(Policy)去探索新路径。由于加入了 KL 散度惩罚(防止模型走得太偏),加上初期探索到的很多路径都是错的,导致整体 Reward 短暂下降。当模型试错足够多,找到高奖励路径且优化器状态稳定后,Reward 才会稳步上升。
- 核心监控指标: 此时应重点监控 Reward Moving Average(奖励滑动平均)、KL Divergence(与参考模型的散度,过大说明模型崩了,过小说明没在探索)、Entropy(动作分布熵,衡量探索度)以及 Sequence Length(防止模型靠说废话水奖励)。
模块二:强化学习深水区——GRPO 与奖励设计
1. 7B 模型做 GRPO 训练,整体显存开销有多大? 相比 PPO,GRPO 最大的贡献是干掉了与 Actor 同等规模的 Critic 模型,但显存依然吃紧。以 7B 模型(BF16 精度)为例:
- 模型权重:
7 \times 2 \text{ bytes} = 14\text{ GB}。 - 梯度:
14\text{ GB}。 - 优化器状态(AdamW): 全量更新需
14 \times 4 = 56\text{ GB}(若使用 8-bit Optimizer 可降半)。 - 参考模型 (Ref Model): 冻结权重,需
14\text{ GB}。 - 激活值 (Activations) - 这是 GRPO 的大头: GRPO 需要对同一个 Prompt 采样
G个不同的回答(Group Size 通常设为 4 到 8)。前向传播和反向传播时的激活值显存会随着G和序列长度线性暴涨。 - 整体开销: 即使使用了 FlashAttention 和 ZeRO-2/3,单卡 A100 (80G) 也很难无损跑完
G=8的 7B GRPO 全参训练,通常需要多卡切分(Tensor Parallel/DeepSpeed)或配合 LoRA 降维。
2. 字段提取场景的奖励函数(Reward)设计维度 在信息提取或推荐解释生成场景,奖励必须多维叠加:
- 格式奖励(Format Reward): 必须是标准的 JSON,少一个括号直接 -1 分。
- 召回/精准奖励(Recall/Precision): 提取的字段内容与原文本的重合度(可用 Rouge 或 LLM-as-a-Judge 评判)。
- 长度惩罚(Length Penalty): 对冗长啰嗦的回答给予微小负反馈(如每多一个 Token 惩罚
-0.001),倒逼模型精准输出。
3. Reward Hacking(奖励投机)的现象与解决
- 现象: 模型为了刷高分,输出无限重复的正确字段;或者因为“不报错就有分”,模型开始输出完全无意义的空安全文本。
- 解决: 引入相对优势(Relative Advantage);增加人工规则强校验(如正则匹配);引入大模型裁判(LLM Critic)进行语义级别的合理性打分,取代单纯的规则打分。
模块三:数据工程——大模型的“炼丹”底座
1. 如何界定与评估脏数据、低质样本?
- 界定标准: 逻辑冲突(前后矛盾)、幻觉灾难(胡编乱造事实)、格式破损、高困惑度(Perplexity 极高,像机器翻译的乱码)。
- 系统性评估: 采用聚类清洗(基于 Embedding 发现异常点);使用强力基座模型(如 GPT-4)进行 LLM-as-a-Judge 抽样打分,评估准确性与丰富度。
2. 多难度样本共存与 SFT 过拟合防范
- 平衡权重: 采用课程学习(Curriculum Learning)。初期提高简单任务(如基础格式提取)的配比,让模型快速收敛格式;后期增加困难任务(如复杂多跳推理、长文本总结)的比重。
- 长轮次防过拟合: 长轮次 SFT 极易导致“灾难性遗忘”和退化。解决方案包括:加大 Dropout 率、引入 Weight Decay(权重衰减)、使用早停法(Early Stopping),或者在训练中始终混入 10%~20% 的通用域高质量数据(Replay Buffer),防止垂直领域知识把通用能力洗掉。
模块四:大模型底层架构与机制
1. Attention 机制中为什么要对 \sqrt{d_k} 做除法处理?
- 底层逻辑: 在计算
Q \times K^T时,如果向量维度d_k很大,点积结果的方差会随着d_k的增大而线性增大。点积数值过大,会导致送入 Softmax 函数后,部分值极度接近 1,其余接近 0。这会使 Softmax 的梯度趋近于 0(梯度消失)。除以\sqrt{d_k}就是为了将方差缩放回 1,保证反向传播时梯度的健康流动。
2. LLM 前向传播张量维度的完整变化(以单层为例) 假设输入 X 形状为 [batch, seqlen]:
- Embedding:
[batch, seqlen] -> [batch, seqlen, d_model]。 - QKV 线性映射:
-> [batch, seqlen, 3 * d_model]。 - 切分多头:
-> [batch, seqlen, num_heads, head_dim](其中d_model = num_heads * head_dim),通常做转置以便计算:[batch, num_heads, seqlen, head_dim]。 - Attention 得分:
Q \times K^T得到[batch, num_heads, seqlen, seqlen]。 - 加权 V: 得分矩阵乘
V-> [batch, num_heads, seqlen, head_dim]。 - 拼接与投影: 恢复为
[batch, seqlen, d_model]。 - FFN 层: 升维
[batch, seqlen, 4 * d_model],激活后再降维[batch, seqlen, d_model]。
3. Workflow 与 Agent 的核心差异 / Memory 与 RAG 的边界
- Workflow vs Agent: Workflow 是确定性的有向无环图(DAG),每一个节点和流转逻辑都是人工硬编码的,模型只负责在特定节点做填空题。Agent 则是非确定性的自主决策体,模型自己充当“大脑”,基于环境反馈动态决定下一步调用什么工具、是否重试。
- Memory vs RAG: RAG(检索增强)是无状态的外部知识库检索,侧重于获取静态的客观知识(如公司财报、规章制度)。Memory(记忆模块)是有状态的、针对特定用户或对话 Session 演进的上下文(如用户的喜好、历史纠错记录),侧重于个性化和长期逻辑连贯。
模块五:传统机器学习(聚类算法)
1. KMeans 核心原理与收敛特性
- 原理(EM 算法思想): KMeans 属于期望最大化(Expectation-Maximization)思想的体现。E步:固定簇中心,将每个样本分配给最近的簇中心;M步:固定样本分配,重新计算每个簇的质心(取均值)。两者交替进行直到质心不再变化。
- 局部最优陷阱: KMeans 优化的目标函数是所有点到其所属簇中心的平方误差和(SSE)。由于该目标函数是非凸的(Non-convex),它极易陷入局部最优解,不存在保证能找到全局最优的策略。它的收敛结果高度依赖于初始点的随机选择(工业界常用 KMeans++ 优化初始质心选择来缓解此问题)。
2. 代码手撕变形:两数之和(核心思路) 这是算法面最经典的破冰题,重点不在于写对,而在于展现用空间换时间的思维。
- 最优解必须是
O(N)的时间复杂度。利用 Hash Table(字典),遍历数组时,计算target - 当前值,并检查这个差值是否已经在字典中。如果在,直接返回;如果不在,将当前值及其索引存入字典。
本篇目录
当前问题0116
- 01
**1. 既然有了高质量思维数据集,为什么还要叠加 RL?(缺一不可的底层逻辑)**
- 02
**2. SFT 训练到什么状态,才适合切入 RL 阶段?**
- 03
**3. SFT 与 RL 数据集的区别与复用**
- 04
**4. 为什么 RL 初期奖励值会短暂下跌,随后才稳步抬升?**
- 05
**1. 7B 模型做 GRPO 训练,整体显存开销有多大?** 相比 PPO,GRPO 最大的贡献是**干掉了与 Actor 同等规模的 Critic 模型**,但显存依然吃紧。以 7B 模型(BF16 精度)为例:
- 06
**2. 字段提取场景的奖励函数(Reward)设计维度** 在信息提取或推荐解释生成场景,奖励必须多维叠加:
- 07
**3. Reward Hacking(奖励投机)的现象与解决**
- 08
**1. 如何界定与评估脏数据、低质样本?**
- 09
**2. 多难度样本共存与 SFT 过拟合防范**
- 10
**2. 多难度样本共存与 SFT 过拟合防范**
- 11
**1. Attention 机制中为什么要对 `\sqrt{d_k}` 做除法处理?**
- 12
**2. LLM 前向传播张量维度的完整变化(以单层为例)** 假设输入 `X` 形状为 `[batch, seqlen]`:
- 13
**3. Workflow 与 Agent 的核心差异 / Memory 与 RAG 的边界**
- 14
**3. Workflow 与 Agent 的核心差异 / Memory 与 RAG 的边界**
- 15
**1. KMeans 核心原理与收敛特性**
- 16
**2. 代码手撕变形:两数之和(核心思路)** 这是算法面最经典的破冰题,重点不在于写对,而在于展现用空间换时间的思维。