feat(fv-ml1): rebalance GPUs 0/1 by usage; contexts to published maximums; gen-small default output cap

Layout: GPU 0 = cyberprev (KV 16 -> 15 GiB, 1.29x), erp-seat (moved from
GPU 1, KV 8.49 -> 5.5 GiB, 1.32x), voices (ctx 8,192 -> 40,960, its native
maximum, KV 6 GiB, 1.07x), coder (moved from GPU 1, ctx 16,384 -> 32,768,
the card maximum, 2.35x), parakeet-nemo. GPU 1 = gen-small (moved from
GPU 0, 5.5 GiB, 1.76x), meromero-rp (22 GiB, 1.32x), intern-decision.

Sizing rule: KV >= 1.25x max context rounded up to 0.5 GiB, checked against
7 days of LiteLLM traffic and the engines' own KV-usage logs. Each card keeps
spare memory for its bursty tenant (parakeet's cap on GPU 0, intern-decision's
32k call on GPU 1). YaRN extensions are not enabled: they do not fit, and the
Qwen cards warn static YaRN degrades short prompts.

gen-small gets --override-generation-config max_new_tokens 32768. It applies
only to requests that omit max_tokens (vLLM get_max_tokens) and answers 9
runaway ~260k-token replies in 7 days; the longest normal reply was 6,357.

Applied with playbooks/fv-ml1-rebalance-20261005.yaml (boot-check guard and
health/KV verification per seat); all nine seats healthy, gateway smoke
tests pass.
This commit is contained in:
vh
2026-10-05 22:51:17 -07:00
parent 6851ecbd0b
commit c35f6510bf
15 changed files with 319 additions and 25 deletions
+7 -1
View File
@@ -69,7 +69,13 @@ separately.
## Placement warnings
⚠ **GPU 0 is now at 96.0 of 97.9 GB.** This seat's 10.7 GB went into the last real gap on
> **2026-10-05 rebalance:** context raised 8,192 → **40,960** (Qwen3-4B's native maximum: the card's 32,768
> plus its 8,192 prompt reserve; 131,072 would need YaRN, which the card says hurts short prompts). KV pinned
> 6 GiB bf16 = 43,680 tokens (1.07×), util 0.16, resident ~15.4 GB. Still GPU 0, now beside cyberprev,
> erp-seat, coder and parakeet-nemo. The LoRA voices were trained on short prose; long-context behaviour
> with an adapter is unmeasured.
⚠ *(historical, pre-2026-10-05)* **GPU 0 is now at 96.0 of 97.9 GB.** This seat's 10.7 GB went into the last real gap on
fv-ml1: GPU 1 has ~5.7 GB, GPU 2 has ~2.4 GB, and GPU 3 is a held reserve for a future
full-card seat (`flash-next` alone needs 93 of 96 GiB). **There is no room for another seat
here without a placement decision.**
+3 -3
View File
@@ -87,11 +87,11 @@ services:
- --port
- "8000"
- --gpu-memory-utilization
- "${VOICES_GPU_MEM_UTIL:-0.12}"
- "${VOICES_GPU_MEM_UTIL:-0.16}"
- --kv-cache-memory
- "${VOICES_KV_CACHE_MEMORY:-2147483648}"
- "${VOICES_KV_CACHE_MEMORY:-6442450944}"
- --max-model-len
- "${VOICES_MAX_MODEL_LEN:-8192}"
- "${VOICES_MAX_MODEL_LEN:-40960}"
- --max-num-seqs
- "${VOICES_MAX_NUM_SEQS:-8}"
- --dtype