Rubrics as Rewards Reinforcement Learning Beyond Verifiable Domains

Rubrics as Rewards: 运行流程

Rubrics as Rewards 这种方法是一种更通用的 Rule-based reward,该方法对于每个 prompt 生成独享的 rubrics, 执行步骤如下:

  1. 生成评定规则集 Rubrics Sets: 针对当前 prompt,已通过 LLM 生成一组评分标准(通常 7-20 条),每条标准是一个[可验证的判断项](如”必须包含公式 A”, “需明确数值 B”).
  2. 评估模型输出满足每条标准的程度对模型生成的回答: 逐条检查是否满足评分标准中的判断项,一种可能的设计结果为[二元值]:1(满足)或 0(不满足)(因评分标准设计为”非黑即白” 的可验证项,无中间状态);
  3. 计算满足率并映射为奖励值统计”满足的标准数量” 占”总标准数量” 的比例(即满足率),再将该比例线性映射为奖励值(通常范围为 0-1 或 0-100,值越高表示回答质量越好)

示例: 以论文附录 A.1 中的案例为例,完整展示奖励生成过程:

  1. 任务背景
    ``` bash
    Prompt
    患者体重 70kg,血气分析显示 HCO₃⁻(碳酸氢根)为 12mmol/L,目标是将 HCO₃⁻ 纠正至 18mmol/L,计算碳酸氢钠的给药剂量及输注时间.

参考答案
补碱量公式为[(目标 HCO₃⁻ - 实测 HCO₃⁻)× 体重(kg)× 0.4],计算得(18-12)×70×0.4=168mEq;按”部分纠正原则” 给予 50%(84mEq),分 4 小时输注.


2. 生成的评分标准(Rubrics Set)
共 5 条核心评价项(简化版):
``` bash
必须使用公式[(目标 HCO₃⁻ - 实测 HCO₃⁻)× 体重 × 0.4];
需明确目标 HCO₃⁻ 取值为 18mmol/L;
需提及"部分纠正原则"(即补碱量取计算值的 50%);
最终给药剂量需为 84mEq(允许 ±5% 误差,即 80-88mEq);
必须指定输注时间为 4 小时.
  1. 模型输出示例及奖励计算
    假设模型生成了 3 种不同回答,分别计算奖励:

    1. 模型输出 1(高质量回答):”根据公式(目标 HCO₃⁻ - 实测 HCO₃⁻)× 体重 × 0.4,目标 HCO₃⁻ 设为 18mmol/L,计算得 168mEq. 按部分纠正原则给予 84mEq,4 小时内输完. “
      逐条评估:
      满足(使用了指定公式)→ 1
      满足(明确目标值 18)→ 1
      满足(提及部分纠正原则)→ 1
      满足(剂量 84mEq 在范围内)→ 1
      满足(输注时间 4 小时)→ 1
      满足率 = 5/5 = 100% → 奖励值 = 1.0(或 100 分)

    2. 模型输出 2(中等质量回答):”计算公式为(目标 - 实测)× 体重 × 0.4,目标是 18,算出来 168mEq,给一半即 84mEq,慢慢输. “
      逐条评估:
      满足(公式正确,虽简化表述但核心一致)→ 1
      满足(目标值 18 明确)→ 1
      满足(”给一半” 隐含部分纠正原则)→ 1
      满足(剂量 84mEq 正确)→ 1
      不满足(未指定 4 小时,”慢慢输” 模糊)→ 0
      满足率 = 4/5 = 80% → 奖励值 = 0.8(或 80 分)

    3. 模型输出 3(低质量回答):”需要补碳酸氢钠,剂量大概 100mEq,输 2 小时. “
      逐条评估:
      不满足(未使用指定公式)→ 0
      不满足(未提目标 HCO₃⁻ 取值)→ 0
      不满足(未提部分纠正原则)→ 0
      不满足(100mEq 超出 ±5% 误差范围)→ 0
      不满足(输注时间 2 小时错误)→ 0
      满足率 = 0/5 = 0% → 奖励值 = 0.0(或 0 分)

然后生成的奖励值主要用于 GRPO 训练:通过对比不同模型输出的奖励值,引导模型优化参数,使其更倾向于生成”满足更多评分标准” 的回答. 例如,在上述案例中,模型会通过奖励信号学习到”必须包含公式、指定输注时间” 等关键要求,逐步提升回答质量

Rubrics as Rewards: 如何生成 Rubrics?

Rubrics 生成有两类方法:一类是论文中的方法,另一类是自己合成

Rubrics Generation: 依靠参考答案

先来说下论文中的方法: 论文中以 [参考答案(golden reference answer)]为核心输入,通过精心设计的提示词(prompt)引导模型生成符合要求的评价项. 具体步骤如下:

  1. 核心输入:参考答案(Golden Reference Answer)
    生成评分标准的前提是存在一个[高质量参考答案],即针对当前 prompt 的理想输出(如专家编写的正确回答、权威解决方案等).
    例如,若 prompt 是”计算一名 70kg 代谢性酸中毒患者的碳酸氢钠给药剂量”,参考答案需包含具体计算步骤(如根据碱剩余值公式)、最终剂量(如 150mEq)、给药速度(如 4 小时内)等关键信息.
    参考答案是评分标准的”锚点”—— 所有评价项均需围绕参考答案的核心要素展开,确保评分标准与任务目标紧密绑定.

  2. 生成工具:大语言模型(LLM)
    论文中使用 GPT-4 作为生成评分标准的基础模型(实验显示其效果优于 GPT-3.5 等模型). 核心逻辑是:让 LLM 模仿”专家制定评分标准” 的思维,从参考答案中提炼出”判断回答质量的关键维度”.

  3. 关键引导:提示词(Prompt)设计
    为确保 LLM 生成的评分标准符合”实例特定、可操作、无歧义” 的要求,论文设计了结构化提示词,包含以下核心指令:
    任务定义:明确要求生成”用于评估某问题回答质量的评分标准”,且标准需针对当前问题(而非通用场景).
    评价项要求:每个评价项需满足:

[单条 rubric 是自包含的]:无需额外信息即可判断(如”必须提到碳酸氢钠的剂量计算需基于患者体重”,而非”需符合医学规范”);
[单条 rubric 可验证性的]:能明确判断回答是否满足(如”需明确写出最终给药剂量(单位:mEq)”,而非”剂量计算合理”);
[rubrics 能覆盖所有关键需求]:需包含参考答案中的所有核心要素(如计算步骤、剂量、给药速度等),以及该任务常见的错误点(如忽略体重因素、单位错误).
格式约束:要求输出 7-20 条评价项,每条用简洁短句表述(避免模糊形容词).

示例:医疗领域合成评分标准生成提示词 prompt 示例

医疗领域合成评分标准生成提示词

你是一名评分标准(rubric)撰写专家. 你的工作是为给定问题生成一套自包含的评价标准,用于判断回答的优劣. 评分标准可以涵盖回答的各个方面,包括但不限于事实正确性、理想回答特性、风格、完整性、帮助性、安全性、以患者为中心、推理深度、上下文相关性和同理心. 每个评分条目必须自包含——非专业读者无需推断或查阅外部信息. 每条描述必须以类别开头,例如:"Essential Criteria: …"、"Important Criteria: …"、"Optional Criteria: …"或"Pitfall Criteria: Does not mention …". 

输入:
- question:问题全文. 
- reference_answer:理想答案,包括任何具体事实、解释或建议. 

评分条目总数:
- 根据问题复杂度选择 7–20 条评分条目. 

每条评分条目:
- title(标题):2–4 个词. 
- description(描述):以类别前缀开头的一句话,明确指出具体需要评估的内容. 例如:
  - Essential Criteria:识别非增强螺旋 CT 扫描为输尿管结石最敏感的检查方式. 
  - Pitfall Criteria:未提及识别 (B) 为正确答案. 
  - Important Criteria:解释非增强螺旋 CT 可以检测不同大小和成分的结石. 
  - Optional Criteria:表明"最终答案是 (B)"或类似答案格式. 
- weight(权重):对于 Essential/Important/Optional,使用 1–5(5 = 最重要);对于 Pitfall,使用 -1 或 -2. 

类别指导:
- Essential(关键标准):关键事实或安全检查;如果缺失,回答无效(权重 5). 
- Important(重要标准):关键推理、完整性或清晰度;强烈影响回答质量(权重 3–4). 
- Optional(可选标准):有益的风格或额外深度;可有可无(权重 1–2). 
- Pitfall(陷阱标准):该题常见错误或遗漏——识别回答者容易忘记或表述错误的内容. 每条 Pitfall 描述必须以"Pitfall Criteria: Does not mention …"或"Pitfall Criteria: Recommends …"开头,权重 -1 或 -2. 

确保自包含指导:
- 提及答案选项时,要明确写"识别 (A)"、"识别 (B)"等,而非模糊表述. 
- 如果格式要求结论如"最终答案是 (B)",应包含一条评分条目:
  - Essential Criteria:包含明确表述"最终答案是 (B)". 
- 如果推理应在答案前给出,则应包含:
  - Important Criteria:在给出最终答案前呈现解释. 
- 如果要求简洁,则应包含:
  - Optional Criteria:保持简洁,避免不必要的细节. 
- 如果问题背景要求提及特定发现,则应明确包含:
  - Essential Criteria:提到 CT 不需要增强. 

输出:
- 提供 JSON 数组,每个对象包含恰好三键:title、description、weight. 
- 不要将问题或参考答案的大块文本直接复制到评分条目中. 
- 每条描述必须以类别前缀开头,不允许额外键. 

现在,给定 question 和 reference_answer,按照上述要求生成评分标准. 参考答案为理想回答,但不一定详尽,仅作指导使用.

科学领域合成评分标准生成提示词示例:

你是一名科学问题评分标准撰写专家,涵盖生物学、物理学和化学领域. 你的工作是为给定问题生成一套自包含的评价标准("rubrics"),用于判断回答质量. 评分标准可以涵盖的方面包括事实正确性、推理深度、清晰度、完整性、风格、帮助性以及常见错误. 每条评分条目必须完全自包含,使非专业读者无需查阅任何外部信息. 

输入:
- question:问题全文
- reference_answer:理想答案,包括关键事实或解释

评分条目总数:
- 根据问题复杂度选择 7–20 条评分条目

每条评分条目必须包含恰好三个键:
1. title(标题):2–4 个词
2. description(描述):以类别前缀开头的一句话,明确说明评估内容. 例如:
   - Essential Criteria:指出在描述的封闭系统中,事件前的总机械能(动能加势能)等于事件后的总机械能. 
   - Important Criteria:逐阶段分解数值能量,证明初始动能加初始势能等于最终动能加最终势能. 
   - Optional Criteria:提供具体例子,例如摆在动能与势能之间转换,说明系统内能量的变化. 
   - Pitfall Criteria:未提及在应用机械能守恒时假设摩擦或空气阻力损失可以忽略. 
3. weight(权重):Essential/Important/Optional 使用 1–5(5 = 最重要);Pitfall 使用 -1 或 -2. 

类别指导:
- Essential(关键标准):关键事实或安全检查;遗漏会使回答无效. 
- Important(重要标准):关键推理或完整性;强烈影响回答质量. 
- Optional(可选标准):附加风格或额外深度;可有可无. 
- Pitfall(陷阱标准):常见错误或遗漏;强调回答者容易忽视的事项. 

格式说明:
- 提及答案选项时,要明确写"Identifies (A)"、"Identifies (B)"等. 
- 如果需要明确结论(例如"The final answer is (B)"),应包含一条 Essential Criteria. 
- 如果推理应在最终答案之前给出,应包含一条 Important Criteria. 
- 如果强调简洁,应包含一条 Optional Criteria. 

输出:
- 提供 JSON 数组,每个对象包含恰好三个键:title、description、weight. 
- 不要将问题或参考答案的大块文本直接复制到评分条目中. 
- 每条描述必须以类别前缀开头,不允许额外键. 

现在,给定 question 和 reference_answer,按照上述要求生成评分标准. 参考答案为理想回答,但不一定详尽,仅作指导使用.
  1. 后续质量控制:过滤与验证, 生成后需通过以下方式确保评分标准质量:
    冗余过滤:移除重复或含义重叠的评价项(如同时出现"需计算剂量" 和"需写出剂量结果" 时,保留后者);
    专家抽样验证:随机抽取部分评分标准,由领域专家判断其是否覆盖任务核心需求、是否存在歧义;
    迭代优化:若某评分标准在初步测试中表现不佳(如无法有效区分回答质量),则重新输入 LLM 并补充提示(如"需增加对‘单位错误’的评价").
    

Rubrics Generation: 人工设计

人工设计(Hand-crafted / Expert-defined)最直接的方法就是 人为定义每个任务的评价标准. 适用场景:专业任务(医学、法律、科学)或创作类任务, 流程如下:

  1. 确定任务类型和目标输出
  2. 列出评价维度(criteria),例如:
    • 语言清晰度
    • 逻辑合理性
    • 安全/合规性
    • 创意性/风格一致性
    • 为每个维度定义 评价函数 或 打分规则:
      • Binary(符合/不符合)
      • 5 分制或 0–1 连续分数

Rubrics Generation: Prompt-guided 自动生成

任务: 写一篇科幻短篇,主题是火星殖民,角色为科学家 Alice
请生成一个 5 条评分 rubric,每条 rubric 用于评价故事的创意、连贯性和角色遵循.

输出结果

1. 故事情节完整,符合起承转合原则
2. 角色行为和性格与设定一致
3. 创意新颖,体现科幻元素
4. 语言流畅,句式丰富
5. 情节逻辑合理,无明显矛盾

Rubrics Generation: 基于模型对比(Model-in-the-loop / Self-consistency)

使用 模型自身生成多个 candidate outputs,然后生成 rubric:

  1. 先生成多个回答
  2. 再用 LLM 对这些回答进行比较,生成评价标准
  3. 这个方法可以自动提炼任务特性,并减少人工参与

Reference

[1]. Rubrics as Rewards Reinforcement Learning Beyond Verifiable Domains


转载请注明来源 goldandrabbit.github.io