Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions tests/test_rewards.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,11 @@ def test_positive_max_penalty_raises(self):
with pytest.raises(ValueError):
get_repetition_penalty_reward(ngram_size=2, max_penalty=0.5)

@pytest.mark.parametrize("ngram_size", [0, -1])
def test_non_positive_ngram_size_raises(self, ngram_size):
with pytest.raises(ValueError):
get_repetition_penalty_reward(ngram_size=ngram_size, max_penalty=-1.0)

def test_extra_kwargs_are_ignored(self):
"""Trainers pass prompts/completions/etc. as kwargs; the reward must accept and ignore them."""
reward_fn = get_repetition_penalty_reward(ngram_size=2, max_penalty=-1.0)
Expand Down
2 changes: 2 additions & 0 deletions trl/rewards/other_rewards.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ def get_repetition_penalty_reward(ngram_size: int = 3, max_penalty: float = -1.0
"""
if max_penalty > 0:
raise ValueError(f"max_penalty {max_penalty} should not be positive")
if ngram_size <= 0:
raise ValueError(f"ngram_size {ngram_size} should be greater than 0")
return _RepetitionPenalty(ngram_size, max_penalty)


Expand Down
Loading