get_rewards_ppo¶
- torchtune.rlhf.get_rewards_ppo(scores: Tensor, logprobs: Tensor, ref_logprobs: Tensor, kl_coeff: float, valid_score_idxs: Optional[Tensor] = None) Tuple[Tensor, Tensor, Tensor] [source]¶
计算给定分数、对数概率和参考对数概率的 PPO 奖励。
- 参数:
scores (torch.Tensor) – 奖励模型得分,形状为
(b,)
。logprobs (torch.Tensor) – 策略对数概率,形状为
(b, response_len)
。ref_logprobs (torch.Tensor) – 参考基础模型的对数概率,形状为
(b, response_len)
。kl_coeff (float) – KL 奖励贡献系数。
valid_score_idxs (Optional[torch.Tensor]) – 有效(非填充)令牌预测的索引张量。这在计算填充序列的奖励时很有用,因为分数和值估计是为最后一个有效预测令牌定义的。形状:
(b,)
。默认为 None。
- 返回:
- 一个张量元组,每个张量的形状为
(b, response_len)
total_reward:总奖励,结合了每令牌 KL 奖励和奖励模型得分。
kl:策略和参考策略对数概率之间的 KL 散度。
kl_reward:按
kl_coeff
缩放的 KL 散度。
- 一个张量元组,每个张量的形状为
- 返回类型:
Tuple[torch.Tensor, torch.Tensor, torch.Tensor]
- 张量形状中使用的表示法
b:批处理大小
response_len:模型响应长度