Samplers: Add frequency and presence penalty

Un-alias repetition penalty from the frequency penalty parameter.

Signed-off-by: kingbri <bdashore3@proton.me>
This commit is contained in:
kingbri
2023-12-25 15:17:04 -05:00
parent 442bb59f8f
commit e256ff8182
2 changed files with 29 additions and 13 deletions

View File

@@ -459,7 +459,9 @@ class ModelContainer:
'mirostat' (bool): Use Mirostat (default: False)
'mirostat_tau' (float) Mirostat tau parameter (default: 1.5)
'mirostat_eta' (float) Mirostat eta parameter (default: 0.1)
'repetition_penalty' (float): Token repetition/presence penalty
'frequency_penalty' (float): Token frequency penalty (default: 0.0)
'presence_penalty' (float): Token presence penalty (default: 0.0)
'repetition_penalty' (float): Token repetition penalty
(default: 1.15)
'repetition_range' (int): Repetition penalty range
(default: whole context)
@@ -529,6 +531,22 @@ class ModelContainer:
"installed ExLlamaV2 version."
)
if (unwrap(kwargs.get("frequency_penalty"), 0.0)) != 0.0 and not hasattr(
gen_settings, "token_frequency_penalty"
):
logger.warning(
"Frequency penalty is not supported by the currently "
"installed ExLlamaV2 version."
)
if (unwrap(kwargs.get("presence_penalty"), 0.0)) != 0.0 and not hasattr(
gen_settings, "token_presence_penalty"
):
logger.warning(
"Presence penalty is not supported by the currently "
"installed ExLlamaV2 version."
)
# Apply settings
gen_settings.temperature = unwrap(kwargs.get("temperature"), 1.0)
gen_settings.temperature_last = unwrap(kwargs.get("temperature_last"), False)
@@ -543,6 +561,12 @@ class ModelContainer:
# Default tau and eta fallbacks don't matter if mirostat is off
gen_settings.mirostat_tau = unwrap(kwargs.get("mirostat_tau"), 1.5)
gen_settings.mirostat_eta = unwrap(kwargs.get("mirostat_eta"), 0.1)
gen_settings.token_frequency_penalty = unwrap(
kwargs.get("frequency_penalty"), 0.0
)
gen_settings.token_presence_penalty = unwrap(
kwargs.get("presence_penalty"), 0.0
)
gen_settings.token_repetition_penalty = unwrap(
kwargs.get("repetition_penalty"), 1.0
)