Skip to content

Commit 84461c6

Browse files
ToasterSCPanAndy
authored andcommitted
skip_whiten_if_response_mask_sum_eq_0
1 parent 664a11a commit 84461c6

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

roll/utils/functionals.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -683,9 +683,13 @@ def compute_advantage(
683683
):
684684
if response_mask is None:
685685
response_mask = data.batch["response_mask"][:, 1:]
686+
if response_mask.sum() == 0:
687+
skip_whiten = True
688+
else:
689+
skip_whiten = False
686690

687691
token_level_rewards = data.batch["token_level_rewards"].float()
688-
if whiten_rewards:
692+
if whiten_rewards and not skip_whiten:
689693
token_level_rewards = masked_whiten(values=token_level_rewards, mask=response_mask)
690694
# data.batch['token_level_rewards'] = token_level_rewards
691695
token_level_rewards = token_level_rewards * response_mask
@@ -708,7 +712,7 @@ def compute_advantage(
708712
raise NotImplementedError
709713

710714
data.batch["raw_advantages"] = advantages
711-
if whiten_advantages:
715+
if whiten_advantages and not skip_whiten:
712716
# TODO whiten过程中是否要考虑response的长度?
713717
advantages = masked_whiten(values=advantages, mask=response_mask)
714718
advantages = advantages * response_mask

0 commit comments

Comments
 (0)