Realistic-prompt tuning: n_max=5 peaks ~13.3 t/s (baseline 7.2). matrix used a repetitive prompt that inflated MTP. n_max=10 is only ~8.6 t/s on real writing.
64 lines
2.9 KiB
Bash
64 lines
2.9 KiB
Bash
# Tunables for frank-default-large (unsloth Qwen3.8-27B UD-Q8_K_XL, dankclaw)
|
|
# Runtime: llama.cpp llama-server (b10433+, rebuilt 2026-08-14 for bundled-MTP
|
|
# support); AMD Strix Halo (gfx1151) 96GB UMA; Ryzen AI MAX+ 395.
|
|
MODEL_DIR=/home/dank/models
|
|
MODEL_FILE=Qwen3.8-27B-UD-Q8_K_XL.gguf
|
|
ALIAS=frank-default-large
|
|
HOST=0.0.0.0
|
|
PORT=7770
|
|
# Context pool. Qwen3.8 native context = 262144 per sequence.
|
|
# 524288 total / PARALLEL 2 = 262144 per slot, matching the pi client's
|
|
# contextWindow=262144 for frank-default-large. Model is 29GB; ROCm has
|
|
# ~70GB headroom, so 2x262k quantized KV fits. Verify at startup.
|
|
CTX_SIZE=524288
|
|
PARALLEL=2
|
|
# Spec: draft-mtp uses the MTP drafter BUNDLED inside the target GGUF.
|
|
# llama.cpp auto-detects it (b10411+). DRAFT_FILE stays EMPTY.
|
|
#
|
|
# Winner = draft-mtp, n_max=5, p_min off.
|
|
# Realistic-prompt tuning (2026-08-14, temp 0.8, production settings):
|
|
# n4 12.5 | n5 13.3 (PEAK) | n6 10.6 | n7 10.1 | n10 8.6 | baseline none 7.2.
|
|
# The 54-config matrix (repetitive "fleet" prompt) reported n_max=10 ~30 t/s,
|
|
# but that prompt MTP drafts almost perfectly; long drafts collapse to ~18%
|
|
# acceptance on real writing, so n_max=10 is actually ~8.6 t/s there.
|
|
# Layered draft-mtp,ngram-mod is faster on paper (matrix median 133 t/s) but
|
|
# non-deterministic (10-148 t/s) and showed a degenerate instant-EOS -> the
|
|
# same premature-stop class that retired DFlash. Rejected as production-unsafe.
|
|
# p_min off: --spec-draft-p-min 0.8 was neutral to slightly worse for draft-mtp.
|
|
# No premature-stop on realistic text at ubatch 256 (see batch notes below);
|
|
# the earlier 'premature EOS' on the repetitive bench prompt was sampling
|
|
# variance, not a corruption bug.
|
|
SPEC_TYPE=draft-mtp
|
|
DRAFT_FILE=
|
|
SPEC_DRAFT_N_MAX=5
|
|
SPEC_DRAFT_P_MIN=
|
|
SPEC_NGRAM_MOD_N_MIN=48
|
|
SPEC_NGRAM_MOD_N_MAX=64
|
|
SPEC_NGRAM_MOD_N_MATCH=24
|
|
# Backend device from --list-devices. ROCm0 is the production backend.
|
|
DEVICE=ROCm0
|
|
# Dense model: full offload. (Not MoE.)
|
|
N_GPU_LAYERS=all
|
|
# KV on GPU, quantized (K q8_0, V q8_0). Keep K == V for Flash Attention;
|
|
# mixed types silently disable FA (long-context decode collapses).
|
|
CACHE_TYPE_K=q8_0
|
|
CACHE_TYPE_V=q8_0
|
|
# Batch sizing (verified 2026-08-14 on Qwen3.8 UD-Q8_K_XL):
|
|
# ubatch 128 with batch>=2048 -> premature-EOS under concurrency (unsafe).
|
|
# ubatch 512 -> MTP acceptance collapses (~25%) -> gen ~9 t/s (slow).
|
|
# ubatch 256 -> ~30 t/s gen, concurrent-safe, ~330 t/s prefill. WINNER.
|
|
# batch 8192 keeps single-shot prefill flexibility; ubatch drives the graph.
|
|
BATCH_SIZE=8192
|
|
UBATCH_SIZE=256
|
|
# Sampling settings — per Qwen3.8-27B model card thinking mode.
|
|
# Thinking: temp=1.0, top_p=0.95, top_k=20, min_p=0. Clients may override.
|
|
# WARNING: do not name this variable TEMP. The ROCm HIP runtime reads the
|
|
# TEMP environment variable (JIT kernel-cache dir); TEMP=1.0 made the HIP
|
|
# runtime SEGV during model load on Aug 13 2026.
|
|
TEMPERATURE=1.0
|
|
TOP_K=20
|
|
TOP_P=0.95
|
|
MIN_P=0.0
|
|
THREADS=12
|
|
THREADS_HTTP=1
|