Skip to content

Commit bd77a48

Browse files
kalomazeLostRuins
andauthored
Do not default to Repetition Penalty 1.1 (ggml-org#615)
* Do not default to Repetition Penalty * apply all known aliases for repetition penalty when using the OAI endpoint. rep pen defaults to 1, range to 256 --------- Co-authored-by: Concedo <39025047+LostRuins@users.noreply.github.com>
1 parent b9ad08a commit bd77a48

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

koboldcpp.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ def load_model(model_filename):
311311
ret = handle.load_model(inputs)
312312
return ret
313313

314-
def generate(prompt, memory="", max_length=32, max_context_length=512, temperature=0.7, top_k=100, top_a=0.0, top_p=0.92, min_p=0.0, typical_p=1.0, tfs=1.0, rep_pen=1.1, rep_pen_range=128, presence_penalty=0.0, mirostat=0, mirostat_tau=5.0, mirostat_eta=0.1, sampler_order=[6,0,1,3,4,2,5], seed=-1, stop_sequence=[], use_default_badwordsids=False, stream_sse=False, grammar='', grammar_retain_state=False, genkey='', trimstop=False, quiet=False, dynatemp_range=0.0, logit_biases={}):
314+
def generate(prompt, memory="", max_length=32, max_context_length=512, temperature=0.7, top_k=100, top_a=0.0, top_p=0.92, min_p=0.0, typical_p=1.0, tfs=1.0, rep_pen=1.0, rep_pen_range=128, presence_penalty=0.0, mirostat=0, mirostat_tau=5.0, mirostat_eta=0.1, sampler_order=[6,0,1,3,4,2,5], seed=-1, stop_sequence=[], use_default_badwordsids=False, stream_sse=False, grammar='', grammar_retain_state=False, genkey='', trimstop=False, quiet=False, dynatemp_range=0.0, logit_biases={}):
315315
global maxctx, args, currentusergenkey, totalgens
316316
inputs = generation_inputs()
317317
outputs = ctypes.create_unicode_buffer(ctypes.sizeof(generation_outputs))
@@ -468,6 +468,14 @@ async def generate_text(self, genparams, api_format, stream_flag):
468468
global friendlymodelname
469469
is_quiet = args.quiet
470470
def run_blocking(): #api format 1=basic,2=kai,3=oai,4=oai-chat
471+
472+
#alias all nonstandard alternative names for rep pen.
473+
rp1 = genparams.get('repeat_penalty', 1.0)
474+
rp2 = genparams.get('repetition_penalty', 1.0)
475+
rp3 = genparams.get('rep_pen', 1.0)
476+
rp_max = max(rp1,rp2,rp3)
477+
genparams["rep_pen"] = rp_max
478+
471479
if api_format==1:
472480
genparams["prompt"] = genparams.get('text', "")
473481
genparams["top_k"] = int(genparams.get('top_k', 120))
@@ -477,8 +485,8 @@ def run_blocking(): #api format 1=basic,2=kai,3=oai,4=oai-chat
477485
genparams["max_length"] = genparams.get('max_tokens', 100)
478486
presence_penalty = genparams.get('presence_penalty', genparams.get('frequency_penalty', 0.0))
479487
genparams["presence_penalty"] = presence_penalty
480-
if presence_penalty > 0 and (genparams.get('rep_pen', 0)==0):
481-
genparams["rep_pen"] = 1.0
488+
if presence_penalty > 0:
489+
genparams["rep_pen"] = 1.0 #disable rep pen if presence pen is specified for OAI
482490
# openai allows either a string or a list as a stop sequence
483491
if isinstance(genparams.get('stop',[]), list):
484492
genparams["stop_sequence"] = genparams.get('stop', [])
@@ -533,7 +541,7 @@ def run_blocking(): #api format 1=basic,2=kai,3=oai,4=oai-chat
533541
min_p=genparams.get('min_p', 0.0),
534542
typical_p=genparams.get('typical', 1.0),
535543
tfs=genparams.get('tfs', 1.0),
536-
rep_pen=genparams.get('rep_pen', 1.1),
544+
rep_pen=genparams.get('rep_pen', 1.0),
537545
rep_pen_range=genparams.get('rep_pen_range', 256),
538546
presence_penalty=genparams.get('presence_penalty', 0.0),
539547
mirostat=genparams.get('mirostat', 0),
@@ -687,7 +695,7 @@ def noscript_webui(self):
687695
temperature = float(parsed_dict['temperature'][0]) if 'temperature' in parsed_dict else 0.7
688696
top_k = int(parsed_dict['top_k'][0]) if 'top_k' in parsed_dict else 100
689697
top_p = float(parsed_dict['top_p'][0]) if 'top_p' in parsed_dict else 0.9
690-
rep_pen = float(parsed_dict['rep_pen'][0]) if 'rep_pen' in parsed_dict else 1.1
698+
rep_pen = float(parsed_dict['rep_pen'][0]) if 'rep_pen' in parsed_dict else 1.0
691699
use_default_badwordsids = int(parsed_dict['use_default_badwordsids'][0]) if 'use_default_badwordsids' in parsed_dict else 0
692700
gencommand = (parsed_dict['generate'][0] if 'generate' in parsed_dict else "")=="Generate"
693701

0 commit comments

Comments
 (0)