More settings for oobabooga's

This commit is contained in:
SillyLossy
2023-03-23 18:39:41 +02:00
parent 57713c53a3
commit 321ecbec77
3 changed files with 128 additions and 28 deletions

View File

@ -262,7 +262,7 @@
</select>
</div>
<div id="textgenerationwebui_api-presets">
<h3>Text generation presets</h3>
<h3>Text generation web UI presets</h3>
<select id="settings_preset_textgenerationwebui">
<option value="gui">Default</option>
</select>
@ -350,15 +350,43 @@
</div>
<div class="range-block">
<div class="range-block-title">
No repeat ngram size
Encoder Repetition Penalty
</div>
<div class="range-block-counter">
<span id="rep_pen_size_counter_textgenerationwebui">select</span>
<span id="encoder_rep_pen_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="rep_pen_size_textgenerationwebui" name="volume" min="0" max="20" step="1">
<input type="range" id="encoder_rep_pen_textgenerationwebui" name="volume" min="0.8" max="1.5" step="0.01" />
</div>
</div>
<div class="range-block">
<div class="range-block-title">
No Repeat Ngram Size
</div>
<div class="range-block-counter">
<span id="no_repeat_ngram_size_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="no_repeat_ngram_size_textgenerationwebui" name="volume" min="0" max="20" step="1">
</div>
</div>
<div class="range-block">
<div class="range-block-title">
Min Length
</div>
<div class="range-block-counter">
<span id="min_length_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="min_length_textgenerationwebui" name="volume" min="0" max="2000" step="1" />
</div>
</div>
<div class="range-block">
<label class="checkbox_label" for="do_sample_textgenerationwebui">
<input type="checkbox" id="do_sample_textgenerationwebui" />
Do Sample
</label>
</div>
</div>
<div id="range_block_openai">
<div class="range-block">
@ -558,7 +586,7 @@
<span id="top_p_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="top_p_textgenerationwebui" name="volume" min="0" max="1" step="0.1">
<input type="range" id="top_p_textgenerationwebui" name="volume" min="0" max="1" step="0.01">
</div>
</div>
<div class="range-block">
@ -569,9 +597,39 @@
<span id="typical_p_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="typical_p_textgenerationwebui" name="volume" min="0" max="1" step="0.1">
<input type="range" id="typical_p_textgenerationwebui" name="volume" min="0" max="1" step="0.01">
</div>
</div>
<h4>Beam search</h4>
<div class="range-block">
<div class="range-block-title">
Number of Beams
</div>
<div class="range-block-counter">
<span id="num_beams_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="num_beams_textgenerationwebui" name="volume" min="1" max="20" step="1" />
</div>
</div>
<div class="range-block">
<div class="range-block-title">
Length Penalty
</div>
<div class="range-block-counter">
<span id="length_penalty_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="range" id="length_penalty_textgenerationwebui" name="volume" min="-5" max="5" step="0.1" />
</div>
</div>
<div class="range-block">
<label class="checkbox_label" for="early_stopping_textgenerationwebui">
<input type="checkbox" id="early_stopping_textgenerationwebui" />
Early Stopping
</label>
</div>
<h4>Contrastive search</h4>
<div class="range-block">
<div class="range-block-title">
Penalty Alpha
@ -583,6 +641,17 @@
<input type="range" id="penalty_alpha_textgenerationwebui" name="volume" min="0" max="5" step="0.05" />
</div>
</div>
<div class="range-block">
<div class="range-block-title">
Seed
</div>
<div style="display: none" class="range-block-counter">
<span id="seed_counter_textgenerationwebui">select</span>
</div>
<div class="range-block-range">
<input type="number" id="seed_textgenerationwebui" class="text_pole" />
</div>
</div>
</div>
<div id="openai_settings">

View File

@ -1428,25 +1428,24 @@ async function Generate(type, automatic_trigger, force_name2) {//encode("dsfs").
}
if (main_api == 'textgenerationwebui') {
const doSample = textgenerationwebui_settings.penalty_alpha == 0;
var generate_data = {
data: [
finalPromt,
this_amount_gen, // max new tokens
doSample, // do_sample
textgenerationwebui_settings.do_sample, // do_sample
textgenerationwebui_settings.temp, // temperature
textgenerationwebui_settings.top_p, // top_p
textgenerationwebui_settings.typical_p, // typical_p
textgenerationwebui_settings.rep_pen, // repetition_penalty
1.0, // encoder rep pen
textgenerationwebui_settings.encoder_rep_pen, // encoder rep pen
textgenerationwebui_settings.top_k, // top_k
0, // min_length
textgenerationwebui_settings.rep_pen_size, // no_repeat_ngram_size
1, // num_beams
textgenerationwebui_settings.min_length, // min_length
textgenerationwebui_settings.no_repeat_ngram_size, // no_repeat_ngram_size
textgenerationwebui_settings.num_beams, // num_beams
textgenerationwebui_settings.penalty_alpha, // penalty_alpha
1, // length_penalty
false, // early_stopping
-1, // seed
textgenerationwebui_settings.length_penalty, // length_penalty
textgenerationwebui_settings.early_stopping, // early_stopping
textgenerationwebui_settings.seed, // seed
name1, // name1
name2, // name2
"", // Context

View File

@ -8,32 +8,55 @@ export {
}
let textgenerationwebui_settings = {
temp: 0.5,
top_p: 0.9,
top_k: 0,
temp: 0.7,
top_p: 0.5,
top_k: 40,
typical_p: 1,
rep_pen: 1.1,
rep_pen_size: 0,
rep_pen: 1.2,
no_repeat_ngram_size: 0,
penalty_alpha: 0,
num_beams: 1,
length_penalty: 1,
min_length: 0,
encoder_rep_pen: 1,
do_sample: true,
early_stopping: false,
seed: -1,
};
const setting_names = [
"temp",
"rep_pen",
"rep_pen_size",
"no_repeat_ngram_size",
"top_k",
"top_p",
"typical_p",
"penalty_alpha",
"num_beams",
"length_penalty",
"min_length",
"encoder_rep_pen",
"do_sample",
"early_stopping",
"seed",
];
function loadTextGenSettings(settings) {
textgenerationwebui_settings = settings ? settings : textgenerationwebui_settings;
if (settings) {
Object.assign(textgenerationwebui_settings, settings);
}
for (const i of setting_names) {
const val = parseFloat(textgenerationwebui_settings[i]);
$(`#${i}_textgenerationwebui`).val(val);
$(`#${i}_counter_textgenerationwebui`).text(val.toFixed(2));
const isCheckbox = $(`#${i}_textgenerationwebui`).attr('type') == 'checkbox';
if (isCheckbox) {
const val = Boolean(textgenerationwebui_settings[i]);
$(`#${i}_textgenerationwebui`).prop('checked', val);
}
else {
const val = parseFloat(textgenerationwebui_settings[i]);
$(`#${i}_textgenerationwebui`).val(val);
$(`#${i}_counter_textgenerationwebui`).text(val.toFixed(2));
}
}
}
@ -41,10 +64,19 @@ $(document).ready(function() {
for (const i of setting_names) {
$(`#${i}_textgenerationwebui`).attr("x-setting-id", i);
$(document).on("input", `#${i}_textgenerationwebui`, function () {
const isCheckbox = $(this).attr('type') == 'checkbox';
const id = $(this).attr("x-setting-id");
const val = parseFloat($(this).val());
$(`#${id}_counter_textgenerationwebui`).text(val.toFixed(2));
textgenerationwebui_settings[id] = parseFloat(val);
if (isCheckbox) {
const value = $(this).prop('checked');
textgenerationwebui_settings[id] = value;
}
else {
const value = parseFloat($(this).val());
$(`#${id}_counter_textgenerationwebui`).text(value.toFixed(2));
textgenerationwebui_settings[id] = parseFloat(value);
}
saveSettingsDebounced();
});
}