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 | #request_images_block:has(#openai_request_images:not(:checked)) #request_images_settings { | 564 | #request_images_block:has(#openai_request_images:not(:checked)) #request_images_settings { |
| 565 | display: none; | 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 | <input class="neo-range-slider" type="range" id="max_tokens_second_textgenerationwebui" name="volume" min="0" max="20" step="1" /> | 1399 | <input class="neo-range-slider" type="range" id="max_tokens_second_textgenerationwebui" name="volume" min="0" max="20" step="1" /> |
| 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"> | 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 | </div> | 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 | <div data-tg-type="mancer, ooba, koboldcpp, aphrodite, tabby" data-tg-samplers="smoothing_factor" id="smoothingBlock" name="smoothingBlock" class="wide100p"> | 1424 | <div data-tg-type="mancer, ooba, koboldcpp, aphrodite, tabby" data-tg-samplers="smoothing_factor" id="smoothingBlock" name="smoothingBlock" class="wide100p"> |
| 1403 | <h4 class="wide100p textAlignCenter"> | 1425 | <h4 class="wide100p textAlignCenter"> |
| 1404 | <label data-i18n="Smooth Sampling">Smooth Sampling</label> | 1426 | <label data-i18n="Smooth Sampling">Smooth Sampling</label> |
| @@ -221,7 +221,7 @@ async function listSamplers(main_api, arrayOnly = false) { | |||
| 221 | let availableSamplers; | 221 | let availableSamplers; |
| 222 | if (main_api === 'textgenerationwebui') { | 222 | if (main_api === 'textgenerationwebui') { |
| 223 | availableSamplers = TGsamplerNames; | 223 | availableSamplers = TGsamplerNames; |
| 224 | const valuesToRemove = new Set(['streaming', 'bypass_status_check', 'custom_model', 'legacy_api']); | 224 | const valuesToRemove = new Set(['streaming', 'bypass_status_check', 'custom_model', 'legacy_api', 'extensions']); |
| 225 | availableSamplers = availableSamplers.filter(sampler => !valuesToRemove.has(sampler)); | 225 | availableSamplers = availableSamplers.filter(sampler => !valuesToRemove.has(sampler)); |
| 226 | availableSamplers.sort(); | 226 | availableSamplers.sort(); |
| 227 | } | 227 | } |
| @@ -229,6 +229,8 @@ export const textgenerationwebui_settings = { | |||
| 229 | featherless_model: '', | 229 | featherless_model: '', |
| 230 | generic_model: '', | 230 | generic_model: '', |
| 231 | extensions: {}, | 231 | extensions: {}, |
| 232 | adaptive_target: -0.01, | ||
| 233 | adaptive_decay: 0.9, | ||
| 232 | }; | 234 | }; |
| 233 | 235 | ||
| 234 | export { | 236 | export { |
| @@ -313,6 +315,8 @@ export const setting_names = [ | |||
| 313 | 'generic_model', | 315 | 'generic_model', |
| 314 | 'extensions', | 316 | 'extensions', |
| 315 | 'json_schema_allow_empty', | 317 | 'json_schema_allow_empty', |
| 318 | 'adaptive_target', | ||
| 319 | 'adaptive_decay', | ||
| 316 | ]; | 320 | ]; |
| 317 | 321 | ||
| 318 | const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba'); | 322 | const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba'); |
| @@ -989,6 +993,8 @@ export function initTextGenSettings() { | |||
| 989 | 'xtc_probability_textgenerationwebui': 0, | 993 | 'xtc_probability_textgenerationwebui': 0, |
| 990 | 'nsigma_textgenerationwebui': 0, | 994 | 'nsigma_textgenerationwebui': 0, |
| 991 | 'min_keep_textgenerationwebui': 0, | 995 | 'min_keep_textgenerationwebui': 0, |
| 996 | 'adaptive_target_textgenerationwebui': -0.01, | ||
| 997 | 'adaptive_decay_textgenerationwebui': 0.9, | ||
| 992 | }; | 998 | }; |
| 993 | 999 | ||
| 994 | for (const [id, value] of Object.entries(inputs)) { | 1000 | for (const [id, value] of Object.entries(inputs)) { |
| @@ -1630,6 +1636,8 @@ export function createTextGenGenerationData(settings, model, finalPrompt = null, | |||
| 1630 | 'nsigma': settings.nsigma, | 1636 | 'nsigma': settings.nsigma, |
| 1631 | 'top_n_sigma': settings.nsigma, | 1637 | 'top_n_sigma': settings.nsigma, |
| 1632 | 'min_keep': settings.min_keep, | 1638 | 'min_keep': settings.min_keep, |
| 1639 | 'adaptive_target': settings.adaptive_target, | ||
| 1640 | 'adaptive_decay': settings.adaptive_decay, | ||
| 1633 | parseSequenceBreakers: function () { | 1641 | parseSequenceBreakers: function () { |
| 1634 | try { | 1642 | try { |
| 1635 | return JSON.parse(this.dry_sequence_breakers); | 1643 | return JSON.parse(this.dry_sequence_breakers); |