feat: add top nsigma sampler support

ec4cff72fe7970d6c5565b10b1de273a6b7651a9

AlpinDale <alpindale@gmail.com>

3 files changed, +19 -0Showing whitespace changes
public/index.html+8 -0
@@ -1294,6 +1294,14 @@
1294 <input class="neo-range-slider" type="range" id="epsilon_cutoff_textgenerationwebui" name="volume" min="0" max="9" step="0.01">1294 <input class="neo-range-slider" type="range" id="epsilon_cutoff_textgenerationwebui" name="volume" min="0" max="9" step="0.01">
1295 <input class="neo-range-input" type="number" min="0" max="9" step="0.01" data-for="epsilon_cutoff_textgenerationwebui" id="epsilon_cutoff_counter_textgenerationwebui">1295 <input class="neo-range-input" type="number" min="0" max="9" step="0.01" data-for="epsilon_cutoff_textgenerationwebui" id="epsilon_cutoff_counter_textgenerationwebui">
1296 </div>1296 </div>
1297 <div data-tg-type="aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0">
1298 <small>
1299 <span data-i18n="Top nsigma">Top nsigma</span>
1300 <div class="fa-solid fa-circle-info opacity50p" data-i18n="[title]A sampling method that filters logits based on their statistical properties. It keeps tokens within n standard deviations of the maximum logit value, providing a simpler alternative to top-p/top-k sampling while maintaining sampling stability across different temperatures."></div>
1301 </small>
1302 <input class="neo-range-slider" type="range" id="nsigma" name="volume" min="0" max="5" step="0.01">
1303 <input class="neo-range-input" type="number" min="0" max="5" step="0.01" data-for="nsigma" id="nsigma_counter_textgenerationwebui">
1304 </div>
1297 <div data-tg-type="ooba,mancer,aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0">1305 <div data-tg-type="ooba,mancer,aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0">
1298 <small>1306 <small>
1299 <span data-i18n="Eta Cutoff">Eta Cutoff</span>1307 <span data-i18n="Eta Cutoff">Eta Cutoff</span>
public/scripts/power-user.js+7 -0
@@ -639,6 +639,11 @@ async function CreateZenSliders(elmnt) {
639 numSteps = 50;639 numSteps = 50;
640 decimals = 1;640 decimals = 1;
641 }641 }
642 if (sliderID == 'nsigma' ||
643 sliderID == 'nsigma') {
644 numSteps = 50;
645 decimals = 1;
646 }
642 //customize steps647 //customize steps
643 if (sliderID == 'mirostat_mode_textgenerationwebui' ||648 if (sliderID == 'mirostat_mode_textgenerationwebui' ||
644 sliderID == 'mirostat_mode_kobold') {649 sliderID == 'mirostat_mode_kobold') {
@@ -655,6 +660,7 @@ async function CreateZenSliders(elmnt) {
655 sliderID == 'num_beams_textgenerationwebui' ||660 sliderID == 'num_beams_textgenerationwebui' ||
656 sliderID == 'no_repeat_ngram_size_textgenerationwebui' ||661 sliderID == 'no_repeat_ngram_size_textgenerationwebui' ||
657 sliderID == 'epsilon_cutoff_textgenerationwebui' ||662 sliderID == 'epsilon_cutoff_textgenerationwebui' ||
663 sliderID == 'nsigma' ||
658 sliderID == 'tfs_textgenerationwebui' ||664 sliderID == 'tfs_textgenerationwebui' ||
659 sliderID == 'min_p_textgenerationwebui' ||665 sliderID == 'min_p_textgenerationwebui' ||
660 sliderID == 'temp_textgenerationwebui' ||666 sliderID == 'temp_textgenerationwebui' ||
@@ -683,6 +689,7 @@ async function CreateZenSliders(elmnt) {
683 sliderID == 'penalty_alpha_textgenerationwebui' ||689 sliderID == 'penalty_alpha_textgenerationwebui' ||
684 sliderID == 'length_penalty_textgenerationwebui' ||690 sliderID == 'length_penalty_textgenerationwebui' ||
685 sliderID == 'epsilon_cutoff_textgenerationwebui' ||691 sliderID == 'epsilon_cutoff_textgenerationwebui' ||
692 sliderID == 'nsigma' ||
686 sliderID == 'rep_pen_range' ||693 sliderID == 'rep_pen_range' ||
687 sliderID == 'eta_cutoff_textgenerationwebui' ||694 sliderID == 'eta_cutoff_textgenerationwebui' ||
688 sliderID == 'top_a_textgenerationwebui' ||695 sliderID == 'top_a_textgenerationwebui' ||
public/scripts/textgen-settings.js+4 -0
@@ -193,6 +193,7 @@ const settings = {
193 openrouter_allow_fallbacks: true,193 openrouter_allow_fallbacks: true,
194 xtc_threshold: 0.1,194 xtc_threshold: 0.1,
195 xtc_probability: 0,195 xtc_probability: 0,
196 nsigma: 0.0,
196 featherless_model: '',197 featherless_model: '',
197};198};
198199
@@ -265,6 +266,7 @@ export const setting_names = [
265 'openrouter_allow_fallbacks',266 'openrouter_allow_fallbacks',
266 'xtc_threshold',267 'xtc_threshold',
267 'xtc_probability',268 'xtc_probability',
269 'nsigma',
268];270];
269271
270const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba');272const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba');
@@ -1178,6 +1180,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate,
1178 'sampler_order': settings.type === textgen_types.KOBOLDCPP ? settings.sampler_order : undefined,1180 'sampler_order': settings.type === textgen_types.KOBOLDCPP ? settings.sampler_order : undefined,
1179 'xtc_threshold': settings.xtc_threshold,1181 'xtc_threshold': settings.xtc_threshold,
1180 'xtc_probability': settings.xtc_probability,1182 'xtc_probability': settings.xtc_probability,
1183 'nsigma': settings.nsigma,
1181 };1184 };
1182 const nonAphroditeParams = {1185 const nonAphroditeParams = {
1183 'rep_pen': settings.rep_pen,1186 'rep_pen': settings.rep_pen,
@@ -1245,6 +1248,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate,
1245 'dynatemp_exponent': dynatemp ? settings.dynatemp_exponent : undefined,1248 'dynatemp_exponent': dynatemp ? settings.dynatemp_exponent : undefined,
1246 'xtc_threshold': settings.xtc_threshold,1249 'xtc_threshold': settings.xtc_threshold,
1247 'xtc_probability': settings.xtc_probability,1250 'xtc_probability': settings.xtc_probability,
1251 'nsigma': settings.nsigma,
1248 'custom_token_bans': toIntArray(banned_tokens),1252 'custom_token_bans': toIntArray(banned_tokens),
1249 };1253 };
12501254