快手可灵策略梯度岗一面:强化学习算法与论文深挖
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 深挖两篇论文与实习经历:做了什么、怎么做的、过程中遇到的难点是什么、如何解决?
- 详细介绍几种主流的强化学习算法,并解释它们的区别。
- 了解 GAE 和 Diffusion Model 吗?
- RLVF 是什么?
- GRPO 算法具体有什么问题?
- 手撕:切分披萨数(DP 或 DFS + 记忆化搜索)。
《参考解析》
- 论文与实习深挖:按「动机 → 方法 → 我负责的部分 → 难点 → 怎么解决 → 结果」讲,难点一定要落到具体现象,比如训练不收敛、奖励被刷(reward hacking)、显存不够、数据分布偏移,再给对应的动作,不要停在「调参」。面试官追问「为什么这么做」时,能同时给出被否掉的备选方案和取舍依据,最能说明是你自己做的。所有数字必须来自真实记录,没有线上数据就明确说是离线评测或消融实验的结果。
- 主流强化学习算法的区别:按 on-policy / off-policy 和优化目标分组最清楚——REINFORCE 直接用回报估计梯度,无偏但方差大;Actor-Critic 引入价值函数做基线降方差;TRPO 用 KL 约束保证单调改进但二阶计算昂贵,PPO 是它的实用近似,用 clip 限制策略更新幅度,工程上最稳;DQN 系走值函数、只适合离散动作。GRPO 则去掉 critic,用同一 prompt 下多次采样的组内相对奖励当基线。回答时把「为什么工业界普遍选 PPO 而不是 TRPO」说清楚,比罗列公式更加分。
- GAE 与 Diffusion Model:GAE 是优势函数的偏差-方差折中,用 λ 在 n 步实际回报与自举估计之间插值:λ 趋近 0 时低方差高偏差,λ 趋近 1 时高方差低偏差,实现上沿时间反向递推一次就能算完。Diffusion Model 通过前向加噪与反向去噪学习数据分布,在强化学习和机器人里常用作策略或轨迹生成器(如 diffusion policy),优点是能表达多峰的连续动作分布。代价是采样步数与推理延迟,工程上要靠蒸馏或一致性模型把步数压下来。
- GRPO 的问题:它把 critic 换成组内相对优势,省掉价值网络、显存占用和训练复杂度都下降,但代价是依赖同一 prompt 采样出一组回答——如果组内奖励全都相同(全对或全错),优势就整体归零、梯度信号消失。它对奖励尺度和组大小也很敏感,小 batch 下优势估计噪声大;在缺少可验证奖励的任务上(视频生成质量这类主观指标),reward 不可靠时会直接跑偏。常见的补法是调整组大小与采样温度保持探索、过滤零优势样本、加 KL 约束或做奖励塑形。
- 手撕:切分披萨数:这类「切 n 刀最多分成几块」的题,先推小规模枚举找递推式(或状态定义),再决定用 DP 还是记忆化搜索。写 DFS 时把状态(已切位置或剩余刀数加当前切口分布)作为缓存键,注意状态定义要能唯一区分过程,别把不同切法算成同一个状态;递归边界和取模要提前想好。面试时先说出递推式与复杂度,再动手写,写完拿最小值和一个中间值手工验一遍。