公司未注明

面经合集

完整信息

16 条问法 · 16 道题

本篇目录

这套面试题的含金量极高,涵盖了大模型算法工程师在工业界落地的所有核心痛点:从底层结构理解,到数据清洗,再到 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]:

  1. Embedding: [batch, seqlen] -> [batch, seqlen, d_model]。
  2. QKV 线性映射: -> [batch, seqlen, 3 * d_model]。
  3. 切分多头: -> [batch, seqlen, num_heads, head_dim] (其中 d_model = num_heads * head_dim),通常做转置以便计算:[batch, num_heads, seqlen, head_dim]。
  4. Attention 得分: Q \times K^T 得到 [batch, num_heads, seqlen, seqlen]。
  5. 加权 V: 得分矩阵乘 V -> [batch, num_heads, seqlen, head_dim]。
  6. 拼接与投影: 恢复为 [batch, seqlen, d_model]。
  7. 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 - 当前值,并检查这个差值是否已经在字典中。如果在,直接返回;如果不在,将当前值及其索引存入字典。
本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
    **1. 7B 模型做 GRPO 训练,整体显存开销有多大?** 相比 PPO,GRPO 最大的贡献是**干掉了与 Actor 同等规模的 Critic 模型**,但显存依然吃紧。以 7B 模型(BF16 精度)为例:
  6. 06
    **2. 字段提取场景的奖励函数(Reward)设计维度** 在信息提取或推荐解释生成场景,奖励必须多维叠加:
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
    **2. 代码手撕变形:两数之和(核心思路)** 这是算法面最经典的破冰题,重点不在于写对,而在于展现用空间换时间的思维。

同作者面经