naive.py — Naive 奖励管理器¶
文件概述¶
最基本的奖励管理器实现,逐样本计算奖励。
核心类¶
NaiveRewardManager¶
@register("naive")
class NaiveRewardManager(AbstractRewardManager):
def __init__(self, tokenizer, num_examine, compute_score=None, reward_fn_key="data_source"):
self.compute_score = compute_score or default_compute_score
def __call__(self, data, return_dict=False):
"""逐样本计算奖励
流程:
1. 解码 response tokens 为文本
2. 对每个样本调用 compute_score 函数
3. 将分数放到对应位置的 reward tensor 中
"""
for i in range(len(data)):
score = self.compute_score(
data_source=data_sources[i],
solution_str=sequences_str[i],
ground_truth=ground_truth[i],
)
reward_tensor[i, valid_response_length[i] - 1] = score
与其他模块的关系¶
- 继承
abstract.py的AbstractRewardManager - 使用
@register("naive")注册到注册表
小结¶
最简单的奖励计算方式,适合规则明确的任务(如数学问答、代码执行等)。