mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2025-09-09 16:44:35 +00:00
added nsigma to lite
This commit is contained in:
parent
2740af3660
commit
f2ac10c014
5 changed files with 24 additions and 10 deletions
2
expose.h
2
expose.h
|
@ -82,7 +82,7 @@ struct generation_inputs
|
|||
const float min_p = 0.0f;
|
||||
const float typical_p = 0;
|
||||
const float tfs = 0;
|
||||
const float nsigma = -1.0f;
|
||||
const float nsigma = 0.0f;
|
||||
const float rep_pen = 0;
|
||||
const int rep_pen_range = 0;
|
||||
const float rep_pen_slope = 1.0f;
|
||||
|
|
|
@ -1430,6 +1430,9 @@ void sampler_typical(llama_token_data_array * cur_p, float p, size_t min_keep) {
|
|||
|
||||
void sample_top_n_sigma(llama_token_data_array * cur_p, float nsigma) {
|
||||
|
||||
if (nsigma <= 0.0f || cur_p->size <= 1) {
|
||||
return;
|
||||
}
|
||||
// find max logit and calculate mean
|
||||
float nsigmax = cur_p->data[0].logit;
|
||||
float logits_sum = 0;
|
||||
|
@ -1613,10 +1616,8 @@ const std::vector<samplers> & sampler_order, llama_grammar * grammar, float dyna
|
|||
sample_grammar(file_format, n_vocab, &candidates_p, grammar);
|
||||
}
|
||||
|
||||
if (nsigma <= 0.0f){
|
||||
//dry always first as logits cannot be resorted
|
||||
sample_dry(n_ctx, dry_penalty_last_n, dry_multiplier, dry_base, dry_allowed_length, dry_sequence_breakers, &candidates_p);
|
||||
}
|
||||
//dry always first as logits cannot be resorted
|
||||
sample_dry(n_ctx, dry_penalty_last_n, dry_multiplier, dry_base, dry_allowed_length, dry_sequence_breakers, &candidates_p);
|
||||
|
||||
//prefilter to top 3k tokens for improved speed
|
||||
sample_top_k(&candidates_p, 3000);
|
||||
|
@ -1651,7 +1652,6 @@ const std::vector<samplers> & sampler_order, llama_grammar * grammar, float dyna
|
|||
sample_temperature(&candidates_p, temp, smoothing_factor);
|
||||
}
|
||||
sample_top_n_sigma(&candidates_p, nsigma);
|
||||
|
||||
sample_xtc(&candidates_p, xtc_threshold, xtc_probability, rng);
|
||||
id = sample_token(&candidates_p, rng);
|
||||
}
|
||||
|
|
18
klite.embd
18
klite.embd
|
@ -12,7 +12,7 @@ Current version indicated by LITEVER below.
|
|||
-->
|
||||
|
||||
<script>
|
||||
const LITEVER = 216;
|
||||
const LITEVER = 217;
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
var localflag = true;
|
||||
const STORAGE_PREFIX = (localflag?"e_":"")+"kaihordewebui_";
|
||||
|
@ -3152,6 +3152,7 @@ Current version indicated by LITEVER below.
|
|||
dynatemp_range: 0.0,
|
||||
dynatemp_exponent: 1.0,
|
||||
smoothing_factor: 0.0,
|
||||
nsigma: 0.0,
|
||||
top_p: 0.92,
|
||||
min_p: 0.00,
|
||||
presence_penalty: 0.00,
|
||||
|
@ -3183,6 +3184,7 @@ Current version indicated by LITEVER below.
|
|||
dynatemp_range: defaultsettings.dynatemp_range,
|
||||
dynatemp_exponent: defaultsettings.dynatemp_exponent,
|
||||
smoothing_factor: defaultsettings.smoothing_factor,
|
||||
nsigma: defaultsettings.nsigma,
|
||||
top_k: defaultsettings.top_k,
|
||||
top_p: defaultsettings.top_p,
|
||||
min_p: defaultsettings.min_p,
|
||||
|
@ -3195,7 +3197,7 @@ Current version indicated by LITEVER below.
|
|||
rep_pen_slope: defaultsettings.rep_pen_slope,
|
||||
sampler_order: defaultsettings.sampler_order
|
||||
},
|
||||
{"preset":"Simple Logical","description":"A very predictable preset with low randomness.","temp":0.3,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":100,"top_p":0.6,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.02,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Simple Balanced","description":"A good balanced preset with medium randomness.","temp":0.75,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":100,"top_p":0.92,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.07,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Simple Creative","description":"A wild and unpredictable preset with higher randomness.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":100,"top_p":0.98,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.15,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Basic Min-P","description":"A good default for Min-P, only works on backends with min-p.","temp":1.25,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":0,"top_p":1,"min_p":0.1,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic DynaTemp","description":"A good default for DynaTemp, only works on backends with it.","temp":1.25,"dynatemp_range":0.75,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":0,"top_p":1,"min_p":0.05,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic SmoothSample","description":"A good default for Smooth Sampling, only works on backends with it.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.25,"top_k":0,"top_p":1,"min_p":0.05,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic SillyTavern","description":"Similar to default preset used in SillyTavern.","temp":0.75,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":40,"top_p":0.6,"min_p":0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1.0,"rep_pen":1.18,"rep_pen_range":1024,"rep_pen_slope":0.8,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Neutral (Disabled)","description":"Sets all samplers neutralized, allowing you to customize your own.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":200,"top_p":1.0,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.0,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"CoherentCreativity (Legacy)","description":"Legacy preset. A good balance between coherence, creativity, and quality of prose.","rep_pen":1.2,"rep_pen_range":360,"rep_pen_slope":0,"sampler_order":[6,5,0,2,3,1,4],"temp":0.5,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"tfs":0.99,"top_a":0,"top_k":0,"top_p":1,"min_p":0.0,"presence_penalty":0.0,"typical":1},{"preset":"Godlike (Legacy)","description":"Legacy preset. Makes AI give a descriptive and sensual output.","temp":0.7,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":0,"top_p":0.5,"min_p":0.0,"presence_penalty":0.0,"top_a":0.75,"typical":0.19,"tfs":0.97,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,5,4,3,2,1,0]},{"preset":"LiminalDrift (Legacy)","description":"Legacy preset. Sometimes surreal situations arise based on information already present in the story.","temp":0.66,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"top_k":0,"top_p":1,"min_p":0.0,"presence_penalty":0.0,"top_a":0.96,"typical":0.6,"tfs":1,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,4,5,1,0,2,3]}
|
||||
{"preset":"Simple Logical","description":"A very predictable preset with low randomness.","temp":0.3,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":100,"top_p":0.6,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.02,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Simple Balanced","description":"A good balanced preset with medium randomness.","temp":0.75,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":100,"top_p":0.92,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.07,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Simple Creative","description":"A wild and unpredictable preset with higher randomness.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":100,"top_p":0.98,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.15,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Basic Min-P","description":"A good default for Min-P, only works on backends with min-p.","temp":1.25,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.1,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic DynaTemp","description":"A good default for DynaTemp, only works on backends with it.","temp":1.25,"dynatemp_range":0.75,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.05,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic SmoothSample","description":"A good default for Smooth Sampling, only works on backends with it.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.25,"top_k":0,"top_p":1,"min_p":0.05,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic SillyTavern","description":"Similar to default preset used in SillyTavern.","temp":0.75,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":40,"top_p":0.6,"min_p":0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1.0,"rep_pen":1.18,"rep_pen_range":1024,"rep_pen_slope":0.8,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Neutral (Disabled)","description":"Sets all samplers neutralized, allowing you to customize your own.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":200,"top_p":1.0,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.0,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"CoherentCreativity (Legacy)","description":"Legacy preset. A good balance between coherence, creativity, and quality of prose.","rep_pen":1.2,"rep_pen_range":360,"rep_pen_slope":0,"sampler_order":[6,5,0,2,3,1,4],"temp":0.5,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"tfs":0.99,"top_a":0,"top_k":0,"top_p":1,"min_p":0.0,"presence_penalty":0.0,"typical":1},{"preset":"Godlike (Legacy)","description":"Legacy preset. Makes AI give a descriptive and sensual output.","temp":0.7,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":0,"top_p":0.5,"min_p":0.0,"presence_penalty":0.0,"top_a":0.75,"typical":0.19,"tfs":0.97,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,5,4,3,2,1,0]},{"preset":"LiminalDrift (Legacy)","description":"Legacy preset. Sometimes surreal situations arise based on information already present in the story.","temp":0.66,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.0,"presence_penalty":0.0,"top_a":0.96,"typical":0.6,"tfs":1,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,4,5,1,0,2,3]}
|
||||
];
|
||||
|
||||
const instructpresets = [
|
||||
|
@ -10614,6 +10616,7 @@ Current version indicated by LITEVER below.
|
|||
document.getElementById("dynatemp_range").value = localsettings.dynatemp_range;
|
||||
document.getElementById("dynatemp_exponent").value = localsettings.dynatemp_exponent;
|
||||
document.getElementById("smoothing_factor").value = localsettings.smoothing_factor;
|
||||
document.getElementById("nsigma").value = localsettings.nsigma;
|
||||
document.getElementById("dynatemp_overview").innerText = (localsettings.dynatemp_range>0?"ON":"OFF");
|
||||
document.getElementById("presence_penalty").value = localsettings.presence_penalty;
|
||||
document.getElementById("sampler_seed").value = localsettings.sampler_seed;
|
||||
|
@ -10804,6 +10807,7 @@ Current version indicated by LITEVER below.
|
|||
document.getElementById("dynatemp_range").value = found.dynatemp_range;
|
||||
document.getElementById("dynatemp_exponent").value = found.dynatemp_exponent;
|
||||
document.getElementById("smoothing_factor").value = found.smoothing_factor;
|
||||
document.getElementById("nsigma").value = found.nsigma;
|
||||
document.getElementById("top_k").value = document.getElementById("top_k_slide").value = found.top_k;
|
||||
document.getElementById("top_p").value = document.getElementById("top_p_slide").value = found.top_p;
|
||||
document.getElementById("top_a").value = found.top_a;
|
||||
|
@ -10883,6 +10887,7 @@ Current version indicated by LITEVER below.
|
|||
document.getElementById("dynatemp_range").value != found.dynatemp_range ||
|
||||
document.getElementById("dynatemp_exponent").value != found.dynatemp_exponent ||
|
||||
document.getElementById("smoothing_factor").value != found.smoothing_factor ||
|
||||
document.getElementById("nsigma").value != found.nsigma ||
|
||||
document.getElementById("top_k").value != found.top_k ||
|
||||
document.getElementById("top_p").value != found.top_p ||
|
||||
document.getElementById("top_a").value != found.top_a ||
|
||||
|
@ -11052,6 +11057,7 @@ Current version indicated by LITEVER below.
|
|||
localsettings.dynatemp_range = parseFloat(document.getElementById("dynatemp_range").value);
|
||||
localsettings.dynatemp_exponent = parseFloat(document.getElementById("dynatemp_exponent").value);
|
||||
localsettings.smoothing_factor = parseFloat(document.getElementById("smoothing_factor").value);
|
||||
localsettings.nsigma = parseFloat(document.getElementById("nsigma").value);
|
||||
localsettings.presence_penalty = parseFloat(document.getElementById("presence_penalty").value);
|
||||
localsettings.top_k = parseInt(document.getElementById("top_k").value);
|
||||
localsettings.top_a = parseFloat(document.getElementById("top_a").value);
|
||||
|
@ -11166,6 +11172,7 @@ Current version indicated by LITEVER below.
|
|||
localsettings.dynatemp_range = (localsettings.dynatemp_range>localsettings.temperature?localsettings.temperature:localsettings.dynatemp_range);
|
||||
localsettings.dynatemp_exponent = cleannum(localsettings.dynatemp_exponent, 0.0, 10.0);
|
||||
localsettings.smoothing_factor = cleannum(localsettings.smoothing_factor, 0.0, 10.0);
|
||||
localsettings.nsigma = cleannum(localsettings.nsigma, 0.0, 5.0);
|
||||
localsettings.presence_penalty = cleannum(localsettings.presence_penalty, -2, 2);
|
||||
localsettings.top_k = cleannum(Math.floor(localsettings.top_k), 0, 300);
|
||||
localsettings.top_a = cleannum(localsettings.top_a, 0, 1);
|
||||
|
@ -14002,6 +14009,7 @@ Current version indicated by LITEVER below.
|
|||
submit_payload.params.dynatemp_range = localsettings.dynatemp_range;
|
||||
submit_payload.params.dynatemp_exponent = localsettings.dynatemp_exponent;
|
||||
submit_payload.params.smoothing_factor = localsettings.smoothing_factor;
|
||||
submit_payload.params.nsigma = localsettings.nsigma;
|
||||
submit_payload.params.banned_tokens = get_token_bans();
|
||||
submit_payload.params.render_special = localsettings.render_special_tags;
|
||||
submit_payload.params.logprobs = localsettings.request_logprobs;
|
||||
|
@ -14647,6 +14655,7 @@ Current version indicated by LITEVER below.
|
|||
submit_payload.params.dynatemp_range = localsettings.dynatemp_range;
|
||||
submit_payload.params.dynatemp_exponent = localsettings.dynatemp_exponent;
|
||||
submit_payload.params.smoothing_factor = localsettings.smoothing_factor;
|
||||
submit_payload.params.nsigma = localsettings.nsigma;
|
||||
}
|
||||
|
||||
last_request_str = JSON.stringify(submit_payload);
|
||||
|
@ -21121,6 +21130,11 @@ Current version indicated by LITEVER below.
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="settinglabel settingcell">
|
||||
<div title="Top N Sigma. 0 to deactivate." class="justifyleft settingsmall" style="width:100%">T.NSigma</div>
|
||||
<div class="justifyleft settingsmall" style="width:100%">
|
||||
<input title="Top N Sigma. 0 to deactivate." class="settinglabel miniinput" type="text" inputmode="decimal" placeholder="0" value="0" id="nsigma"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1117,7 +1117,7 @@ def generate(genparams, stream_flag=False):
|
|||
min_p = float(genparams.get('min_p', 0.0))
|
||||
typical_p = float(genparams.get('typical', 1.0))
|
||||
tfs = float(genparams.get('tfs', 1.0))
|
||||
nsigma = float(genparams.get('nsigma', -1.0))
|
||||
nsigma = float(genparams.get('nsigma', 0.0))
|
||||
rep_pen = float(genparams.get('rep_pen', 1.0))
|
||||
rep_pen_range = int(genparams.get('rep_pen_range', 320))
|
||||
rep_pen_slope = float(genparams.get('rep_pen_slope', 1.0))
|
||||
|
|
|
@ -29,7 +29,7 @@ struct kcpp_params {
|
|||
float top_p = 0.95f; // 1.0 = disabled
|
||||
float min_p = 0.0f; // 0.0 = disabled
|
||||
float tfs_z = 1.00f; // 1.0 = disabled
|
||||
float nsigma = -1.00f; // -1.0 - disabled
|
||||
float nsigma = 0.00f; // 0.0 - disabled
|
||||
float typical_p = 1.00f; // 1.0 = disabled
|
||||
float temp = 0.80f; // 1.0 = disabled
|
||||
float smoothing_factor = 0.00f; // 0.00 = disabled
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue