Add Adaptive-P settings (#4945) * TC: Add Adaptive-P settings and UI elements * Improve compatibility with sampler select
Signed| @@ -564,3 +564,7 @@ label[for="bind_preset_to_connection"]:has(input:checked) { | ||
| 564 | 564 | #request_images_block:has(#openai_request_images:not(:checked)) #request_images_settings { |
| 565 | 565 | display: none; |
| 566 | 566 | } |
| 567 | + | |
| 568 | +#adaptive_p_block:has([data-tg-samplers="adaptive_target"][style*="display: none"]):has([data-tg-samplers="adaptive_decay"][style*="display: none"]) { | |
| 569 | + display: none; | |
| 570 | +} | |
| @@ -1399,6 +1399,28 @@ | ||
| 1399 | 1399 | <input class="neo-range-slider" type="range" id="max_tokens_second_textgenerationwebui" name="volume" min="0" max="20" step="1" /> |
| 1400 | 1400 | <input class="neo-range-input" type="number" min="0" max="20" step="1" data-for="max_tokens_second_textgenerationwebui" id="max_tokens_second_counter_textgenerationwebui"> |
| 1401 | 1401 | </div> |
| 1402 | + | |
| 1403 | + <div data-tg-type="koboldcpp" id="adaptive_p_block" class="wide100p"> | |
| 1404 | + <h4 class="wide100p textAlignCenter"> | |
| 1405 | + <label data-i18n="Adaptive-P">Adaptive-P</label> | |
| 1406 | + <a href="https://github.com/MrJackSpade/adaptive-p-docs" target="_blank"> | |
| 1407 | + <div class="fa-solid fa-circle-info opacity50p"></div> | |
| 1408 | + </a> | |
| 1409 | + </h4> | |
| 1410 | + <div class="flex-container flexFlowRow alignitemscenter gap10px flexShrink"> | |
| 1411 | + <div data-tg-samplers="adaptive_target" class="alignitemscenter flex-container marginBot5 flexFlowColumn flexGrow flexShrink gap0"> | |
| 1412 | + <small data-i18n="Target">Target</small> | |
| 1413 | + <input class="neo-range-slider" type="range" id="adaptive_target_textgenerationwebui" min="-0.01" max="1" step="0.01" /> | |
| 1414 | + <input class="neo-range-input" type="number" min="-0.01" max="1" step="0.01" data-for="adaptive_target_textgenerationwebui" id="adaptive_target_counter_textgenerationwebui"> | |
| 1415 | + </div> | |
| 1416 | + <div data-tg-samplers="adaptive_decay" class="alignitemscenter flex-container marginBot5 flexFlowColumn flexGrow flexShrink gap0"> | |
| 1417 | + <small data-i18n="Decay">Decay</small> | |
| 1418 | + <input class="neo-range-slider" type="range" id="adaptive_decay_textgenerationwebui" min="0" max="0.99" step="0.01" /> | |
| 1419 | + <input class="neo-range-input" type="number" min="0" max="0.99" step="0.01" data-for="adaptive_decay_textgenerationwebui" id="adaptive_decay_counter_textgenerationwebui"> | |
| 1420 | + </div> | |
| 1421 | + </div> | |
| 1422 | + </div> | |
| 1423 | + | |
| 1402 | 1424 | <div data-tg-type="mancer, ooba, koboldcpp, aphrodite, tabby" data-tg-samplers="smoothing_factor" id="smoothingBlock" name="smoothingBlock" class="wide100p"> |
| 1403 | 1425 | <h4 class="wide100p textAlignCenter"> |
| 1404 | 1426 | <label data-i18n="Smooth Sampling">Smooth Sampling</label> |
| @@ -221,7 +221,7 @@ async function listSamplers(main_api, arrayOnly = false) { | ||
| 221 | 221 | let availableSamplers; |
| 222 | 222 | if (main_api === 'textgenerationwebui') { |
| 223 | 223 | availableSamplers = TGsamplerNames; |
| 224 | 224 | const valuesToRemove = new Set(['streaming', 'bypass_status_check', 'custom_model', 'legacy_api', 'extensions']); |
| 225 | 225 | availableSamplers = availableSamplers.filter(sampler => !valuesToRemove.has(sampler)); |
| 226 | 226 | availableSamplers.sort(); |
| 227 | 227 | } |
| @@ -229,6 +229,8 @@ export const textgenerationwebui_settings = { | ||
| 229 | 229 | featherless_model: '', |
| 230 | 230 | generic_model: '', |
| 231 | 231 | extensions: {}, |
| 232 | + adaptive_target: -0.01, | |
| 233 | + adaptive_decay: 0.9, | |
| 232 | 234 | }; |
| 233 | 235 | |
| 234 | 236 | export { |
| @@ -313,6 +315,8 @@ export const setting_names = [ | ||
| 313 | 315 | 'generic_model', |
| 314 | 316 | 'extensions', |
| 315 | 317 | 'json_schema_allow_empty', |
| 318 | + 'adaptive_target', | |
| 319 | + 'adaptive_decay', | |
| 316 | 320 | ]; |
| 317 | 321 | |
| 318 | 322 | const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba'); |
| @@ -989,6 +993,8 @@ export function initTextGenSettings() { | ||
| 989 | 993 | 'xtc_probability_textgenerationwebui': 0, |
| 990 | 994 | 'nsigma_textgenerationwebui': 0, |
| 991 | 995 | 'min_keep_textgenerationwebui': 0, |
| 996 | + 'adaptive_target_textgenerationwebui': -0.01, | |
| 997 | + 'adaptive_decay_textgenerationwebui': 0.9, | |
| 992 | 998 | }; |
| 993 | 999 | |
| 994 | 1000 | for (const [id, value] of Object.entries(inputs)) { |
| @@ -1630,6 +1636,8 @@ export function createTextGenGenerationData(settings, model, finalPrompt = null, | ||
| 1630 | 1636 | 'nsigma': settings.nsigma, |
| 1631 | 1637 | 'top_n_sigma': settings.nsigma, |
| 1632 | 1638 | 'min_keep': settings.min_keep, |
| 1639 | + 'adaptive_target': settings.adaptive_target, | |
| 1640 | + 'adaptive_decay': settings.adaptive_decay, | |
| 1633 | 1641 | parseSequenceBreakers: function () { |
| 1634 | 1642 | try { |
| 1635 | 1643 | return JSON.parse(this.dry_sequence_breakers); |