feat: add top nsigma sampler support
| @@ -1294,6 +1294,14 @@ | ||
| 1294 | 1294 | <input class="neo-range-slider" type="range" id="epsilon_cutoff_textgenerationwebui" name="volume" min="0" max="9" step="0.01"> |
| 1295 | 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 | 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 | 1305 | <div data-tg-type="ooba,mancer,aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> |
| 1298 | 1306 | <small> |
| 1299 | 1307 | <span data-i18n="Eta Cutoff">Eta Cutoff</span> |
| @@ -639,6 +639,11 @@ async function CreateZenSliders(elmnt) { | ||
| 639 | 639 | numSteps = 50; |
| 640 | 640 | decimals = 1; |
| 641 | 641 | } |
| 642 | + if (sliderID == 'nsigma' || | |
| 643 | + sliderID == 'nsigma') { | |
| 644 | + numSteps = 50; | |
| 645 | + decimals = 1; | |
| 646 | + } | |
| 642 | 647 | //customize steps |
| 643 | 648 | if (sliderID == 'mirostat_mode_textgenerationwebui' || |
| 644 | 649 | sliderID == 'mirostat_mode_kobold') { |
| @@ -655,6 +660,7 @@ async function CreateZenSliders(elmnt) { | ||
| 655 | 660 | sliderID == 'num_beams_textgenerationwebui' || |
| 656 | 661 | sliderID == 'no_repeat_ngram_size_textgenerationwebui' || |
| 657 | 662 | sliderID == 'epsilon_cutoff_textgenerationwebui' || |
| 663 | + sliderID == 'nsigma' || | |
| 658 | 664 | sliderID == 'tfs_textgenerationwebui' || |
| 659 | 665 | sliderID == 'min_p_textgenerationwebui' || |
| 660 | 666 | sliderID == 'temp_textgenerationwebui' || |
| @@ -683,6 +689,7 @@ async function CreateZenSliders(elmnt) { | ||
| 683 | 689 | sliderID == 'penalty_alpha_textgenerationwebui' || |
| 684 | 690 | sliderID == 'length_penalty_textgenerationwebui' || |
| 685 | 691 | sliderID == 'epsilon_cutoff_textgenerationwebui' || |
| 692 | + sliderID == 'nsigma' || | |
| 686 | 693 | sliderID == 'rep_pen_range' || |
| 687 | 694 | sliderID == 'eta_cutoff_textgenerationwebui' || |
| 688 | 695 | sliderID == 'top_a_textgenerationwebui' || |
| @@ -193,6 +193,7 @@ const settings = { | ||
| 193 | 193 | openrouter_allow_fallbacks: true, |
| 194 | 194 | xtc_threshold: 0.1, |
| 195 | 195 | xtc_probability: 0, |
| 196 | + nsigma: 0.0, | |
| 196 | 197 | featherless_model: '', |
| 197 | 198 | }; |
| 198 | 199 | |
| @@ -265,6 +266,7 @@ export const setting_names = [ | ||
| 265 | 266 | 'openrouter_allow_fallbacks', |
| 266 | 267 | 'xtc_threshold', |
| 267 | 268 | 'xtc_probability', |
| 269 | + 'nsigma', | |
| 268 | 270 | ]; |
| 269 | 271 | |
| 270 | 272 | const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba'); |
| @@ -1178,6 +1180,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate, | ||
| 1178 | 1180 | 'sampler_order': settings.type === textgen_types.KOBOLDCPP ? settings.sampler_order : undefined, |
| 1179 | 1181 | 'xtc_threshold': settings.xtc_threshold, |
| 1180 | 1182 | 'xtc_probability': settings.xtc_probability, |
| 1183 | + 'nsigma': settings.nsigma, | |
| 1181 | 1184 | }; |
| 1182 | 1185 | const nonAphroditeParams = { |
| 1183 | 1186 | 'rep_pen': settings.rep_pen, |
| @@ -1245,6 +1248,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate, | ||
| 1245 | 1248 | 'dynatemp_exponent': dynatemp ? settings.dynatemp_exponent : undefined, |
| 1246 | 1249 | 'xtc_threshold': settings.xtc_threshold, |
| 1247 | 1250 | 'xtc_probability': settings.xtc_probability, |
| 1251 | + 'nsigma': settings.nsigma, | |
| 1248 | 1252 | 'custom_token_bans': toIntArray(banned_tokens), |
| 1249 | 1253 | }; |
| 1250 | 1254 | |