| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- # Qwen3.8-Flash-Next-125B-A5B INT4-AutoRound (azampatti) on a single DGX
- # Spark — the "5 experts per token" cut with the healed shared expert.
- #
- # Source: forum 382733 (posts 167-171, 2026-09-25) + github.com/azampatti/
- # Qwen3.8-Flash-Next-Int4-FAST (recipe repo, public). Numbers: 60-75 tok/s
- # single Spark, ~645K-token KV pool at 20 GB, tool-eval 93/100 (his 69-scen
- # v2.6-era harness; we re-bench on v2.7.0). BENCH NOTE: his quant defaults
- # to MEDIUM thinking (the stock model is xhigh) → the chat template matters
- # for A/B fairness (three switchable templates ship in the model repo; the
- # served view mounts medium_chat_template.jinja — the template the
- # speculative head was trained on).
- #
- # Image: eugr/spark-vllm-b12x (Docker Hub; the b12x stack his 2x recipe uses,
- # ~75 tok/s vs 70 on the classic image). Pinned to the digest azampatti's repo
- # validates on (config.env B12X_IMAGE_PIN) — NOT floating :latest: the nightly
- # build we pulled on 2026-09-25 (c9e22735) intermittently garbles long
- # agent contexts (empty/degenerate replies, special-token leakage); the pinned
- # build is clean. Forum 382733 #195-198 (0rand: same corruption on unpinned,
- # fixed by the pinned digest). Do not "update" this image casually.
- #
- # Model: azampatti/Qwen3.8-Flash-Next-125B-A5B-INT4-AutoRound (130.8 GB)
- # staged at /home/kilork/hf-local on the launch node (dgx5); serve with
- # --hf-cache /home/kilork/hf-local.
- #
- # The mod (mods/flashnext-int4-b12x, vendored from his repo) checks the model
- # in the container's HF cache, builds /workspace/flashnext/{model,draft-k10}
- # (symlink views + small JSON, zero copy) and patches the container's vLLM
- # (fp8 hybrid, int4 lm_head, loader index filter, draft x2, GDN fixes).
- # It must run per node (single node here) before the engine.
- engine = "vllm"
- name = "Qwen3.8-Flash-Next-Int4-AutoRound (b12x, 1x Spark)"
- docker_image = "eugr/spark-vllm-b12x@sha256:8e7e062186f841453ef0ec6f713043c5b65447decc3835206685128c18e42262"
- # Empty recipe model: the launcher emits no positional model, and args[0] is
- # the mod-built view (vllm serves the view, not the raw repo — the view carries
- # the PLE-table index + the b12x arch rename that the raw snapshot lacks).
- model = ""
- parent_model = "Qwen/Qwen3.8-Flash-Next"
- required_nodes = 1
- entrypoint = ["vllm", "serve"]
- # vllm serves the mod-built view (not the raw repo): the launcher passes the
- # recipe model to the mod via the HF cache; the mod builds /workspace/...
- # and run.sh validates it. The command targets the view, per his yaml.
- args = [
- "/workspace/flashnext/model",
- "--served-model-name", "qwen3.8",
- "--trust-remote-code",
- "--enable-expert-parallel",
- "--mamba-cache-mode", "align",
- "--linear-backend", "b12x",
- "--enable-prefix-caching",
- "--enable-chunked-prefill",
- "--dtype", "bfloat16",
- "--kv-cache-dtype", "auto",
- "--block-size", "16",
- "--load-format", "fastsafetensors",
- "--max-model-len", "262144",
- "--max-num-seqs", "8",
- "--max-num-batched-tokens", "8192",
- "--gpu-memory-utilization", "0.01",
- "--kv-cache-memory-bytes", "20g",
- "--gdn-decode-kernel", "b12x",
- "--no-enable-flashinfer-autotune",
- "--mm-encoder-tp-mode", "data",
- "--enable-auto-tool-choice",
- "--tool-call-parser", "qwen3_coder",
- "--reasoning-parser", "qwen3",
- "--chat-template", "/workspace/flashnext/model/medium_chat_template.jinja",
- "--speculative-config",
- '{"method":"mtp","num_speculative_tokens":4,"model":"/workspace/flashnext/draft-k10","rejection_sample_method":"block","draft_sample_method":"probabilistic"}',
- ]
- [mods]
- commands = ["bash /mods/flashnext-int4-b12x/run.sh"]
- [env]
- HF_HUB_OFFLINE = "1"
- # b12x stack (his solo yaml, verbatim)
- CUTE_DSL_ARCH = "sm_121a"
- VLLM_WORKER_MULTIPROC_METHOD = "spawn"
- VLLM_SSM_CONV_STATE_LAYOUT = "DS"
- VLLM_USE_AOT_COMPILE = "1"
- VLLM_USE_MEGA_AOT_ARTIFACT = "1"
- VLLM_USE_V2_MODEL_RUNNER = "1"
- B12X_POLICY_MODE = "auto"
- VLLM_PLE_TABLE_MEMORY = "disk"
- # this checkpoint (the mod patches them into the container's vLLM)
- VLLM_FP8_HYBRID = "1"
- VLLM_MARLIN_USE_ATOMIC_ADD = "1" # 2026-09-26: back to 1 (the bench baseline). The 1→0 flip was a garble red herring — the real cause was the unpinned b12x image (see above).
- VLLM_USE_DEEP_GEMM = "0"
- VLLM_USE_FLASHINFER_SAMPLER = "1"
- VLLM_MTP_DRAFT_SCALE = "2"
|