mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Add explanation for advanced settings
This commit is contained in:
@ -506,8 +506,11 @@
|
||||
<hr>
|
||||
|
||||
<div id="ai-presets-and-config-block">
|
||||
<h4>Preset settings <a href="/notes/4" class="notes-link" target="_blank"><span
|
||||
class="note-link-span">?</span></a></h4>
|
||||
<h3>Preset settings
|
||||
<a href="/notes/4" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h3>
|
||||
<select id="settings_perset">
|
||||
<option value="gui">GUI KoboldAI Settings</option>
|
||||
</select>
|
||||
@ -545,7 +548,11 @@
|
||||
</div>
|
||||
<div class="drawer">
|
||||
<div class="drawer-toggle drawer-header">
|
||||
<h3>Advanced Settings</h3>
|
||||
<h3>Advanced Settings
|
||||
<a href="/notes/kai_advanced" class="notes-link" target="_blank">
|
||||
<span class="note-link-span">?</span>
|
||||
</a>
|
||||
</h3>
|
||||
<div class="drawer-icon down"></div>
|
||||
</div>
|
||||
<div class="drawer-content">
|
||||
|
78
public/notes/kai_advanced.html
Normal file
78
public/notes/kai_advanced.html
Normal file
@ -0,0 +1,78 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Advanced Settings</title>
|
||||
<link rel="stylesheet" href="/css/notes.css">
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"
|
||||
rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="main">
|
||||
<div id="content">
|
||||
<h2>Advanced Settings</h2>
|
||||
<p>
|
||||
The settings provided in this section offer a more detailed level of control over the text generation
|
||||
process. It is important to be careful when making changes to these settings without proper
|
||||
consideration, as doing so may result in degraded quality of responses.
|
||||
</p>
|
||||
<h3>Top P Sampling</h3>
|
||||
<p>
|
||||
This setting controls how much of the text generated is based on the most likely options.
|
||||
The top P words with the highest probabilities are considered. A word is then chosen at random, with a
|
||||
higher chance of selecting words with higher probabilities.
|
||||
</p>
|
||||
<p>
|
||||
Set value to 1 to disable its effect.
|
||||
</p>
|
||||
<h3>Top K Sampling</h3>
|
||||
<p>
|
||||
This setting limits the number of words to choose from to the top K most likely options. Can be used
|
||||
together with Top P sampling.
|
||||
</p>
|
||||
<p>
|
||||
Set value to 0 to disable its effect.
|
||||
</p>
|
||||
<h3>Top A Sampling</h3>
|
||||
<p>
|
||||
This setting allows for a more flexible version of sampling, where the number of words chosen from
|
||||
the most likely options is automatically determined based on the likelihood distribution of the options,
|
||||
but instead of choosing the top P or K words, it chooses all words with probabilities above a certain
|
||||
threshold.
|
||||
</p>
|
||||
<p>
|
||||
Set value to 0 to disable its effect.
|
||||
</p>
|
||||
<h3>Typical Sampling</h3>
|
||||
<p>
|
||||
This setting selects words randomly from the list of possible words, with each word having an equal
|
||||
chance of being selected. This method can produce text that is more diverse but may also be less
|
||||
coherent.
|
||||
</p>
|
||||
<p>
|
||||
Set value to 1 to disable its effect.
|
||||
</p>
|
||||
<h3>Tail Free Sampling</h3>
|
||||
<p>
|
||||
This setting removes the least probable words from consideration during text generation, which can
|
||||
improve the quality and coherence of the generated text.
|
||||
</p>
|
||||
<p>
|
||||
Set value to 1 to disable its effect.
|
||||
</p>
|
||||
<h3>Repetition Penalty Slope</h3>
|
||||
<p>
|
||||
If both this and Repetition Penalty Range are below 0, then repetition penalty will have more effect
|
||||
closer to the end of the prompt. The higher the value, the stronger the effect.
|
||||
</p>
|
||||
<p>Set value to 1 for linear interpolation or 0 to disable interpolation.</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
83
public/scripts/kai-settings.js
Normal file
83
public/scripts/kai-settings.js
Normal file
@ -0,0 +1,83 @@
|
||||
import {
|
||||
saveSettingsDebounced,
|
||||
} from "../script.js";
|
||||
|
||||
export {
|
||||
kai_settings,
|
||||
loadKoboldSettings,
|
||||
};
|
||||
|
||||
const kai_settings = {
|
||||
top_p: 1,
|
||||
top_a: 1,
|
||||
top_k: 0,
|
||||
typical: 1,
|
||||
tfs: 1,
|
||||
rep_pen_slope: 0.9,
|
||||
};
|
||||
|
||||
function loadKoboldSettings(preset) {
|
||||
for (const name of Object.keys(kai_settings)) {
|
||||
kai_settings[name] = preset[name];
|
||||
$(`#${name}`).val(kai_settings[name]);
|
||||
$(`#${name}_counter`).text(kai_settings[name]);
|
||||
}
|
||||
}
|
||||
|
||||
// Cohee's TODO: Merge with sliders block in script.js
|
||||
const sliders = [
|
||||
{
|
||||
sliderId: "#top_p",
|
||||
counterId: "#top_p_counter",
|
||||
format: (val) => val,
|
||||
setValue: (val) => { kai_settings.top_p = Number(val); },
|
||||
},
|
||||
{
|
||||
sliderId: "#top_a",
|
||||
counterId: "#top_a_counter",
|
||||
format: (val) => val,
|
||||
setValue: (val) => { kai_settings.top_a = Number(val); },
|
||||
},
|
||||
{
|
||||
sliderId: "#top_k",
|
||||
counterId: "#top_k_counter",
|
||||
format: (val) => val,
|
||||
setValue: (val) => { kai_settings.top_k = Number(val); },
|
||||
},
|
||||
{
|
||||
sliderId: "#typical",
|
||||
counterId: "#typical_counter",
|
||||
format: (val) => val,
|
||||
setValue: (val) => { kai_settings.typical = Number(val); },
|
||||
},
|
||||
{
|
||||
sliderId: "#tfs",
|
||||
counterId: "#tfs_counter",
|
||||
format: (val) => val,
|
||||
setValue: (val) => { kai_settings.tfs = Number(val); },
|
||||
},
|
||||
{
|
||||
sliderId: "#rep_pen_slope",
|
||||
counterId: "#rep_pen_slope_counter",
|
||||
format: (val) => val,
|
||||
setValue: (val) => { kai_settings.rep_pen_slope = Number(val); },
|
||||
},
|
||||
];
|
||||
|
||||
$(document).ready(function () {
|
||||
$('.drawer-toggle').click(function () {
|
||||
var icon = $(this).find('.drawer-icon');
|
||||
icon.toggleClass('down up');
|
||||
$(this).closest('.drawer').find('.drawer-content').slideToggle();
|
||||
});
|
||||
|
||||
sliders.forEach(slider => {
|
||||
$(document).on("input", slider.sliderId, function () {
|
||||
const value = $(this).val();
|
||||
const formattedValue = slider.format(value);
|
||||
slider.setValue(value);
|
||||
$(slider.counterId).html(formattedValue);
|
||||
saveSettingsDebounced();
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user