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> </select>
</div> </div>
<div id="textgenerationwebui_api-presets"> <div id="textgenerationwebui_api-presets">
<h3>Text generation presets</h3> <h3>Text generation web UI presets</h3>
<select id="settings_preset_textgenerationwebui"> <select id="settings_preset_textgenerationwebui">
<option value="gui">Default</option> <option value="gui">Default</option>
</select> </select>
@ -350,15 +350,43 @@
</div> </div>
<div class="range-block"> <div class="range-block">
<div class="range-block-title"> <div class="range-block-title">
No repeat ngram size Encoder Repetition Penalty
</div> </div>
<div class="range-block-counter"> <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>
<div class="range-block-range"> <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> </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>
<div id="range_block_openai"> <div id="range_block_openai">
<div class="range-block"> <div class="range-block">
@ -558,7 +586,7 @@
<span id="top_p_counter_textgenerationwebui">select</span> <span id="top_p_counter_textgenerationwebui">select</span>
</div> </div>
<div class="range-block-range"> <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> </div>
<div class="range-block"> <div class="range-block">
@ -569,9 +597,39 @@
<span id="typical_p_counter_textgenerationwebui">select</span> <span id="typical_p_counter_textgenerationwebui">select</span>
</div> </div>
<div class="range-block-range"> <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>
</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">
<div class="range-block-title"> <div class="range-block-title">
Penalty Alpha Penalty Alpha
@ -583,6 +641,17 @@
<input type="range" id="penalty_alpha_textgenerationwebui" name="volume" min="0" max="5" step="0.05" /> <input type="range" id="penalty_alpha_textgenerationwebui" name="volume" min="0" max="5" step="0.05" />
</div> </div>
</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>
<div id="openai_settings"> <div id="openai_settings">

View File

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

View File

@ -8,43 +8,75 @@ export {
} }
let textgenerationwebui_settings = { let textgenerationwebui_settings = {
temp: 0.5, temp: 0.7,
top_p: 0.9, top_p: 0.5,
top_k: 0, top_k: 40,
typical_p: 1, typical_p: 1,
rep_pen: 1.1, rep_pen: 1.2,
rep_pen_size: 0, no_repeat_ngram_size: 0,
penalty_alpha: 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 = [ const setting_names = [
"temp", "temp",
"rep_pen", "rep_pen",
"rep_pen_size", "no_repeat_ngram_size",
"top_k", "top_k",
"top_p", "top_p",
"typical_p", "typical_p",
"penalty_alpha", "penalty_alpha",
"num_beams",
"length_penalty",
"min_length",
"encoder_rep_pen",
"do_sample",
"early_stopping",
"seed",
]; ];
function loadTextGenSettings(settings) { function loadTextGenSettings(settings) {
textgenerationwebui_settings = settings ? settings : textgenerationwebui_settings; if (settings) {
Object.assign(textgenerationwebui_settings, settings);
}
for (const i of setting_names) { for (const i of setting_names) {
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]); const val = parseFloat(textgenerationwebui_settings[i]);
$(`#${i}_textgenerationwebui`).val(val); $(`#${i}_textgenerationwebui`).val(val);
$(`#${i}_counter_textgenerationwebui`).text(val.toFixed(2)); $(`#${i}_counter_textgenerationwebui`).text(val.toFixed(2));
} }
} }
}
$(document).ready(function() { $(document).ready(function() {
for (const i of setting_names) { for (const i of setting_names) {
$(`#${i}_textgenerationwebui`).attr("x-setting-id", i); $(`#${i}_textgenerationwebui`).attr("x-setting-id", i);
$(document).on("input", `#${i}_textgenerationwebui`, function () { $(document).on("input", `#${i}_textgenerationwebui`, function () {
const isCheckbox = $(this).attr('type') == 'checkbox';
const id = $(this).attr("x-setting-id"); const id = $(this).attr("x-setting-id");
const val = parseFloat($(this).val());
$(`#${id}_counter_textgenerationwebui`).text(val.toFixed(2)); if (isCheckbox) {
textgenerationwebui_settings[id] = parseFloat(val); 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(); saveSettingsDebounced();
}); });
} }