Sunday 的面试指南

Agent 强化学习的奖励怎么设计?怎样避免模型只会刷分?

🧑‍💻 面试官:训练编程 Agent,你会怎么设计奖励?

🙋‍♂️ 我:修复成功就给正奖励,失败就不给。

🧑‍💻 面试官:它删掉失败测试,让检查脚本返回成功,算修复了吗?

🙋‍♂️ 我:不算。奖励必须根据原来的验收规则计算。

🧑‍💻 面试官:那一次任务执行了二十步,最后失败了。你怎么知道前面哪一步值得保留,哪一步造成了失败?

这道题围绕「奖励和真实目标是否一致」:既要确认任务真的完成,也要避免模型靠改变检查方式拿到高分。

面试速答(60 秒版)

Agent 强化学习的奖励,是训练系统根据任务轨迹和结果计算的反馈,用来影响模型后续的决策行为。它不是运行时给模型发一句“做得不错”。

奖励设计首先要明确成功条件。例如代码修复,应该在原有测试和回归规则下确认功能,而不是只看程序退出码或模型宣布完成。

终局奖励反映任务最后是否成功,过程奖励可以补充有效进展的信息。但过程指标如果只奖励调用次数、步骤数量或文字长度,也会让模型学会做表面工作。

因此,要隔离验收环境,限制 Agent 修改评分规则,并在未参与训练的任务上检查真实成功率、成本和违规行为。权限、安全要求不能只靠一个总分抵消,执行环境也要直接限制这些行为。

Agent 奖励:鼓励完成任务,而不是刷分

知识点详解:怎样把“做对了”变成训练信号?

先定义任务完成,不要先写奖励公式

假设咱们训练 Agent 修复一个日期解析错误。它可以读文件、改代码和运行允许的测试,但不能改验收用例。

这时,目标不是“产生了一份补丁”,而是原来的错误输入能够得到正确结果,同时其他日期输入仍然正常。

因此,环境要保留基础版本、原始用例和修改记录。评测程序根据实际行为计算结果,再把结果交给训练流程。

verl 的奖励函数文档展示了根据任务输出计算奖励的一种接口。具体训练系统还会把奖励与轨迹结合,用优化算法更新模型;本文重点是奖励表达什么,不展开某一种算法的推导。

终局奖励为什么不够细?

一次任务里,Agent 可能先正确定位了文件,又正确复现了错误,最后却改错了一个边界条件。

如果最终只收到“失败”,这条轨迹前面有价值的动作和后面的错误就挤在同一个结果里。这也是长任务里的信用分配问题:最终结果应该怎样影响此前不同的决策。

过程反馈可以帮助区分进展。例如原错误已经复现、相关逻辑已经定位、某个必要检查通过。但这些反馈需要能够验证,不能因为模型说“我定位到了”就给分。

同时,过程奖励不应该取代最终成功。一个 Agent 每次都能复现错误,却从不修好,不能因为积累了很多过程分,就被评为优秀。

最终成功,不能说明每一步都有用

为什么很容易学会“刷分”?

如果只看测试命令是否以 0 退出,Agent 可能改变检查脚本,让它不执行真正的测试。如果奖励长解释,模型可能学会写更多解释,而不是多修一个问题。

这里的关键不是模型用了哪个词,而是评分指标有没有被当作目标本身。

Anthropic 关于 reward tampering 的研究讨论了模型利用可被操纵的奖励环境的问题。该研究不证明所有 Agent 都会作弊,但提醒我们不能把评分程序放在任意可修改的位置。

对于这个代码修复任务,可以让 Agent 在工作区修改业务代码,最后由另一份受保护的环境执行验收。任务成功与否,不能只相信 Agent 返回的日志摘要。

测试通过,可能是修好了,也可能是改了题

成本和安全要求,怎样进入设计?

工具调用、运行时间和 Token 消耗可以用于约束成本。但如果节省一步就得到较大奖励,模型可能跳过必要测试。

因此,可以先规定“功能通过、安全条件满足”,再在这些合格结果里比较成本。具体权重需要依据任务分布验证,不能抄一组数字就通用。

安全要求还需要环境直接限制。例如禁止读取凭据、禁止修改验收文件,执行器就不应该提供这些能力。仅仅给越权行为一个负奖励,不能阻止训练过程中真的泄露资料。

目标更可靠的依据容易被利用的替代指标
功能修复独立测试与回归结果自报成功、退出码
有效进展可检查的环境状态“我已经完成”的文字
成本合理合格任务的实际消耗无条件奖励少步骤
行为合规权限限制与审计只在总分里扣一点

这张表表达的是本文的设计建议,不是一套所有训练框架都采用的标准奖励配方。

奖励上升,怎样确认能力也上升?

除了训练奖励,还要用没有参与训练的任务进行独立评测。尤其加入评分漏洞不再存在的环境,检查 Agent 还能不能正常修复。

同时查看失败样本:是否只针对测试写死结果,是否漏掉其他输入,是否试图改动评分程序。训练分数上升、独立任务却没有改善,就需要检查优化的是不是错误指标。

面试官继续追问

用大模型当裁判,可以代替测试吗?

可以评估解释质量或辅助发现遗漏,但程序行为能通过测试验证时,不应只让另一模型凭文字判断。裁判本身也可能偏好长答案或被解释说服。

奖励越丰富,是不是越好?

不一定。每个附加指标都可能引入新的偏好和漏洞。先用能够可靠检查的主要目标,再针对明确问题增加反馈,更容易知道训练为什么变化。

运行时的反思,和强化学习是一回事吗?

不是。反思可以把文字反馈带回当前或后续尝试,并不必然更新模型参数;这里讨论的强化学习还包含训练优化。它们可以配合,但不能因为名字里有“反馈”就混为一谈。

面试速记卡

  • 奖励起点:先定义真实成功,再决定怎样计算分数。
  • 终局与过程:最后结果确认完成,过程反馈帮助区分有效进展。
  • Reward Hacking:指标被利用,高分不再代表达成原目标。
  • 安全边界:保护验收环境,权限不能只靠奖励惩罚。
  • 验证要求:训练奖励之外,还要检查独立任务、成本与违规轨迹。
简历汪永久免费在线制作简历,模板直接套用、导出无水印,永久免费、下载免费,不需要付费解锁任何功能。去写简历