对齐与 RL 后训练:小型奖励函数设计与对比实验

作业定位

这份作业接在 13/2-prog 两份 GRPO notebook 之后完成:

目标不是让你“从零实现一个 RL 算法”,而是让你亲手看到:

  1. SFT / promptRL 后训练 的差别到底在哪里
  2. reward 设计会怎样改变模型行为
  3. 多奖励为什么既有用,也可能带来新的副作用

作业目标

请你基于现有 notebook,完成一个 小型奖励函数设计与对比实验

你需要:

  1. 选一个小任务
  2. 设计 24 个 reward
  3. 比较不同 reward 组合下的模型行为
  4. 分析模型变好了什么,又开始“投机”了什么

推荐任务方向

请选择其中一个,或在教师同意后自拟。

方向 A:数学推理

目标:

适合的 reward:

方向 B:结构化输出

目标:

适合的 reward:

方向 C:安全拒答 / 边界回答

目标:

适合的 reward:

方向 D:风格约束回答

目标:

适合的 reward:

推荐完成路径

第 0 步:先确定 baseline

请先选一个你要比较的 baseline。
推荐两种最简单的 baseline:

  1. 只做 prompt,不训练
  2. 直接使用 notebook 里训练前的模型输出

你不必额外再做一轮 SFT;本作业重点是比较:

第 1 步:选定一个小任务

要求:

不建议一上来做太开放的问题。
越容易检查对错,越适合 reward 设计。

第 2 步:先设计单奖励版本

先只做一个最核心 reward,例如:

目的不是一步到位,而是先看:

第 3 步:再设计多奖励版本

在单奖励基础上,再加入 1 到 3 个 reward。

例如:

你需要解释:

第 4 步:做最小对比实验

至少比较下面三种设置:

  1. baseline
  2. 单奖励
  3. 多奖励

如果时间允许,可以再加:

  1. 改 reward 权重后的版本

第 5 步:收集失败案例

这一部分非常重要。
请至少保留 2 个失败案例,例如:

你可以直接参考 notebook 里的哪些部分

基础版 notebook

多奖励版 notebook

建议提交内容

请提交一个压缩包,包含下面内容:

  1. 你修改后的 notebook 或脚本
  2. 一页到两页短报告
  3. 至少 3 组代表性输出
  4. 至少 2 个失败案例

短报告建议结构

1. 任务定义

2. reward 设计

3. 对比结果

至少比较:

请不要只写“更好了”,而要具体说:

4. failure case 分析

请明确回答:

评分重点

这份作业不按“你把分数刷多高”来评,而更看重下面四点:

  1. 任务是否选得合适
  2. reward 是否设计得清楚
  3. 对比是否真实、有代表性
  4. 你是否真的看懂了 reward 改变模型行为的方式

你真正要带走什么

如果这份作业做完后,你只记住一句话,那应该是:

RL 后训练不只是“让模型更强”,而是“用 reward 把模型推向我们想要的行为”。

真正困难的地方也在这里:

所以这一章最重要的能力,不是会调用 GRPOTrainer,而是开始学会: