强化学习任务的奖励函数如何设计?
未标记
考查重点:成功条件、过程信号与奖励漏洞。把任务成功转成独立可检查结果,违规可判失败,真实中间进展给辅助信号;先校准尺度权重,再用高分坏例和业务评测防投机
本题目录
参考答案
核心回答
奖励函数要把任务成功转成可检查的反馈,同时约束成本、风险和投机行为。先定义真正的终局成功,再决定哪些中间进展值得奖励、哪些违规应直接判失败,最后处理各分量的尺度与权重。不能只优化“回答像完成了”或“操作次数少”。
对 GUI Agent,成功应由执行后的真实环境状态确认,例如订单记录、目标文件内容或后台业务字段,而不是模型自述和单张成功截图。训练时还要用独立的留出任务与业务成功率检查效果,避免奖励升高但任务能力下降。
从目标到奖励
第一步,定义终局与约束。 明确任务允许的操作、完成条件、超时和不可逆错误。检验器尽量独立于策略模型;无法可靠检查的案例保留不确定状态,不把“没报错”一律当成功。
第二步,选择信号粒度。 终局奖励最贴近目标,但长轨迹容易没有学习信号。过程奖励可覆盖可靠的里程碑,例如目标对象创建且内容正确;重复打开同一页面、反复切换状态不应重复加分。过程分数不能压过最终正确性。
第三步,组合并归一。 正确性、合规、格式与成本的单位不同,先检查分布再定权重。硬约束通常用门控或分级规则表达,比简单给一个可被其他正奖励抵消的小负分更清楚。KL惩罚约束策略相对参考策略的漂移,它与业务奖励分工不同,也不是识别所有reward hacking的办法。
一个可复算的设计示例
假设一次任务必须满足操作约束,成功完成后才考虑节省工具调用。令 S 是成功与否,C 是归一到[0,1]的成本,示意规则为:
违反硬约束:r = -1
满足约束但未完成:r = 0
满足约束且完成:r = 1 - 0.1 × C
于是成功任务的奖励位于[0.9,1],失败任务为0。成功且C=0.3得到0.97;失败即使零成本也只得0,因而节省成本不能抵消未完成。系数0.1只是说明优先级的教学设定,需要用任务数据检验。
长轨迹若采用折扣,应明确是否真的希望偏好较短链路。gamma=0.99时,同样终局奖励向前10步折扣为约0.904,向前100步约0.366;过强折扣可能压低必要长任务的价值。损失按token长度归一化与时间折扣是不同机制。
如何发现奖励设计有问题
同时观察各分量、总奖励、真实成功率、轨迹长度、拒答和重复操作;人工抽查“高分却失败”的轨迹,构造循环刷分、伪造完成标记和绕过检验器的反例。对奖励分量做消融,并在固定初始状态与相同预算下比较模型。
GRPO还要看同一题多个候选的奖励差异:全组都成功或都失败时,相对优势可能为零。应先检查采样难度与检验器分辨率,而不是用随机噪声制造看似有用的奖励。
对应教程
- 1-1-大模型认知与工程概览:回看人类或AI反馈、奖励模型与策略更新的关系。
参考资料
- 国内:Datawhale:第十一章 Agentic-RL:参考终局与过程反馈的讲解,组织正文中任务成功、中间进展和稀疏学习信号的奖励设计。
- 国内:zero2Agent:GRPO vs PPO:借鉴组内相对奖励与信用分配,解释正文中业务评分需要区分候选轨迹、长任务需要有效反馈,而不能由框架参数替代目标。
- 国内:DeepSeek-AI:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning v2:依据正确性与格式奖励的区分,解释正文中任务结果、输出形式和其他奖励分量承担的不同职责。
- 国外:Google DeepMind:Specification gaming: the flip side of AI ingenuity:采用规格投机中代理分数偏离真实目标的分析,说明正文中独立验证环境状态及构造高分失败反例的必要性。
- 国外:Hugging Face:GRPO Trainer:参考多奖励组合与奖励方差日志,说明正文中如何观察分项分布、同分组和有效训练信号;配置仍按使用版本确认。
相关面经
3 篇收录题集
展开剩余 4 份题集
强化学习与对齐
奖励函数设计 奖励函数设计相关问题: 「字节Seed、字节跳动、腾讯」
RL应用场景相关问题: 「字节跳动、百度、腾讯、蚂蚁集团」
展开其余 10 条原题
GRPO奖励函数设计
GRPO GRPO相关问题: 「京东、字节Seed、字节跳动、百度、美团、腾讯」
PPO与GRPO对比 「京东、字节跳动、百度、百度文心、腾讯、腾讯混元、蚂蚁集团、阿里巴巴」
PPO原理与细节 详细介绍PPO的原理,包括整体训练流程、数据、如何训练奖励模型、每个模型的损失函数、在几张卡上训练?
奖励函数与模型设计 「京东、字节跳动、拼多多、美团、腾讯、蚂蚁集团」

