Commit Graph

14753 Commits

Author SHA1 Message Date
Concedo 7098c9c53f Merge commit '0b14b87d7c20cb753b94b96854dd7b45306fc696' into concedo_experimental
# Conflicts:
#	.github/workflows/build-cpu.yml
#	.github/workflows/release.yml
#	AGENTS.md
#	ggml/src/ggml-opencl/ggml-opencl.cpp
#	ggml/src/ggml-sycl/common.hpp
#	ggml/src/ggml-sycl/ggml-sycl.cpp
#	ggml/src/ggml-webgpu/ggml-webgpu-shader-lib.hpp
#	ggml/src/ggml-webgpu/ggml-webgpu.cpp
#	ggml/src/ggml-webgpu/wgsl-shaders/repeat.wgsl
#	src/models/qwen3next.cpp
#	tests/test-backend-ops.cpp
#	tests/test-chat-peg-parser.cpp
#	tests/test-chat.cpp
#	tests/test-llama-archs.cpp
#	tests/test-recurrent-state-rollback.cpp
2026-08-07 18:04:33 +08:00
Concedo 569532f7e4 improve image gen display 2026-08-07 15:21:42 +08:00
Concedo d49b7a62e8 fixed compile order 2026-08-07 14:44:54 +08:00
Concedo 0132829017 openai image edit endpoint 2026-08-07 14:40:54 +08:00
Concedo 927b997345 autoswap for oai images 2026-08-07 14:30:23 +08:00
Concedo 28e98198db handle race condition for image preview 2026-08-07 10:21:20 +08:00
Concedo 61bfce83de fix some issues with the preview image: Preview generation is disabled by default and only done when requested
Cleared stale generation state at job start/end.
Fixed the animated preview GIF buffer leak.
2026-08-07 00:19:39 +08:00
Wagner Bruna e3cb5e9e44 sd: support for the /sdapi/v1/progress endpoint (#2316)
Co-authored-by: LostRuins Concedo <39025047+LostRuins@users.noreply.github.com>
2026-08-06 23:52:31 +08:00
Concedo 910ab962eb load lora at runtime, to solve eager/lazy loading bug 2026-08-06 23:43:49 +08:00
Wagner Bruna 0ddb9190c8 sd: sync with master-812-ea7f0c8 (#2371)
* sd: sync with master-801-9cfe2af

* sd: sync with master-802-e92e86f

* sd: sync with master-805-e31a86c

* sd: sync with master-810-db99efd

* sd: sync with master-812-ea7f0c8

* sd: minimax-h3 support
2026-08-06 23:42:23 +08:00
Concedo a8a8371229 increase max lora to 10 2026-08-06 22:31:52 +08:00
Concedo 348f7bf7f4 fix autoswap 2026-08-06 22:01:45 +08:00
Tai An 9fdd21de1b fix(router): don't let an unmatched model field block autoswap (#2384) (#2387)
In autoswap mode, a POST to /v1/completions or /v1/chat/completions
carrying a `model` name that is not an entry in the admin dir set
`model_switch_pass = True` before checking the whitelist. No swap was
performed, but the flag suppressed the request-type dispatch below it,
so the text model was never loaded on demand.

The same requests without a `model` field, and every other model type
(stt/tts/embed/music/image), skip that branch entirely and load fine --
which is why only chat was affected, and why sending one model-less
request worked around it. It also recurs after --adminunloadtimeout
fires, since the "nomodel" state is recovered from by that same
dispatch.

Only set the flag on the path that actually issues the reload.
2026-08-06 21:58:44 +08:00
Julien BODIN 152e080b6a Add Mistral [THINK]/[/THINK] thinking format (mistral3 arch) (#2380)
The reasoning budget derived from reasoning_effort never applied to Mistral
models. gpttype_adapter.cpp picks the think delimiters from a switch on the
model architecture, and mistral3 has no case, so it falls back to <think> /
</think>. Those are not vocabulary tokens for Ministral-3, so TokenizeString
returns more than one token each, the expected_start/end_tokens guard clears
all three vectors, and apply_reasoning_budget() returns at its first if.
The parameter is accepted, converted and passed down to the sampler, then
dropped on a size check, with nothing logged.

Adding the mistral3 case arms the budget. [THINK] and [/THINK] are single
vocabulary tokens (ids 34 and 35 on Ministral-3), so the size guard passes.

The thinkformats entry is a separate fix for a separate defect: without it the
thinking block was never split out, so it leaked into content with its [THINK]
marker still in it, instead of going to reasoning_content.

Measured on Ministral-3-14B-Reasoning-2512 (IQ4_XS, ctx 8192, --jinja), 5 real
prompts x 3 samples per cell, max_tokens 3000 (so a 750-token budget at "low"):

  reasoning_effort   thinking words before      thinking words after
  none               311 - 2314                 7 (the forced-close phrase)
  low                340 - 2255                 521 - 574

Forced closes: 0/15 before, 14/15 after at "low" and 15/15 at "none". Three
samples per cell because this model's variance at temperature 0.7 spans a
factor of 4 on an identical payload — a single sample per cell cannot tell an
effect from noise.

No regression on a non-reasoning mistral3 model: Ministral-3-8B-Instruct with
reasoning_effort "low" returns finish_reason "stop", a normal answer and zero
forced closes, since apply_reasoning_budget() bails out when the start marker
never appears.
2026-08-05 18:51:55 +08:00
Concedo 4dc9df05f6 increase max images 2026-08-05 14:30:32 +08:00
Xuan-Son Nguyen 0b14b87d7c server: add notice for upcoming default port change 8080 --> 9931 (#26508)
* server: add notice for upcoming default port change 8080 --> 6631

* add link to PR

* correct to 9931
2026-08-03 12:45:24 +02:00
Xuan-Son Nguyen f2b52a87e8 server: (tools) add x-tool-cwd header (#26420)
* server: (tools) add x-tool-cwd header

* reuse str_to_lower from server-models
2026-08-03 10:47:21 +02:00
Masashi Yoshimura 4ed2b13f75 model: MTP support for Qwen3-Next (#25589)
* mtp for qwen3nex

* fix for python type-check

* Fix to compute num_mtp from directly mtp layer

* define opt_num_mtp_layers in _QwenMtpMixin and fix some comments

* Fix for python type check

* Update gguf-py/gguf/constants.py

Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>

* rebase and add load_mtp flags

* Update src/models/qwen3next.cpp

Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>

* Update src/models/qwen3next.cpp

Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>

---------

Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@huggingface.co>
2026-08-03 17:15:01 +09:00
fairydreaming 2b63e0610b llama : MTP support for DeepSeek V3.2 (#26457)
* llama : MTP support for DeepSeek V3.2

* model : no need to include MTP layers during DeepSeek V3.2 model type discovery

---------

Co-authored-by: Stanisław Szymczyk <sszymczy@gmail.com>
2026-08-03 08:25:01 +02:00
Thiago Padilha 1464c62d88 metal: implement DSv4 Lightning Indexer (#25893)
* metal: implement F16 Lightning Indexer

- Implement GGML_OP_LIGHTNING_INDEXER for 128-dimensional, 64-head inputs
  with F32 queries and weights plus F16 keys and masks.
- Add tiled and tail kernels and test KV lengths around 8- and 64-element
  boundaries.

llama-bench (--mmap 1, -fa 1, -p 512, -n 128; d=0/10k/20k/30k):

Before:
- pp512: 153.73 ± 0.87 t/s
- tg128: 8.91 ± 0.04 t/s
- pp512 @ d10000: 73.90 ± 0.39 t/s
- tg128 @ d10000: 8.66 ± 0.03 t/s
- pp512 @ d20000: 45.83 ± 0.18 t/s
- tg128 @ d20000: 8.26 ± 0.03 t/s
- pp512 @ d30000: 33.40 ± 0.21 t/s
- tg128 @ d30000: 7.94 ± 0.01 t/s

After:
- pp512: 155.19 ± 0.91 t/s
- tg128: 8.95 ± 0.04 t/s
- pp512 @ d10000: 86.95 ± 0.69 t/s
- tg128 @ d10000: 9.00 ± 0.05 t/s
- pp512 @ d20000: 62.01 ± 0.45 t/s
- tg128 @ d20000: 8.68 ± 0.04 t/s
- pp512 @ d30000: 49.18 ± 0.33 t/s
- tg128 @ d30000: 8.60 ± 0.02 t/s

Assisted-by: Codex

* metal: stage Lightning Indexer K tiles

- Stage and dequantize K in F16 threadgroup memory before simdgroup matrix loads.
- Zero-fill partial tiles and guard stores so all KV segments use the same numerical path.
- Support F32, F16, BF16, Q4_0, Q4_1, Q5_0, Q5_1, and Q8_0 K caches.

llama-bench (--mmap 1, -fa on, -p 512, -n 128; d=0/10k/20k):

- pp512: 160.38 +/- 1.01 t/s
- tg128: 9.08 +/- 0.03 t/s
- pp512 @ d10000: 88.37 +/- 0.46 t/s
- tg128 @ d10000: 9.07 +/- 0.04 t/s
- pp512 @ d20000: 62.53 +/- 0.46 t/s
- tg128 @ d20000: 8.84 +/- 0.03 t/s

Assisted-by: Codex

* dedup Lightning Indexer constants, fix flaky test

* cont : fix whitespace

---------

Co-authored-by: forforever73 <690105611@qq.com>
Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
2026-08-03 07:33:37 +03:00
Talha Adnan 221f0f6356 metal : add SILU_BACK (#25982)
* feat(silu_back): implemented silu_back op for f32

* fix(silu_back): removed redundant asserts in ggml-metal-ops.cpp function ggml_metal_op_silu_back.
2026-08-02 22:39:28 +03:00
Georgi Gerganov 9d21b57f2e metal : add F16 support for bin ops (#26465) 2026-08-02 22:28:17 +03:00
mgroeber9110 0ab9d6fed7 opencl: limit local workgroup size for GLU operation (#26383) 2026-08-02 11:44:00 -07:00
Georgi Gerganov fffbcbdb9d metal: implement DeepSeek V4 hyper-connections (#26459)
- Implement GGML_OP_DSV4_HC_COMB, GGML_OP_DSV4_HC_PRE, and
  GGML_OP_DSV4_HC_POST with SIMDgroup register and shuffle optimized kernels.
- Add Metal dispatch and support plumbing and test the production Sinkhorn
  iteration count and embedding width.

Assisted-by: Codex

Co-authored-by: Thiago Padilha <thiago@padilha.cc>
2026-08-02 21:06:02 +03:00
Pascal bb4e0e1b3f common: support the DSpark sidecar resolution (#26458)
The dspark- files resolve like the other speculative sidecars: the
-hfd tag applies to them, a requested sidecar resolves without a full
model at the tag, and an explicit -md selection disables the discovery.
When no type is requested, dspark outranks dflash in the auto-selection
since its sidecar carries the extra Markov head.
2026-08-02 19:25:27 +02:00
Aman Gupta 3581ba0cf5 convert: add option to create separate dspark GGUF (#26452)
* convert: add option to create separate dspark GGUF

* add --no-nextn

* fix convert bug
2026-08-02 23:16:31 +08:00
akleine c745be2a2c opencl: bugfix increment ref_count in ggml_backend_opencl_init() (#26162)
Incrementing `ref_count` at the beginning is important later
in the `free()` method of the `ggml_backend_opencl_context` at program end.
If we do not increment the `ref_count`, the result would be -1 here,
and consequently, the profiling data would not be flushed and written.
( #ifdef GGML_OPENCL_PROFILING )
2026-08-02 06:43:00 -07:00
Aman Gupta 596a5795bd DeepseekV4 MTP + DSpark (#25784) 2026-08-02 20:55:34 +08:00
Aldehir Rojas f5919bf458 chat : add qwen3 specialized parser (#26252)
* Add tagged thinking tool parser

* chat : refactor and add permute helper

* cont : add support for <tool_call> omission

* cont : update tool delimiters

* cont : add comment for qwen3-coder

* cont : fix trigger pattern for <function

---------

Co-authored-by: Bart de Boer <bart.deboer@gmail.com>
2026-08-02 04:13:20 -05:00
KyleHagy 272700b360 sycl: fix classification of iGPUs (#26105) 2026-08-02 15:10:32 +08:00
Sigbjørn Skjæret 75587a05b3 model : load MiMo V2 MTP tensors only if used (#26412) 2026-08-02 09:03:05 +02:00
Masashi Yoshimura 7a2db1a0cf ggml-webgpu: add support for f16 repeat (#26307) 2026-08-02 08:28:31 +02:00
Concedo bf9b9bd455 type check hardening v1.118.1 2026-08-02 10:48:23 +08:00
Concedo 9e64023c7b mcp media strip normalize 2026-08-02 10:46:26 +08:00
Tai An 4423b3af55 fix(api): strip MCP image base64 from tool results in the jinja path (#2374) (#2376)
When a tool/MCP result carries an image, the OpenAI-compatible chat
adapter's jinja code path left the base64 payload in the rendered
prompt as plain text (a single 1024x1024 jpeg bloated the context by
~120k tokens), while the legacy path already stripped it via
strip_mcpcontent_of_media.

- format_jinja now strips the base64 from tool-role string content
  before rendering, matching the legacy path; the image itself is
  still swept out and attached separately.
- sweep_media_from_messages now also recognizes MCP-style image
  content blocks (type == "image") inside a content list, so images
  delivered that way are attached instead of dropped.
2026-08-02 10:40:17 +08:00
Concedo da8a5e4461 bump version 2026-08-02 10:33:54 +08:00
Xuan-Son Nguyen 11924d4c17 test: fix some CI errors (#26415) 2026-08-02 00:16:29 +02:00
Jeff Bolz a7a6d0d269 vulkan: extend topk_moe fusion to support sqrt(softplus) (#26124) 2026-08-01 14:18:07 -05:00
Alessandro de Oliveira Faria (A.K.A.CABELO) 815a2a5915 vendor : update BoringSSL to 0.20260730.0 (#26353) 2026-08-01 20:53:00 +02:00
Concedo 57250b17dd untoggle no_host to try 2026-08-02 01:07:56 +08:00
Xuan-Son Nguyen 89482bd665 agents: clarify comment style and jinja knowledge (#26405)
* agents: clarify comment style and jinja knowledge

* improve Security review a bit
2026-08-01 18:45:46 +02:00
Nico c629da565c cli : persist reasoning_content in chat history (#26362)
* cli : persist reasoning_content in chat history

llama-cli collected reasoning from the stream for display but only
stored assistant content in messages, so --reasoning-preserve could
not re-inject prior thoughts on later turns.
2026-08-01 18:03:32 +02:00
tc-mb de699957b9 mtmd: add minicpmv46 downsample (#25993)
* add minicpmv46 downsample

Signed-off-by: tc-mb <tianchi_cai@icloud.com>

* put downsample mode inside gguf.

Signed-off-by: tc-mb <tianchi_cai@icloud.com>

* build mtmd_image_preprocessor_llava_uhd

Signed-off-by: tc-mb <tianchi_cai@icloud.com>

* fix code

Signed-off-by: tc-mb <tianchi_cai@icloud.com>

* add convert

Signed-off-by: tc-mb <tianchi_cai@icloud.com>

* add 4x ignore vit merger

Signed-off-by: tc-mb <tianchi_cai@icloud.com>

---------

Signed-off-by: tc-mb <tianchi_cai@icloud.com>
2026-08-01 13:38:36 +02:00
Piotr Wilkin (ilintar) ddd4ec1428 chat : enable tool call in thinking for DS4 (#26269) 2026-08-01 00:13:07 -05:00
Concedo 2f2ebefc35 update lite and sdui v1.118 2026-08-01 11:17:16 +08:00
Recoordinate 650a4f2eb8 docs: fix --blasbatchssize typo in README (#2373)
The flag is defined as --blasbatchsize in koboldcpp.py; the README had a
doubled 's' (--blasbatchssize) which argparse would reject.
2026-08-01 09:02:56 +08:00
Anand Patil 876a432116 vulkan: add POOL_1D op (#25431)
* vulkan : add pool1d push constants and pipeline field

Declared data structures needed for POOL1D OP, which are the vk_op_pool1d_push_constants struct and pipeline_pool1d_f32 field.

* vulkan : add pool1d compute shader

Added pool1d.comp for Vulkan backend mirroring the existing pool2d shader.

* vulkan : add full GGML_OP_POOL_1D support

Added pipeline creation and op dispatch for 1D pooling in the Vulkan backend.

* vulkan : fix pool1d shader logic

Registered pool1d_f32 in vulkan-shaders-gen.cpp and fixed tensor dimension indices and avg pool scale.

* vulkan : fix pool1d end boundary crash and expand test coverage

Fixed an issue where the shader crashed when the end boundary was negative when k0 < p0. Also, added more test cases related to this fix.
2026-07-31 16:48:58 +02:00
Masato Nakasaka eb41d503ba vulkan: Introduce driver version check for Windows Intel GPU to mitigate crashing (#25192)
* Removed crash guard for Intel

Crash fixed from driver 32.0.101.8860

* Added driver version check for windows

* Change to convert from driverVersion rather than string

* No need to use signed

* Refactor

* allow GPU other than Xe2+

* adjusted function body position
2026-07-31 16:26:37 +02:00
Xuan-Son Nguyen db7d8b24b5 mtmd: add n_embd_head (#26342)
Co-authored-by: Daniel Han <unslothai@gmail.com>
2026-07-31 15:30:19 +02:00
timkhronos a09d8abf8c Support rotated kv cache quant (#26180) 2026-07-31 21:06:40 +08:00