Qwen3.8-Flash-Next NVFP4 on RTX PRO 6000 Blackwell — TP1 MTP3
11 upvotes — sign in to vote sign in to voterecipe by local-inference-lab↗ · listed by localai-recipes
revision r4 · commit 28709ecba0 · updated 19 h ago · license CC-BY-4.0
vision code chat fp8-kv mtp-speculative ple-offload tensor-parallel cpu-offload single-gpu prefix-cache vision locked-config
Single-card Blackwell recipe for Qwen3.8-Flash-Next (hybrid GDN/QSA MoE, 48 layers, 512 experts) on one 96 GB RTX PRO 6000: the Community image community image R34 (localinferencelab/vllm, v0.26.1rc0+glm53.r34), TP1 with MTP3 speculative decoding (b12x MoE backend), 256k context. Benchmark-qualified on RTX PRO 6000 Blackwell Max-Q: decode 148 tok/s at ctx-0 (temp 1), prefill 3860 tok/s at 2048 batched tokens. Launch argv transcribed verbatim from the r35 community deployment. Weights: JMNI-Labs/Qwen3.8-Flash-Next-NVFP4-QAD5500-Hybrid — step-5500 QAD trained tensors recombined with main 7c4f1bc1 MXFP8 attention + NVFP4 MTP experts; same-stack measured +5% MTP-normalized decode, +25% with MTP vs the main checkpoint (evals within noise, MMLU-Pro 66.9 vs 67.2).
Launch command
vllm serve /model --served-model-name Qwen3.8-Flash-Next-NVFP4 --host 0.0.0.0 --port 8000 --tensor-parallel-size 1 --pipeline-parallel-size 1 --mamba-cache-mode align --enable-prefix-caching --enable-chunked-prefill --mamba-ssm-cache-dtype auto --async-scheduling --dtype bfloat16 --kv-cache-dtype fp8 --quantization modelopt_mixed --block-size 64 --load-format instanttensor --gpu-memory-utilization 0.98 --max-model-len 262144 --max-num-seqs 64 --max-num-batched-tokens 8192 --mm-encoder-tp-mode data --mm-processor-cache-gb 0 --speculative-config '{"method":"mtp","num_speculative_tokens":3,"moe_backend":"b12x"}' --gdn-decode-kernel b12x --linear-backend b12x --moe-backend b12x --no-enable-flashinfer-autotune --compilation-config '{"cudagraph_mode":"FULL_AND_PIECEWISE","custom_ops":["all"]}' --max-cudagraph-capture-size 64 --reasoning-parser qwen3 --tool-call-parser qwen3_xml --enable-auto-tool-choiceruntime
env: 'TP=1 fixed by the image entrypoint contract; map container port 8000 to any free host port and serve both the OpenAI-compatible API at http://localhost:<host-port>/v1 and the Anthropic-compatible Messages API at http://localhost:<host-port>/anthropic/v1/messages. PLE n-gram table (~27 GiB FP8) lives in host RAM via VLLM_PLE_CPU_OFFLOAD=1 — without it the 96 GB card cannot fit 262K ctx. MTP3 runs with b12x MoE; LM head stays A16 (VLLM_MTP_NVFP4_LM_HEAD=1 + VLLM_LM_HEAD_A16=1) because NVFP4 lm_head breaks acceptance. Vision on by default: mm-processor-cache-gb 0 + 8192 batch leaves ~4.05 GiB for the ViT + 262K KV pool (16k batch + 2 GiB mm cache leaves only 3.74 GiB and OOMs warmup). Separate JIT cache prefix /cache/jit/qwen38-r281-glp47 when steering is on so stock CUDA graphs are not reused.'
notes: 'Mutually exclusive with every other 6000 occupant (SGLang Flash-Next, 27B dflash, dots TTS) — the launcher evicts them and binds the whole card. Restart policy unless-stopped on purpose: engine death often exits 0 after clean API shutdown, on-failure would leave the card empty. instanttensor load = 95 s weights + ~150 s model init; first graph capture adds minutes (persistent JIT caches make restarts much cheaper). GLP-47 overlay: hotfix-qwen38fn-steering-projective.py runs before vLLM; alpha 1.0 is the calibrated shipping value (do NOT copy DSV4 4.0). Model image class Qwen4ExpForConditionalGeneration, modelopt quant, 48 layers, 512 experts.'
container: 'docker run -d --name vllm-fnxt-6000-jj --init --device nvidia.com/gpu=<RTX PRO 6000 uuid> --cpuset-cpus=<dedicated-physical-cores, e.g. 0-5,18-23> --restart=unless-stopped --ipc=host --shm-size=32g --ulimit memlock=-1 --ulimit stack=67108864 --memory=96g --memory-reservation=64g -p <host-port>:8000 -v /path/to/Qwen3.8-Flash-Next-NVFP4:/model:ro -v ~/.cache/vllm-jj-fnxt:/cache -e TP=1 -e VLLM_PLE_CPU_OFFLOAD=1 -e VLLM_MTP_NVFP4_LM_HEAD=1 -e VLLM_LM_HEAD_A16=1 -e VLLM_QWEN3_8_FLASH_NEXT_MTP_COMPACT=1 -e VLLM_QWEN3_8_FLASH_NEXT_OVERLAP=1 -e VLLM_GDN_SPEC_DECODE_METADATA_FASTPATH=1 -e VLLM_ENABLE_PCIE_ALLREDUCE=1 -e VLLM_PCIE_ALLREDUCE_BACKEND=b12x -e VLLM_DISABLED_KERNELS=MarlinFP8ScaledMMLinearKernel -e VLLM_CAUSAL_CONV1D_UPDATE_HOIST=1 -e PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True -e VLLM_SSM_CONV_STATE_LAYOUT=DS -e VLLM_USE_V2_MODEL_RUNNER=1 -e B12X_DYNAMIC_WORK_SOURCE=persistent_grid -e B12X_DYNAMIC_SPLIT_COMPUTE_MAC=224 -e XDG_CACHE_HOME=/cache/jit/qwen38-r281-glp47 localinferencelab/vllm:jovian-judgement-community-20260910-r34 -m vllm.entrypoints.cli.main serve /model <launch args>'
Use this recipe with your agent
Paste this into any agent chat — it fetches and applies the recipe:
Fetch https://localairecipes.com/api/v1/recipes/qwen3-8-flash-next-nvfp4-1x6000-jj-mtp3.json and apply the inference recipe it describes (engine flags, model, quant, context) to my setup. Ask before overwriting any existing config.Or fetch it directly:
curl -fsSL https://localairecipes.com/api/v1/recipes/qwen3-8-flash-next-nvfp4-1x6000-jj-mtp3.jsonInstall requirements
- Docker (or a compatible OCI container runtime)
- NVIDIA Container Toolkit (nvidia-container-toolkit) - exposes host GPUs to the container
NVIDIA driver floor: unknown - check the image tag
Source: NVIDIA CUDA Toolkit Release Notes - driver compatibility tables (https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/, fetched 2026-10-03).
Map the placeholders to your rig
- Hardware-bound values in this recipe (device counts, bind-mount paths, utilization, ports) describe the author's machine, not yours - map them to your own rig before launching. Keep the engine flags, model, quant, and parallelism strategy; adjust paths and ports to the hardware you actually have.
- GPU identity: list your GPUs with `nvidia-smi -L` and substitute your own GPU UUIDs/indices wherever the recipe pins the author's.
- Model directory: bind-mount paths are author-side - point them at your own mount where the model files live.
- Host port: pick a free port on your machine and publish the container there; keep the in-container port unchanged.
Downloads
- Weights https://huggingface.co/Qwen/Qwen3.8-Flash-Nextlocal modelopt NVFP4 conversion at /path/to/Qwen3.8-Flash-Next-NVFP4 (bind-mounted; image does not re-download ~98 GB)
- Engine image https://hub.docker.com/r/localinferencelab/vllm/tags?name=jovian-judgement-community-20260910-r34image localinferencelab/vllm:jovian-judgement-community-20260910-r34 (~13 GB); engine v0.26.1rc0+glm53.r34.vllmc4966041; GLM overlay path /opt/glm53-flash/vllm
- Abliteration https://huggingface.co/msuiche/Qwen3.8-Flash-Next-abliterated-cyber-GLP-47GLP-47 abliteration overlay GGUF (Qwen3.8-Flash-Next-abliterated-cyber-GLP-47-L1-47-a1.gguf) + steering hotfix script. Run of record used the weightless/GLP-47 copy (gated); the msuiche mirror serves the same GGUF openly
- Reference https://github.com/local-inference-lab/rtx6kpromodels/qwen38-flash-next.md, community image R34 spec
Revision notes
Consolidation: r35 community-image perf runs merged from qwen3-8-flash-next-1x6000-jj-mtp3 (soft-deleted); r34 config and launch unchanged.
Revision history
- 28709ecba0 recipe: update qwen3-8-flash-next-nvfp4-1x6000-jj-mtp3 (r4: /performance) 13 h ago diff
- 72038d2fb7 recipe: update qwen3-8-flash-next-nvfp4-1x6000-jj-mtp3 (r3: /max_context_len, /kv_pool_tokens) 10 d ago diff
- 25a40d8ab5 recipe: update qwen3-8-flash-next-nvfp4-1x6000-jj-mtp3 (r2: /summary) 25 d ago diff
- cce7a0557c recipe: update qwen3-8-flash-next-nvfp4-1x6000-jj-mtp3 (r2: /summary) 25 d ago diff
- bfdf9daa3e history: re-squash corpus to a single root commit after the slug reconciliation (prior tip kept at refs/lar-archive/pre-single-slug-resquash) 25 d ago
Fork
Sign in to fork this recipe — a fork is your own copy; you own it and only you can update it.