Shortcuts

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:

元组[torch.Tensor, torch.Tensor, torch.Tensor]

Notation used for tensor shapes:
  • b: 批量大小

  • response_len: 模型响应长度