Raise --predict default to 32768 and document that it is not a cap
Measured: with --predict 8192 a request sending max_tokens=9000 returned 8893 tokens (finish_reason stop), while a request sending no max_tokens was cut at exactly 8192 (finish_reason length). The flag is a default for clients that omit max_tokens, not a ceiling anyone can hit. That default still matters on a -np 1 server, where an unbounded client would fill the 128k window and block the only slot for ~50 minutes. 32768 bounds that to ~12 minutes without truncating realistic long answers, which 8192 was doing silently to any client that omits max_tokens. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -186,6 +186,29 @@ purely from desktop compositor churn — a ~200 MiB swing with nothing else chan
|
|||||||
That is why the default keeps >1 GiB spare there rather than the 388 MiB that
|
That is why the default keeps >1 GiB spare there rather than the 388 MiB that
|
||||||
`ncmoe=8` leaves.
|
`ncmoe=8` leaves.
|
||||||
|
|
||||||
|
## `--predict` ist ein Default, kein Deckel
|
||||||
|
|
||||||
|
Despite the name, `--predict` does **not** cap what a client can ask for. Measured
|
||||||
|
against `--predict 8192`:
|
||||||
|
|
||||||
|
| Request | Result |
|
||||||
|
|---|---|
|
||||||
|
| `max_tokens: 9000` | **8893** tokens, `finish_reason: stop` — the flag is ignored |
|
||||||
|
| no `max_tokens` | **8192** tokens, `finish_reason: length` — the flag applies |
|
||||||
|
|
||||||
|
So it only binds clients that send no `max_tokens` at all. That is still worth having
|
||||||
|
here: without it such a client generates until the 128k window is full, which at
|
||||||
|
~40 t/s is **roughly 50 minutes**, and with `-np 1` the single slot is blocked for all
|
||||||
|
of it. Set to `32768` — a runaway is bounded to ~12 minutes, while no realistic long
|
||||||
|
answer gets truncated. Many OpenAI clients do not send `max_tokens`, and at 8192 they
|
||||||
|
were silently cut off with `finish_reason: length`.
|
||||||
|
|
||||||
|
Note the sibling `gemma4-26b-llama-runner` README describes `--predict` as a "harte
|
||||||
|
Cap fuer Gesamt-Generierung" — by this measurement that is wrong there too.
|
||||||
|
|
||||||
|
`--reasoning-budget 4096` is a separate knob for the thinking block and was **not**
|
||||||
|
verified the same way; do not assume its semantics from the flag name either.
|
||||||
|
|
||||||
## Deploy
|
## Deploy
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
+5
-1
@@ -51,8 +51,12 @@ services:
|
|||||||
- -np
|
- -np
|
||||||
- "1"
|
- "1"
|
||||||
- --no-mmap
|
- --no-mmap
|
||||||
|
# Default only, NOT a ceiling: a client sending max_tokens overrides it
|
||||||
|
# (verified — max_tokens=9000 returned 8893 tokens against --predict 8192).
|
||||||
|
# It bounds clients that send no max_tokens at all, which would otherwise
|
||||||
|
# generate until the 128k window is full: ~50 min blocking the single slot.
|
||||||
- --predict
|
- --predict
|
||||||
- "8192"
|
- "32768"
|
||||||
- --reasoning-budget
|
- --reasoning-budget
|
||||||
- "4096"
|
- "4096"
|
||||||
- --slot-save-path
|
- --slot-save-path
|
||||||
|
|||||||
Reference in New Issue
Block a user