OlympiadBench 奖励
用于评估 OlympiadBench 数学和物理竞赛问题的奖励函数族。
OlympiadBenchAccuracyReward
评估答案正确性,支持 LaTeX 归一化、数值容差和部分匹配。
from twinkle.reward import OlympiadBenchAccuracyReward
reward_fn = OlympiadBenchAccuracyReward()
rewards = reward_fn(generated_trajectories, ground_truth_trajectories)
# rewards: List[float], 1.0 表示正确, 0.0 表示错误
奖励函数的工作流程:
从
\boxed{...}中提取答案,支持嵌套大括号处理归一化预测和真实答案(LaTeX、单位、分数)
通过归一化字符串匹配或带容差的数值比较进行判断
OlympiadBenchFormatReward
验证模型输出的结构格式。
from twinkle.reward import OlympiadBenchFormatReward
reward_fn = OlympiadBenchFormatReward()
rewards = reward_fn(trajectories, ground_truths)
# rewards: List[float], 基于格式质量的分数
评分标准:
\boxed{...}答案的存在性答案位置(应出现在末尾附近)
答案的唯一性和一致性
OlympiadBenchQualityReward
结合多个维度评估响应质量的复合奖励。
from twinkle.reward import OlympiadBenchQualityReward
reward_fn = OlympiadBenchQualityReward()
rewards = reward_fn(trajectories, ground_truths)
质量维度:
推理结构: 检测逐步推理模式
长度适当性: 对过短或过长响应的平滑惩罚曲线
内容唯一性: 惩罚响应中的重复内容
这些奖励可以单独使用或组合为复合奖励,用于竞赛级数学和物理问题的 GRPO 训练。