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]¶
计算给定分数、logprobs和参考logprobs的PPO奖励。
- Parameters:
scores (torch.Tensor) – 奖励模型分数,形状为
(b,)。logprobs (torch.Tensor) – 策略的对数概率,形状为
(b, response_len)。ref_logprobs (torch.Tensor) – 参考基础模型的logprobs,形状为
(b, response_len)。kl_coeff (float) – KL奖励贡献系数。
valid_score_idxs (可选[torch.Tensor]) – 一个包含有效(非填充)标记预测索引的张量。 这在计算填充序列的奖励时非常有用,因为分数和价值估计是为最后一个有效预测标记定义的。形状:
(b,)。默认值为 None。
- Returns:
- 一个形状为
(b, response_len)的张量元组: total_reward: 结合每个token的kl奖励和奖励模型得分的总奖励。
kl: 策略和参考策略logprobs之间的kl散度。
kl_reward: 由
kl_coeff缩放的kl散度。
- 一个形状为
- Return type:
- Notation used for tensor shapes:
b: 批量大小
response_len: 模型响应长度