AWS 机器学习博客发布指南《Custom reward functions for multi-turn reinforcement learning with Amazon Nova Forge》,介绍如何为 Amazon Nova Forge 的多轮强化学习(multi-turn RFT)设计自定义奖励函数,并给出一个在 500 个编程任务上训练 Amazon Nova Lite 2.0 的完整示例。

指南建议将多轮奖励拆成三类信号:结果奖励(episode 层面,判断最终产物是否达成目标)、行为奖励(turn 层面,塑造先提问再行动、调用正确工具等中间行为)与惩罚项(显式抑制猜测、重复、停滞等失败模式),避免单一标量奖励容易被钻空子、单一终局奖励又过于稀疏的问题。
示范任务中,团队在 Amazon SageMaker HyperPod 上以 GRPO 与 LoRA 对 Nova Lite 2.0 做多轮 RFT。据指南介绍,奖励函数在客户自管的环境容器中实现(即 Nova Forge 的 BYOO 路径)。奖励为四个组件的加权和:
- correctness(权重 1.0):按最终代码通过的隐藏单元测试比例给分;
- asked_before_coding(权重 0.6):若第 1 轮先提问再提交代码,得分 1.0;稍后提问再提交,得分 0.6;否则得分为 0;
- guessed_immediately(权重 0.4):首轮直接提交代码而不提问,扣 1.0 分;
- loop_penalty(权重 0.2):最后两轮内容相似度超过 80%,扣 0.5 分。
提问奖励不依赖最终正确性,但要求模型最终必须提交代码,以堵住“只问不答”的漏洞;猜测惩罚则让“直接猜”严格劣于“先提问”,为 GRPO 组内保留策略差异。指南还给出安全执行模型生成代码的要点:将其视为未经验证的代码,不向其暴露凭据与网络,施加资源限制并在临时目录运行,每次运行使用唯一随机哨兵,防止模型通过向 stderr 写入预期标记伪造结果,同时校验实际运行的测试数量与预期一致。
指南也剖析了奖励失效的常见模式:奖励黑客(reward hacking)、训练不稳定与奖励崩溃。其中奖励崩溃最难察觉——当某个组件在组内所有样本上取值相同时,GRPO 无法从中得到梯度,而聚合奖励曲线可能仍然健康。文中提到,早期版本把提问奖励挂在正确性之后,导致训练崩溃:模型退化为首轮直接猜测,平均奖励冻结,GRPO 的优势值归零。