月之暗面

大模型算法一面、二面面经

完整信息

36 条问法 · 31 道题

本篇目录

一面 10.28,52 分钟,面试官全程开着摄像头,问得很密,基本不给缓冲。二面 11.04,40 分钟,换了个人,只问项目和 RL。

一面

  1. 自我介绍,重点讲和 RL 相关的部分。
  2. 你们这轮训练多少 token,几张卡,跑了多久,失败重来过几次。
  3. 基座是哪个,7B 还是 32B,为什么选这个尺寸。
  4. SFT 阶段的数据量、epoch、学习率、warmup 比例。
  5. SFT 之后直接上 RL,还是先做 rejection sampling 冷启动,为什么。
  6. 讲一下 GRPO 和 PPO 的区别。为什么 GRPO 可以去掉 critic。
  7. GRPO 的 group size 取多少,取 4 和取 16 的区别在哪,显存怎么算。
  8. advantage 是 token 级还是序列级,组内归一化时分母用标准差还是标准误。
  9. 如果一个 group 里 8 条采样全对,advantage 是多少,这时候 loss 是多少。
  10. loss 变成 0,除了"全对",还有哪几种可能。
  11. 你遇到过 loss 一直是 0 吗,怎么判断是难度太低还是 reward 写错了。
  12. KL 项加在 loss 里还是加在 reward 里,系数给多少,给大了会怎样。
  13. 为什么 GRPO 训久了回复会变长,长度和正确率是正相关还是因果。
  14. 长度惩罚怎么加才不伤害推理能力。
  15. DAPO 改了哪几处,dynamic sampling 具体怎么筛。
  16. GSPO 把重要性采样比从 token 级改成序列级,解决的是什么问题。
  17. clip 的 ε 取 0.2,如果改成 0.28 会怎样,为什么 DAPO 要用 clip-higher。
  18. 训练和推理的 logprob 对不上,差 1e-3 量级,会导致什么,怎么查。
  19. 采样温度设多少,温度对 RL 是探索还是噪声。
  20. 规则 reward 和 reward model 各自适合什么场景,你们怎么混。
  21. 举一个你们实际遇到的 reward hacking,怎么发现的,怎么补的。
  22. 多目标 reward(正确性、格式、长度、安全)怎么加权,权重是拍的还是有依据。
  23. 评测用 pass@1 还是 pass@k,k 取多少,为什么。
  24. 训练集难度分布怎么控,全难题和全简单题分别会怎样。
  25. 如果给你一批没有标准答案的业务数据,你怎么造 RL 信号。

手撕:实现 GRPO 的 loss。给 batch 内 B 条样本、每条 group size G、变长序列的 logprob 和 reward,要求写出组内归一化 advantage、带 mask 的 token 级 loss 聚合,以及 clip 部分。注意三个坑:除以的是有效 token 数不是总长度;全对组的 advantage 是 0 不是 NaN;old_logprob 和 logprob 的比值要 detach。

二面

  1. 你在这个项目里具体负责哪一块,别人做了什么。
  2. 8 卡跑 7B 的 GRPO,rollout 占了多少时间,训练占多少。
  3. rollout 用的是 vLLM 还是自家引擎,权重同步怎么做的。
  4. 采样和训练精度不一样(bf16 vs fp16),怎么保证 on-policy。
  5. 如果 rollout 阶段 GPU 利用率只有 30%,瓶颈可能在哪。
  6. 长尾样本(特别长的回复)怎么处理,截断了 reward 怎么算。
  7. 你们做过多轮迭代吗,每一轮的模型是上一轮的 checkpoint 还是重新从 SFT 起。
  8. 迭代几轮之后效果开始掉,是什么原因。
  9. 线上部署的模型和训练时的模型是同一个吗,量化了吗。
  10. 这套流程如果搬到 32B,最先崩的是哪一环。

9.8 收到感谢信。泡了 12 天。

一面第 10 题我答得最差。我当时只说得出"全对"和"全错"两种,面试官提示了一句"reward 里有常数项吗",我才想到如果 reward 由几个分量加权,某个分量恒为常数,组内方差被稀释,advantage 就被压得很小,表现出来也像 loss 不降。

第 16 题我压根没听过 GSPO,只能老实说不了解。他也没为难,说"那你按重要性采样的方差来源推一下",我推到序列长度那一项就推不动了。

这场给我的教训是,RL 的八股背不住,因为每一问都往下挂一层。group size 背后是显存和方差,方差背后是 advantage,advantage 背后是 reward 设计,reward 背后是业务。任何一层断了,上面全是背的。

本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
    advantage 是 token 级还是序列级,组内归一化时分母用标准差还是标准误。
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
    追问
    clip 的 ε 取 0.2,如果改成 0.28 会怎样,为什么 DAPO 要用 clip-higher。
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
    多目标 reward(正确性、格式、长度、安全)怎么加权,权重是拍的还是有依据。
  23. 23
  24. 24
  25. 25
  26. 26
    手撕:实现 GRPO 的 loss。给 batch 内 B 条样本、每条 group size G、变长序列的 logprob 和 reward,要求写出组内归一化 advantage、带 mask 的 token 级 loss 聚合,以及 clip 部分。注意三个坑:除以的是有效 token 数不是总长度;全对组的 advantage 是 0 不是 NaN;old_logprob 和 logprob 的比值要 detach。
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36

同作者面经

展开其余 13 篇收起其余 13 篇

相关公司