frank-default-large: swap to Qwen3.8-27B-Uncensored Q6_K, q8_0/f16 KV
- MODEL_FILE -> Qwen3.8-27B-Uncensored-Q6_K.gguf (22.43 GB, no bundled MTP head; repo ships a standalone draft sidecar) - SPEC_DRAFT_MODEL -> Qwen3.8-27B-Uncensored-draft-Q8_0.gguf (3.16 GB) - CACHE_TYPE_K=q8_0, CACHE_TYPE_V=f16 (mismatched, FA retained via the GGML_CUDA_FA_ALL_QUANTS rebuild of head HIP + worker CUDA at 9b05354ec) - Split kept at 0.53 for phase 1 (Q6_K frees ~4.7 GiB on the worker at this split); re-maximize after measuring draft placement - KV math: K 1088 B/token + V 2048 B/token = 784 MiB per FA layer
This commit is contained in:
1 parent
e9ec5cd13f
commit
1bc39c43ce
1 file changed
+19
-21
@@ -15,7 +15,7 @@
|
|||||||
# (HIP runtime collision, see the 2026-08-13 TEMP incident).
|
# (HIP runtime collision, see the 2026-08-13 TEMP incident).
|
||||||
|
|
||||||
MODEL_DIR=/home/dank/models
|
MODEL_DIR=/home/dank/models
|
||||||
MODEL_FILE=Qwen3.8-27B-UD-Q8_K_XL.gguf
|
MODEL_FILE=Qwen3.8-27B-Uncensored-Q6_K.gguf
|
||||||
HEAD_BIN=/home/dank/llama.cpp/build/bin/llama-server
|
HEAD_BIN=/home/dank/llama.cpp/build/bin/llama-server
|
||||||
ALIAS=frank-default-large
|
ALIAS=frank-default-large
|
||||||
BIND_ADDR=0.0.0.0
|
BIND_ADDR=0.0.0.0
|
||||||
@@ -25,15 +25,12 @@ LISTEN_PORT=7770
|
|||||||
RPC_SERVERS=192.168.0.235:50052
|
RPC_SERVERS=192.168.0.235:50052
|
||||||
|
|
||||||
# Model split fractions, one per device in order [RPC0, iGPU].
|
# Model split fractions, one per device in order [RPC0, iGPU].
|
||||||
# 0.53,0.47 = 34 of 65 blocks on the 3090 (blocks 0-33) - the maximum
|
# 0.53,0.47 = 34 of 65 blocks on the 3090 (blocks 0-33). Phase-1 value
|
||||||
# provably-safe split, measured 2026-08-17 (two failed attempts):
|
# for the Q6_K swap (2026-08-17); the split will be re-maximized after
|
||||||
# - 0.50: 32 blocks, KV 8192 MiB (8 FA) -> healthy, 1477 MiB free.
|
# measuring the draft-model placement on the worker. With the Q6_K model
|
||||||
# - 0.54: weights 35 blocks but KV jumps to 9216 MiB (9th FA block) ->
|
# (layer pool 20334 MB) + q8_0/f16 KV (784 MiB per FA layer) the worker
|
||||||
# cudaMalloc OOM by ~740 MiB. The KV-per-device count rounds the
|
# frees ~4.7 GiB vs the old model at this split; the 0.53 boundary was
|
||||||
# split fraction over 66 layers, independent of the weight boundary;
|
# provably safe under the old model and is comfortably safe here.
|
||||||
# the flip to 9 FA sits at f ~= 0.538, just below the weight
|
|
||||||
# threshold for block 35. 0.53 keeps 8 FA under every rounding rule.
|
|
||||||
# GGUF block scan: FA at 3,7,...,63; linear blocks 431 MB, FA 410 MB.
|
|
||||||
TENSOR_SPLIT=0.53,0.47
|
TENSOR_SPLIT=0.53,0.47
|
||||||
|
|
||||||
# Context pool. 262144 total = 1 parallel slot x 262144 per slot
|
# Context pool. 262144 total = 1 parallel slot x 262144 per slot
|
||||||
@@ -41,25 +38,26 @@ TENSOR_SPLIT=0.53,0.47
|
|||||||
CTX_SIZE=262144
|
CTX_SIZE=262144
|
||||||
PARALLEL=1
|
PARALLEL=1
|
||||||
|
|
||||||
# Speculative decoding. Matches production frank-default-large: MTP (bundled
|
# Speculative decoding. MTP with the STANDALONE draft head (the Q6_K
|
||||||
# head, n_max 4 per the published tuning curve) with the ngram-mod fallback.
|
# model has no bundled MTP head; the repo ships the draft sidecar) + the
|
||||||
# Set SPEC_NONE=1 for a raw baseline with no speculation.
|
# ngram-mod fallback. Set SPEC_NONE=1 for a raw baseline.
|
||||||
SPEC_NONE=0
|
SPEC_NONE=0
|
||||||
SPEC_DEFAULT=1
|
SPEC_DEFAULT=1
|
||||||
MTP=1
|
MTP=1
|
||||||
SPEC_DRAFT_N_MAX=4
|
SPEC_DRAFT_N_MAX=4
|
||||||
# Optional standalone MTP draft head (e.g. the Q4_0 ggml-org file). When set,
|
# Standalone MTP draft head (Q8_0 MTP-only sidecar from the same repo).
|
||||||
# it replaces the bundled in-model head via --spec-draft-model.
|
SPEC_DRAFT_MODEL=/home/dank/models/Qwen3.8-27B-Uncensored-draft-Q8_0.gguf
|
||||||
SPEC_DRAFT_MODEL=
|
|
||||||
SPEC_NGRAM_MOD_N_MIN=48
|
SPEC_NGRAM_MOD_N_MIN=48
|
||||||
SPEC_NGRAM_MOD_N_MAX=64
|
SPEC_NGRAM_MOD_N_MAX=64
|
||||||
SPEC_NGRAM_MOD_N_MATCH=24
|
SPEC_NGRAM_MOD_N_MATCH=24
|
||||||
|
|
||||||
# KV on GPU, unquantized (f16). 16 full-attention layers x 2 (K,V) x 4 heads
|
# KV on GPU: K q8_0 + V f16 (mismatched, 16 full-attention layers x 4
|
||||||
# x 256 dim x 2 bytes = 64 KiB/token -> 262144 tokens = 16.6 GiB total,
|
# heads x 256 dim: K = 1088 B/token, V = 2048 B/token -> 3136 B/token ->
|
||||||
# held in proportion to the full-attention layers each device holds.
|
# 784 MiB per FA layer at 262144, 12.25 GiB total). Mismatched K/V with
|
||||||
# Keep K == V so Flash Attention stays enabled.
|
# Flash Attention requires the GGML_CUDA_FA_ALL_QUANTS rebuild (2026-08-17:
|
||||||
CACHE_TYPE_K=f16
|
# head HIP + worker CUDA at 9b05354ec). Do not revert the binaries without
|
||||||
|
# also reverting this.
|
||||||
|
CACHE_TYPE_K=q8_0
|
||||||
CACHE_TYPE_V=f16
|
CACHE_TYPE_V=f16
|
||||||
|
|
||||||
# Batch sizing: production-verified values (2026-08-14).
|
# Batch sizing: production-verified values (2026-08-14).
|
||||||
|
|||||||
Reference in new issue
Block a user