大模型算法一面、二面面经
完整信息
本篇目录
一面 10.28,52 分钟,面试官全程开着摄像头,问得很密,基本不给缓冲。二面 11.04,40 分钟,换了个人,只问项目和 RL。
一面
- 自我介绍,重点讲和 RL 相关的部分。
- 你们这轮训练多少 token,几张卡,跑了多久,失败重来过几次。
- 基座是哪个,7B 还是 32B,为什么选这个尺寸。
- SFT 阶段的数据量、epoch、学习率、warmup 比例。
- SFT 之后直接上 RL,还是先做 rejection sampling 冷启动,为什么。
- 讲一下 GRPO 和 PPO 的区别。为什么 GRPO 可以去掉 critic。
- GRPO 的 group size 取多少,取 4 和取 16 的区别在哪,显存怎么算。
- advantage 是 token 级还是序列级,组内归一化时分母用标准差还是标准误。
- 如果一个 group 里 8 条采样全对,advantage 是多少,这时候 loss 是多少。
- loss 变成 0,除了"全对",还有哪几种可能。
- 你遇到过 loss 一直是 0 吗,怎么判断是难度太低还是 reward 写错了。
- KL 项加在 loss 里还是加在 reward 里,系数给多少,给大了会怎样。
- 为什么 GRPO 训久了回复会变长,长度和正确率是正相关还是因果。
- 长度惩罚怎么加才不伤害推理能力。
- DAPO 改了哪几处,dynamic sampling 具体怎么筛。
- GSPO 把重要性采样比从 token 级改成序列级,解决的是什么问题。
- clip 的 ε 取 0.2,如果改成 0.28 会怎样,为什么 DAPO 要用 clip-higher。
- 训练和推理的 logprob 对不上,差 1e-3 量级,会导致什么,怎么查。
- 采样温度设多少,温度对 RL 是探索还是噪声。
- 规则 reward 和 reward model 各自适合什么场景,你们怎么混。
- 举一个你们实际遇到的 reward hacking,怎么发现的,怎么补的。
- 多目标 reward(正确性、格式、长度、安全)怎么加权,权重是拍的还是有依据。
- 评测用 pass@1 还是 pass@k,k 取多少,为什么。
- 训练集难度分布怎么控,全难题和全简单题分别会怎样。
- 如果给你一批没有标准答案的业务数据,你怎么造 RL 信号。
手撕:实现 GRPO 的 loss。给 batch 内 B 条样本、每条 group size G、变长序列的 logprob 和 reward,要求写出组内归一化 advantage、带 mask 的 token 级 loss 聚合,以及 clip 部分。注意三个坑:除以的是有效 token 数不是总长度;全对组的 advantage 是 0 不是 NaN;old_logprob 和 logprob 的比值要 detach。
二面
- 你在这个项目里具体负责哪一块,别人做了什么。
- 8 卡跑 7B 的 GRPO,rollout 占了多少时间,训练占多少。
- rollout 用的是 vLLM 还是自家引擎,权重同步怎么做的。
- 采样和训练精度不一样(bf16 vs fp16),怎么保证 on-policy。
- 如果 rollout 阶段 GPU 利用率只有 30%,瓶颈可能在哪。
- 长尾样本(特别长的回复)怎么处理,截断了 reward 怎么算。
- 你们做过多轮迭代吗,每一轮的模型是上一轮的 checkpoint 还是重新从 SFT 起。
- 迭代几轮之后效果开始掉,是什么原因。
- 线上部署的模型和训练时的模型是同一个吗,量化了吗。
- 这套流程如果搬到 32B,最先崩的是哪一环。
9.8 收到感谢信。泡了 12 天。
一面第 10 题我答得最差。我当时只说得出"全对"和"全错"两种,面试官提示了一句"reward 里有常数项吗",我才想到如果 reward 由几个分量加权,某个分量恒为常数,组内方差被稀释,advantage 就被压得很小,表现出来也像 loss 不降。
第 16 题我压根没听过 GSPO,只能老实说不了解。他也没为难,说"那你按重要性采样的方差来源推一下",我推到序列长度那一项就推不动了。
这场给我的教训是,RL 的八股背不住,因为每一问都往下挂一层。group size 背后是显存和方差,方差背后是 advantage,advantage 背后是 reward 设计,reward 背后是业务。任何一层断了,上面全是背的。
本篇目录
当前问题0136
- 01
自我介绍,重点讲和 RL 相关的部分。
- 02
你们这轮训练多少 token,几张卡,跑了多久,失败重来过几次。
- 03
基座是哪个,7B 还是 32B,为什么选这个尺寸。
- 04
SFT 阶段的数据量、epoch、学习率、warmup 比例。
- 05
SFT 之后直接上 RL,还是先做 rejection sampling 冷启动,为什么。
- 06
讲一下 GRPO 和 PPO 的区别。为什么 GRPO 可以去掉 critic。
- 07
GRPO 的 group size 取多少,取 4 和取 16 的区别在哪,显存怎么算。
- 08
advantage 是 token 级还是序列级,组内归一化时分母用标准差还是标准误。
- 09
如果一个 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 信号。
- 26
手撕:实现 GRPO 的 loss。给 batch 内 B 条样本、每条 group size G、变长序列的 logprob 和 reward,要求写出组内归一化 advantage、带 mask 的 token 级 loss 聚合,以及 clip 部分。注意三个坑:除以的是有效 token 数不是总长度;全对组的 advantage 是 0 不是 NaN;old_logprob 和 logprob 的比值要 detach。
- 27
你在这个项目里具体负责哪一块,别人做了什么。
- 28
8 卡跑 7B 的 GRPO,rollout 占了多少时间,训练占多少。
- 29
rollout 用的是 vLLM 还是自家引擎,权重同步怎么做的。
- 30
采样和训练精度不一样(bf16 vs fp16),怎么保证 on-policy。
- 31
如果 rollout 阶段 GPU 利用率只有 30%,瓶颈可能在哪。
- 32
长尾样本(特别长的回复)怎么处理,截断了 reward 怎么算。
- 33
你们做过多轮迭代吗,每一轮的模型是上一轮的 checkpoint 还是重新从 SFT 起。
- 34
迭代几轮之后效果开始掉,是什么原因。
- 35
线上部署的模型和训练时的模型是同一个吗,量化了吗。
- 36
这套流程如果搬到 32B,最先崩的是哪一环。