Skip to content

Commit f2ac10c

Browse files
committed
added nsigma to lite
1 parent 2740af3 commit f2ac10c

File tree

5 files changed

+24
-10
lines changed

5 files changed

+24
-10
lines changed

expose.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ struct generation_inputs
8282
const float min_p = 0.0f;
8383
const float typical_p = 0;
8484
const float tfs = 0;
85-
const float nsigma = -1.0f;
85+
const float nsigma = 0.0f;
8686
const float rep_pen = 0;
8787
const int rep_pen_range = 0;
8888
const float rep_pen_slope = 1.0f;

gpttype_adapter.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1430,6 +1430,9 @@ void sampler_typical(llama_token_data_array * cur_p, float p, size_t min_keep) {
14301430

14311431
void sample_top_n_sigma(llama_token_data_array * cur_p, float nsigma) {
14321432

1433+
if (nsigma <= 0.0f || cur_p->size <= 1) {
1434+
return;
1435+
}
14331436
// find max logit and calculate mean
14341437
float nsigmax = cur_p->data[0].logit;
14351438
float logits_sum = 0;
@@ -1613,10 +1616,8 @@ const std::vector<samplers> & sampler_order, llama_grammar * grammar, float dyna
16131616
sample_grammar(file_format, n_vocab, &candidates_p, grammar);
16141617
}
16151618

1616-
if (nsigma <= 0.0f){
1617-
//dry always first as logits cannot be resorted
1618-
sample_dry(n_ctx, dry_penalty_last_n, dry_multiplier, dry_base, dry_allowed_length, dry_sequence_breakers, &candidates_p);
1619-
}
1619+
//dry always first as logits cannot be resorted
1620+
sample_dry(n_ctx, dry_penalty_last_n, dry_multiplier, dry_base, dry_allowed_length, dry_sequence_breakers, &candidates_p);
16201621

16211622
//prefilter to top 3k tokens for improved speed
16221623
sample_top_k(&candidates_p, 3000);
@@ -1651,7 +1652,6 @@ const std::vector<samplers> & sampler_order, llama_grammar * grammar, float dyna
16511652
sample_temperature(&candidates_p, temp, smoothing_factor);
16521653
}
16531654
sample_top_n_sigma(&candidates_p, nsigma);
1654-
16551655
sample_xtc(&candidates_p, xtc_threshold, xtc_probability, rng);
16561656
id = sample_token(&candidates_p, rng);
16571657
}

klite.embd

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Current version indicated by LITEVER below.
1212
-->
1313

1414
<script>
15-
const LITEVER = 216;
15+
const LITEVER = 217;
1616
const urlParams = new URLSearchParams(window.location.search);
1717
var localflag = true;
1818
const STORAGE_PREFIX = (localflag?"e_":"")+"kaihordewebui_";
@@ -3152,6 +3152,7 @@ Current version indicated by LITEVER below.
31523152
dynatemp_range: 0.0,
31533153
dynatemp_exponent: 1.0,
31543154
smoothing_factor: 0.0,
3155+
nsigma: 0.0,
31553156
top_p: 0.92,
31563157
min_p: 0.00,
31573158
presence_penalty: 0.00,
@@ -3183,6 +3184,7 @@ Current version indicated by LITEVER below.
31833184
dynatemp_range: defaultsettings.dynatemp_range,
31843185
dynatemp_exponent: defaultsettings.dynatemp_exponent,
31853186
smoothing_factor: defaultsettings.smoothing_factor,
3187+
nsigma: defaultsettings.nsigma,
31863188
top_k: defaultsettings.top_k,
31873189
top_p: defaultsettings.top_p,
31883190
min_p: defaultsettings.min_p,
@@ -3195,7 +3197,7 @@ Current version indicated by LITEVER below.
31953197
rep_pen_slope: defaultsettings.rep_pen_slope,
31963198
sampler_order: defaultsettings.sampler_order
31973199
},
3198-
{"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]}
3200+
{"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]}
31993201
];
32003202

32013203
const instructpresets = [
@@ -10614,6 +10616,7 @@ Current version indicated by LITEVER below.
1061410616
document.getElementById("dynatemp_range").value = localsettings.dynatemp_range;
1061510617
document.getElementById("dynatemp_exponent").value = localsettings.dynatemp_exponent;
1061610618
document.getElementById("smoothing_factor").value = localsettings.smoothing_factor;
10619+
document.getElementById("nsigma").value = localsettings.nsigma;
1061710620
document.getElementById("dynatemp_overview").innerText = (localsettings.dynatemp_range>0?"ON":"OFF");
1061810621
document.getElementById("presence_penalty").value = localsettings.presence_penalty;
1061910622
document.getElementById("sampler_seed").value = localsettings.sampler_seed;
@@ -10804,6 +10807,7 @@ Current version indicated by LITEVER below.
1080410807
document.getElementById("dynatemp_range").value = found.dynatemp_range;
1080510808
document.getElementById("dynatemp_exponent").value = found.dynatemp_exponent;
1080610809
document.getElementById("smoothing_factor").value = found.smoothing_factor;
10810+
document.getElementById("nsigma").value = found.nsigma;
1080710811
document.getElementById("top_k").value = document.getElementById("top_k_slide").value = found.top_k;
1080810812
document.getElementById("top_p").value = document.getElementById("top_p_slide").value = found.top_p;
1080910813
document.getElementById("top_a").value = found.top_a;
@@ -10883,6 +10887,7 @@ Current version indicated by LITEVER below.
1088310887
document.getElementById("dynatemp_range").value != found.dynatemp_range ||
1088410888
document.getElementById("dynatemp_exponent").value != found.dynatemp_exponent ||
1088510889
document.getElementById("smoothing_factor").value != found.smoothing_factor ||
10890+
document.getElementById("nsigma").value != found.nsigma ||
1088610891
document.getElementById("top_k").value != found.top_k ||
1088710892
document.getElementById("top_p").value != found.top_p ||
1088810893
document.getElementById("top_a").value != found.top_a ||
@@ -11052,6 +11057,7 @@ Current version indicated by LITEVER below.
1105211057
localsettings.dynatemp_range = parseFloat(document.getElementById("dynatemp_range").value);
1105311058
localsettings.dynatemp_exponent = parseFloat(document.getElementById("dynatemp_exponent").value);
1105411059
localsettings.smoothing_factor = parseFloat(document.getElementById("smoothing_factor").value);
11060+
localsettings.nsigma = parseFloat(document.getElementById("nsigma").value);
1105511061
localsettings.presence_penalty = parseFloat(document.getElementById("presence_penalty").value);
1105611062
localsettings.top_k = parseInt(document.getElementById("top_k").value);
1105711063
localsettings.top_a = parseFloat(document.getElementById("top_a").value);
@@ -11166,6 +11172,7 @@ Current version indicated by LITEVER below.
1116611172
localsettings.dynatemp_range = (localsettings.dynatemp_range>localsettings.temperature?localsettings.temperature:localsettings.dynatemp_range);
1116711173
localsettings.dynatemp_exponent = cleannum(localsettings.dynatemp_exponent, 0.0, 10.0);
1116811174
localsettings.smoothing_factor = cleannum(localsettings.smoothing_factor, 0.0, 10.0);
11175+
localsettings.nsigma = cleannum(localsettings.nsigma, 0.0, 5.0);
1116911176
localsettings.presence_penalty = cleannum(localsettings.presence_penalty, -2, 2);
1117011177
localsettings.top_k = cleannum(Math.floor(localsettings.top_k), 0, 300);
1117111178
localsettings.top_a = cleannum(localsettings.top_a, 0, 1);
@@ -14002,6 +14009,7 @@ Current version indicated by LITEVER below.
1400214009
submit_payload.params.dynatemp_range = localsettings.dynatemp_range;
1400314010
submit_payload.params.dynatemp_exponent = localsettings.dynatemp_exponent;
1400414011
submit_payload.params.smoothing_factor = localsettings.smoothing_factor;
14012+
submit_payload.params.nsigma = localsettings.nsigma;
1400514013
submit_payload.params.banned_tokens = get_token_bans();
1400614014
submit_payload.params.render_special = localsettings.render_special_tags;
1400714015
submit_payload.params.logprobs = localsettings.request_logprobs;
@@ -14647,6 +14655,7 @@ Current version indicated by LITEVER below.
1464714655
submit_payload.params.dynatemp_range = localsettings.dynatemp_range;
1464814656
submit_payload.params.dynatemp_exponent = localsettings.dynatemp_exponent;
1464914657
submit_payload.params.smoothing_factor = localsettings.smoothing_factor;
14658+
submit_payload.params.nsigma = localsettings.nsigma;
1465014659
}
1465114660

1465214661
last_request_str = JSON.stringify(submit_payload);
@@ -21121,6 +21130,11 @@ Current version indicated by LITEVER below.
2112121130
</div>
2112221131
</div>
2112321132
</div>
21133+
<div class="settinglabel settingcell">
21134+
<div title="Top N Sigma. 0 to deactivate." class="justifyleft settingsmall" style="width:100%">T.NSigma</div>
21135+
<div class="justifyleft settingsmall" style="width:100%">
21136+
<input title="Top N Sigma. 0 to deactivate." class="settinglabel miniinput" type="text" inputmode="decimal" placeholder="0" value="0" id="nsigma"></div>
21137+
</div>
2112421138
</div>
2112521139
</div>
2112621140
</div>

koboldcpp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,7 +1117,7 @@ def generate(genparams, stream_flag=False):
11171117
min_p = float(genparams.get('min_p', 0.0))
11181118
typical_p = float(genparams.get('typical', 1.0))
11191119
tfs = float(genparams.get('tfs', 1.0))
1120-
nsigma = float(genparams.get('nsigma', -1.0))
1120+
nsigma = float(genparams.get('nsigma', 0.0))
11211121
rep_pen = float(genparams.get('rep_pen', 1.0))
11221122
rep_pen_range = int(genparams.get('rep_pen_range', 320))
11231123
rep_pen_slope = float(genparams.get('rep_pen_slope', 1.0))

otherarch/otherarch.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ struct kcpp_params {
2929
float top_p = 0.95f; // 1.0 = disabled
3030
float min_p = 0.0f; // 0.0 = disabled
3131
float tfs_z = 1.00f; // 1.0 = disabled
32-
float nsigma = -1.00f; // -1.0 - disabled
32+
float nsigma = 0.00f; // 0.0 - disabled
3333
float typical_p = 1.00f; // 1.0 = disabled
3434
float temp = 0.80f; // 1.0 = disabled
3535
float smoothing_factor = 0.00f; // 0.00 = disabled

0 commit comments

Comments
 (0)