为 RL 训练设计奖励函数或排查奖励黑客时使用——决定奖励来自规则、人类偏好还是模型评判,结果奖励还是过程奖励,标量、向量还是生成式诊断,以及如何用路径约束与 RLVP 惩罚违规动作;也用于多轮 Agent 的信用分配、隐藏测试与早停判定设计。触发词:奖励设计、reward hacking、reward seeking
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-reward-design-15fa56d49af6 ,按照其中的说明把「reward-design」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
| 来源 | 适用 | 注意 |
|---|---|---|
| 规则 / 可验证奖励(RLVR) | 数学答案、代码测试、结构化工具调用、状态断言 | 最优先建立;从二元结果奖励开始 |
| 人类偏好 / 奖励模型(RLHF) | 目标难以完全规则化的开放式任务 | 奖励模型只是偏好的代理,过度优化会 reward hacking;通常用 KL 正则把策略锚定在 SFT 参考模型附近 |
| 模型评判(GRM) | 难以穷举规则、需要诊断信息 | 不只给分,还生成"哪里做得好、哪里需要改"的诊断;让模型先归纳评价原则再按原则评价轨迹,最后用可验证事实检查评价是否正确;仍需抽样人工校准,防止评判器形成新偏差 |
结果奖励(ORM) 只在 episode 结束判断任务是否完成,最简单,也给策略最大探索自由度。当中间路径没有公认标准、最优解尚未被发现时(如 SimpleVLA-RL 的稀疏成功/失败),它是合适起点。
关键实现:长程 coding 或 cowork 任务中,"是否完成"的判定要交给模型写不了的隐藏测试、状态断言或外部终止钩子,不能依赖模型自己声称完成。模型宣称完成时才在隔离工作区运行它看不到的验收测试,通过 +1、不通过 −1。测试必须读取真实文件或环境状态,不能只检查模型是否说了"已完成",否则模型会学会口头承诺验证而不真正验证。
过程奖励(PRM) 在中间步骤提供反馈(身份验证、工具参数、测试通过数、导航动作),能缓解长时序信用分配,却可能把模型限制在设计者预设的路径上,且标注和验证成本更高。
工程路径:先用结果奖励建立可靠基线,再只为真正可验证的中间事件加入过程信号。
密度和表示是两件事。选择原则很直接:
半标量(先给简短理由再给分数)介于两者之间,便于归因。
把验证器输出拆成两路,交给现有策略优化器(不改变 PPO/GRPO,只改变每一步看到的奖励):
outcome = verify_final_state(trajectory) # 读结果,不是模型自述
path_signal = 0
for step in trajectory:
path_signal += deterministic_path_signal(step) # 惩罚违规,或奖励可达子目标
reward = normalize(outcome) + beta * normalize(path_signal)
总奖励写作 R = O + βΦ:O 是任务结果,Φ 是由确定性规则逐动作计算的路径信号。对可验证的违规动作扣分,对可验证的合规动作或可达子目标给少量部分奖励;两路各自归一化后再合并,避免路径信号淹没主目标。
RLVP 的四条设计规则:
一句话概括配比:惩罚是通常可达的那一半,进展奖励是受可达性门控的那一半。
chapter8/RLVP/ — RLVP 复现指南:GRPO 上叠加结果奖励与确定性路径信号;书中报告 TerminalBench 违规次数 3.71→0.66 而成功率基本持平,miniF2F 上可达的部分奖励把达到 0.9 成功率所需迭代从 7.0 降至 4.4。chapter8/premature-completion-dpo/ — "过早结束"案例的隐藏测试奖励落地:data/hidden_tests.json 提供模型不可见的端到端验收脚本,train_grpo_optional.py 是同一问题的可选 RL 分支。chapter8/SimpleVLA-RL/ — 稀疏结果奖励保留最大探索空间的对照案例(每条任务仅一条演示 SFT 冷启动,17.3%→91.7%)。chapter8/retool/ — 工具反馈如何改变思考策略:模型学会主动执行、读取错误并自我修正。chapter8/AWorld-train/ — MCP 多工具沙盒中的奖励与可重放环境链路。book/chapter8.md「从单轮到多轮:任务场景与信用分配」book/chapter8.md「奖励设计:如何把任务目标变成学习信号」book/chapter8.md「RL 环境:从评估到仿真」book/chapter8.md「后训练实践要点」book/chapter9.md「从运行轨迹中获得学习信号」