koboldcpp/tools
Konrad Moren 96278e39fc
CUDA: Add backend sampler for penalties sampler (#25262)
* sampling: enhance penalty handling in common_sampler_init

- Set default value for penalty_last_n based on model context if not specified.
- Ensure penalty_last_n and n_prev are non-negative.
- Update llama_sampler_penalties structure to inherit from llama_sampler_backend and add backend input handling for penalties.
- Implement backend initialization and application logic for penalties, including frequency and presence adjustments.

* tests: add backend penalties sampling tests and utility functions

- Introduced `accept_prompt` and `unique_prompt_tokens` functions to handle prompt acceptance and token uniqueness.
- Implemented `compare_penalties_logits` to compare logits from backend and CPU samplers with penalties.
- Added `test_backend_penalties_sampling` to validate backend penalties with various configurations.
- Enhanced the test suite for better coverage of penalty handling in sampling.

* sampling: add support for top-k penalties in backend sampling

* sampling: add fix to ensure  stable numerical results. Preserve masked logits as -Inf and no longer generate NaN.

* sampling: enhance penalty comparison tests with masking penalties logic

* add comments on padding

* sampling: add comments on modifications

* add the unit test to cover masked-out token as -INF

* validate repeat penalty to ensure it is finite and greater than 0; add tests for invalid values

* refactor: test functions to share logic and be less verbose

* add test to cover case where previously penalized token is not part of candidates

* remove comments

* remove redundant penalty_last_n initialization and validation in common_sampler_init

* add support for penalties in sampler chain with configurable positions

* add validation for penalty parameters and enhance tests for non-finite values

* add context parameter to common_sampler_init and set default for penalty_last_n

* add llama_n_ctx parameter to common_sampler_init for improved sampler initialization

* replace penalty_last_n x n_candidates comparison matrix with a vocabulary-sized count tensor

* add tests for backend penalties sampling without filler entries , token_count.size() == n_active == n_max == 64

* add test for backend penalties sampling  after top-p with large history window

* remove as unused

* add is_disabled method, tensor logits reshape, add rest review suggestions

* clarify comment
2026-08-03 14:26:09 +02:00
..
batched-bench cmake : add install() for impl libraries + fix apple builds (#23511) 2026-05-22 11:46:26 +03:00
cli cli : persist reasoning_content in chat history (#26362) 2026-08-01 18:03:32 +02:00
completion args: add -lm mlock where it mlocks but doesnt mmap (#26135) 2026-07-27 16:44:08 +08:00
cvector-generator libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
export-lora docs: fix export-lora --lora-scaled syntax [no release] (#24703) 2026-06-18 16:46:17 +02:00
fit-params cmake : add install() for impl libraries + fix apple builds (#23511) 2026-05-22 11:46:26 +03:00
gguf-split libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
imatrix Move duplicated imatrix code into single common imatrix-loader.cpp (#22445) 2026-06-04 17:45:40 +02:00
llama-bench common : add common_print_available_devices() (#26170) 2026-07-27 18:19:59 +02:00
mtmd mtmd: add minicpmv46 downsample (#25993) 2026-08-01 13:38:36 +02:00
parser chat : enable tool call in thinking for DS4 (#26269) 2026-08-01 00:13:07 -05:00
perplexity perplexity : fix format specifier in LOG_ERR (#23788) 2026-05-28 10:34:58 +03:00
quantize Add Q2_0 quantization: type definition and CPU backend (#24448) 2026-07-07 12:05:47 -07:00
results libs : rename libcommon -> libllama-common (#21936) 2026-04-17 11:11:46 +03:00
rpc binaries : Improve rpc-server and export-graph-ops names. (#25045) 2026-06-27 10:31:29 +03:00
server CUDA: Add backend sampler for penalties sampler (#25262) 2026-08-03 14:26:09 +02:00
tokenize tokenize : drop --stdin mutual-exclusion check (#25672) 2026-07-15 18:41:51 +02:00
tts logs : reduce (#23021) 2026-05-14 13:05:52 +03:00
ui test: fix some CI errors (#26415) 2026-08-02 00:16:29 +02:00
CMakeLists.txt cmake: skip cvector-generator and export-lora when CPU backend is disabled (#24053) 2026-06-04 13:13:19 +03:00