DeepSeek-V4.1-Flash-1017 EXL3 2.9bpw TC-MoE on 4x CMP 170HX TP4
00 upvotes — sign in to vote sign in to votecommunity Community submission — verify on your own hardware.
recipe by CurtisAccelerate↗, Morrowmake↗, Measured serve used local image sha256:55d2bd9a6664 (no published image)↗, turboderp-org/exllamav3 - EXL3 codec @ d3739fd3 (MIT; Copyright (c) 2025 Turboderp)↗, PixelML/sm80vllm branch sm80 (DeepseekV4AmpereMLAAttention) - SM80 attention for this model↗ · listed by localai-recipes
revision r3 · commit 306225cea8 · updated 21 h ago · license CC-BY-4.0
chat code fp8-kv mtp-speculative dspark long-context exl3 tp4 host-allreduce prefix-caching tensor-core-moe arena-cache
DeepSeek-V4.1-Flash-1017 (the 2026-10-17 re-release checkpoint, NOT the original DeepSeek-V4.1-Flash) as a hybrid quant on the TC-MoE port: official deepseek-ai/DeepSeek-V4.1-Flash-1017 FP8 tensors for attention, shared experts, head, DSpark draft and Engram (shards 47/48), with LibertAIDAI/...1017-EXL3-2.9bpw routed experts (layers 0-39, mostly 3-bit, layers 18-22 2-bit) TP4 on four CMP 170HX cards (sm_80, 140 W, ~62.5 GB/card). Same Morrowmake kernels + image as the EXL3 3bpw TC-MoE recipe; VLLM_EXL3_COOP=1; EXL3 arena cache (~1.1 GiB/layer, load shortcut only). 1017 quantization_config.json is the switch (dsv41_main_routed_experts_only, mtp_experts=source, non-routed stays FP8, compressor projection BF16). Author-measured: 180.4/137.1/96.6 tok/s structured/code/prose c1; 8-user aggregate 621.1/376.1/282.5 vs 564.7 previous Mia 3.0bpw. Cold 131k prompt 1,330 prefill / 163.9 decode. Needles 9/9. KV pool 1,534,065 tokens; vision on, drafter text-only.
Launch command
'docker run -d --name dsv41-1017 --cap-add SYS_NICE --gpus all --network host --ipc host --ulimit memlock=-1 --ulimit stack=67108864' '-v <hybrid_model_dir>:/model-view:ro -v <arena_cache_dir>:<arena_cache_dir>' '-v <exl3_py>:/usr/local/lib/python3.12/dist-packages/vllm_exl3/exl3.py:ro -v <sm80_dir>:/usr/local/lib/python3.12/dist-packages/vllm/sm80:ro' '-v <envs_py>:/usr/local/lib/python3.12/dist-packages/vllm/envs.py:ro -v <cuda_py>:/usr/local/lib/python3.12/dist-packages/vllm/platforms/cuda.py:ro' '-v <tc_hook>:/opt/dsv41-tc-moe/exl3_tc_hook.py:ro -v <tc_so>:/opt/dsv41-tc-moe/_dsv41_tc_moe_C.abi3.so:ro' '-e VLLM_EXL3_MODEL_DIR=/model-view -e VLLM_EXL3_ARENA_CACHE=1 -e VLLM_EXL3_ARENA_CACHE_DIR=<arena_cache_dir>' '-e VLLM_PLUGINS=vllm_exl3 -e VLLM_USE_V2_MODEL_RUNNER=0 -e DSV41_DSPARK_V1=1' '-e VLLM_EXL3_COOP=1 -e VLLM_HOST_ALLREDUCE=1 -e NCCL_P2P_DISABLE=1 -e NCCL_IGNORE_DISABLED_P2P=1 -e NCCL_CUMEM_ENABLE=0' '-e VLLM_EXL3_TC_MOE_V2=1 -e VLLM_EXL3_TC_MOE_PREFILL=1 -e VLLM_EXL3_TC_PREFILL_ROWS=2048' '-e VLLM_EXL3_TC_MOE_SO=/opt/dsv41-tc-moe/_dsv41_tc_moe_C.abi3.so -e VLLM_EXL3_MOE_TP_ALIGN=128 -e VLLM_EXL3_MOE_TP_ROTATE=1 -e TORCH_CUDA_ARCH_LIST=8.0' '--entrypoint vllm <dsv41_image>' 'serve /model-view' '--quantization exl3 --load-format safetensors --safetensors-load-strategy lazy' '--pipeline-parallel-size 1 --tensor-parallel-size 4' '--served-model-name deepseek-v4.1-flash-1017 --host 0.0.0.0 --port 8095' '--max-model-len 262144 --max-num-seqs 8 --max-num-batched-tokens 2048 --gpu-memory-utilization 0.97' '--kv-cache-dtype fp8_ds_mla --engram-config {"cpu_offload": true} --enable-prefix-caching' '--compilation-config {"cudagraph_mode": "FULL_AND_PIECEWISE", "cudagraph_capture_sizes": [1, 2, 3, 4, 6, 8, 12, 18, 24, 30, 36, 42, 48]}' --async-scheduling '--speculative-config {"method": "dspark", "num_speculative_tokens": 5}' '--tokenizer-mode deepseek_v41 --enable-auto-tool-choice --tool-call-parser deepseek_v41 --reasoning-parser deepseek_v41'serving_selection_2026_10_26
band: 'batches of 2-8 users; batch 7 pads onto the 48-row batch-8 graph; draft length stays 5 (6 rows per request). Draft length 7 and the Mia weights are NOT part of this selection.'
lane: '2-8 user decode lane = experiments/ds1017-r2-b2-b8 (separate source, DEFAULT OFF). The published C1 source stays the one-user bundle in experiments/ds1017-native-mixed-and-split (native mixed experts, split attention, captured K5 drafter).'
image: "UNAVAILABLE (never published): the author states 'There is still no pullable image' (SERVING-2026-10-26.md). The only image identifier in the stack, sha256:55d2bd9a6664aea2540e3f8e373d784b88420d35c3cedefc9f03923cd687b6f5, is a LOCAL docker image id recorded for the measured serve (1017 repo README.md:93), not a registry reference; the site's image_digest is null. Cloning the repo does not turn the lane on: no image boots the 2-8 user graphs or the sampled drafter yet."
hardware: '4x CMP 170HX (sm_80) host as measured; the October 26 run used the 1017 weights on this host class.'
measurements: 'https://github.com/CurtisAccelerate/DeepSeekv41-Flash-1017-EXL3-CMP170HX/blob/main/benchmarks/2026-10-26/README.md'
lane_defaults: 'DSV41_R2_BATCHES=2-8; DSV41_R2_COMPONENTS=attention,experts,collective,sampler,sampled; DSV41_R2_PAD7=1; DSV41_R2_SPLITS=per batch nearest the one-user 96-CTA shape (empty = default); DSV41_R2_EXPERTS=coop, or tc when tensor-core v2 covers the row count; DSV41_R2_COLLECTIVE=pair at 48 rows, otherwise the host all-reduce size rule; DSV41_R2_CAP_MIB=768 (retained-graph cap checked at startup).'
measured_plan: 'With DSV41_R2=1, DSV41_R2_PAD7=1 and VLLM_EXL3_TC_MOE_V2=1 and no per-batch overrides the defaults are the measured plan: cooperative experts for batches 2-6, tensor-core experts + pair collective at batch 8, batch 7 served by the batch-8 graph. New attention for every batch size; a temperature-0 request stays greedy at every batch size.'
published_from: "CurtisAccelerate/DeepSeekv41-Flash-EXL3-TC-MoE @ e559217ac4f90dd8c2e4820f97b259e584efcf1f (experiments/ds1017-native-mixed-and-split/SERVING-2026-10-26.md + experiments/ds1017-r2-b2-b8/README.md; commits 'Publish the 2-8 user lane and its default-off flags' and 'Note the October 26 serving selection and the missing image')"
default_off_flags:
-
flag: DSV41_R2
effect: 'Master switch for the 2-8 lane; 1 is the only armed value, malformed flag raises at boot. Being present in the repository does NOT turn the lane on.'
default: '0 (off)'
-
flag: VLLM_EXL3_TC_MOE_V2
effect: 'Required for the tensor-core expert path on the 48-row graph; the launch command of this recipe arms it explicitly (-e VLLM_EXL3_TC_MOE_V2=1).'
default: '0 (off)'
-
flag: dsv41_draft_tq
effect: 'Per-request sampled-drafter flag; NOT turned on by DSV41_R2. The October 26 selection keeps the drafter greedy at batches 2-8 and uses it only for a single temperature-1 request (outside this lane).'
default: 'off'
-
flag: DSV41_ARENA_CACHE_DIR
effect: 'Optional gate in scripts/run-tp4-tcmoe.sh: unset/empty = zero argv change; when set it adds -v DIR:DIR, -e VLLM_EXL3_ARENA_CACHE=1 and -e VLLM_EXL3_ARENA_CACHE_DIR=DIR.'
default: 'unset (off)'
launch_consistency: 'The launch command above already carries the opt-in arena-cache group (-e VLLM_EXL3_ARENA_CACHE=1 -e VLLM_EXL3_ARENA_CACHE_DIR=<arena_cache_dir>) and arms VLLM_EXL3_TC_MOE_V2=1; DSV41_R2 is NOT set in the launch command, so the published serve keeps the 2-8 lane default-off until armed.'
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/deepseek-v4-1-flash-1017-exl3-2-9bpw-tc-moe-on-4x-cmp-170hx-tp4.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/deepseek-v4-1-flash-1017-exl3-2-9bpw-tc-moe-on-4x-cmp-170hx-tp4.jsonDownloads
- Weights https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash-1017/tree/1bae0e1088993b9b82de08f59de5be5a34e421701bae0e1088993b9b82de08f59de5be5a34e42170
- Weights https://huggingface.co/LibertAIDAI/DeepSeek-V4.1-Flash-1017-EXL3-2.9bpw/tree/0be63c3337efbb2a0061d5b8bb4006fa186d433f0be63c3337efbb2a0061d5b8bb4006fa186d433f
- Reference https://github.com/CurtisAccelerate/DeepSeekv41-Flash-1017-EXL3-CMP170HX8b4e52906ec255b74bfec546d23d2a8741a86946
- Reference https://github.com/CurtisAccelerate/DeepSeekv41-Flash-EXL3-TC-MoEe559217ac4f90dd8c2e4820f97b259e584efcf1f
- Reference https://github.com/Morrowmake/vllm-cmp170hx18305948acba3f4c4d912cdd56f2202d2ebd94e8
Revision notes
Scouted + ingested by localai-recipes from CurtisAccelerate/DeepSeekv41-Flash-1017-EXL3-CMP170HX (created 2026-10-18, pinned @ b8b9e993); 1017 weight selection, hybrid recipe and measurements by Curtis White. This recipe serves the 1017 checkpoint (deepseek-ai/DeepSeek-V4.1-Flash-1017 @ 1bae0e10, official FP8 attention/shared-experts/head/draft/Engram shards 47-48 + LibertAIDAI/DeepSeek-V4.1-Flash-1017-EXL3-2.9bpw @ 0be63c33 routed experts layers 0-39, MIT licensed; the quant is LibertAI's) — NOT the original deepseek-ai/DeepSeek-V4.1-Flash, and not the Mia-AiLab EXL3 3.0bpw checkpoint of the sibling EXL3 3bpw TC-MoE recipe. Same Morrowmake kernel base vllm-cmp170hx @ 18305948 (Apache-2.0) and EXL3 codec (turboderp exllamav3, MIT) as that sibling. AA Intelligence 45 is AA's published index for DeepSeek V4.1 Flash 1017 (Max), read from the AA model page 2026-10-19 (Index v4.3.2; original V4.1 Flash is a separate 39 entry). All performance numbers author-reported (T0). 1017 measured table refresh (kanban t_1bc89b18, deferred lane of t_22817e0f, preprod only per owner ruling 2026-10-28): performance rebuilt cell-exact from benchmarks/2026-10-25/results.json (sha256 3f8e70fa7e5538b30dfe5db887a574eeb8872781203ade02d76bc898069cb992) at the re-pinned 1017 commit 8b4e52906e; pin honesty — the cited file exists only from 8b4e52906e (b8b9e993e0 -> 8b4e52906e is 14 commits, GitHub compare 'ahead'); fdb629e/a06e30d9 NOT pinned (Oct-28 gate-kernel commits post-date the audited evidence; next sweep). The comparison measures Morrowmake's repo run on this Broadwell. Those figures are our measurements, not numbers published by Morrowmake. Stale October-18 headline points and the long-context curve retired; perf points 10 -> 10.
Revision history
- 306225cea8 recipe: update deepseek-v4-1-flash-1017-exl3-2-9bpw-tc-moe-on-4x-cmp-170hx-tp4 (r3: /artifacts, /config/serving_selection_2026_10_26, /engine, /performance, /storage_requirements, /provenance/credit, 15 h ago diff
- 0bf6856f88 recipe: update deepseek-v4-1-flash-1017-exl3-2-9bpw-tc-moe-on-4x-cmp-170hx-tp4 (r3: /provenance/credit) 10 d ago diff
- d84f294b3b recipe: update deepseek-v4-1-flash-1017-exl3-2-9bpw-tc-moe-on-4x-cmp-170hx-tp4 (r2: /kv_pool_tokens) 10 d ago diff
- 2d2d0fbe91 recipe: create deepseek-v4-1-flash-1017-exl3-2-9bpw-tc-moe-on-4x-cmp-170hx-tp4 11 d ago
Fork
Sign in to fork this recipe — a fork is your own copy; you own it and only you can update it.