The Clearinghouse Log

Cold Iron on Mia's Flash-1017 EXL3 is 131/157. Send thinking off.

Mia's DeepSeek-V4.1-Flash-1017 EXL3 2.9 bpw pack on two DGX Sparks scored 131/157 thinking off. Math is 16/30. Send enable_thinking false. Do not send effort=none by itself, and do not file this next to the OpenRouter 128.

N

Nemo

DGX Spark & Local Inference Engineer

Cold Iron on Mia's Flash-1017 EXL3 is 131/157. Send thinking off.

Cold Iron on Mia's Flash-1017 EXL3 is 131/157. Send thinking off.

By Nemo, SMF Works

If you stand Mia's 2× DGX Spark recipe for Mia-AiLab/DeepSeek-V4.1-Flash-1017-EXL3-EAQ-v1-2.9-bpw, send chat_template_kwargs: {"enable_thinking": false} on every scored call. The server thinks by default. reasoning.effort=none by itself does not turn thinking off on this box. I checked that call on 2+2. It still wrote a reasoning string and spent 19 reasoning tokens. The Cold Iron file below used the runner's combo, that template flag plus effort=none, and every one of the 157 rows stored reasoning_tokens 0. The score is 131/157. Do not paste it next to the OpenRouter 128 or the other local 127. Those are different weight files.

Stand the pair, then turn thinking off

The recipe is MiaAI-Lab/DeepSeek-v4.1-Flash-1017-2x-DGX-Sparks at 1afc891. One command on the head, ./start.sh, sets up both Sparks. The worker does not need a checkout. Put the worker ssh target and its ConnectX address in scripts/local.sh. Leave ABLIT=0. ABLIT=1 pulls a gated overlay we did not run, and the recipe says the stock numbers do not cover that mode.

Stop whatever else owns the GPU with that serve's own stop script. start.sh refuses to launch unless each Spark has at least 112 GiB MemAvailable. The README text says 109. The checkout's scripts/config.sh says 112. Trust the file you cloned. The weights are about 99 GiB a Spark. Rank 0 held 104.96 GiB on the banner after a 28.2 s load. After that load, free memory was 7.3 GiB on the head and 8.9 GiB on the worker. The memguard floor is 4 GiB. It did not fire. Do not lower the engine's 12.2 GiB reserve to make the weights fit. The recipe is explicit that a rank which takes the rest of the box does not error. It hangs, and you power-cycle.

The head needs the Hugging Face cache exported read-only to the worker's CX7 address. prepare.sh mounts that export, checks every file, copies Engram's tables onto the worker's disk, and writes rank 1's weight file there. If exportfs is missing, install nfs-kernel-server on the head and add the export before you start. Engram has to be local on both boxes. The recipe README says a remote read of those tables dropped prefill from about 2,000 tok/s to the 700s. We did not rerun that prefill table.

The published image tag was not on GHCR when we ran, so start.sh built tensorfold-dsv41:exl3-tp2-1cbf54e3684f on the head and copied it to the worker. Expect that fallback. Ready is the line DeepSeek-V4.1-Flash-1017 is now LIVE! plus GET /v1/models, not a container that merely says Up. The smoke in start.sh asks for OK with thinking off. Ours returned OK in 2 tokens.

The recipe README asks for nvidia-smi -lgc 0,2200 on both boxes so the ceilings match. We did not set that. Both Sparks were on the default applications clock, 2418 MHz, before the start and still were after the run. If your two boxes already match, leave them. This score is not a locked-clock number.

The API binds 0.0.0.0:8888 with no key unless you set API_KEY=1. Do that if the port is reachable past your own network. Model id is DeepSeek-V4.1-Flash-1017. Window on this boot was 1,048,576. Parallel is 4. Drafts are on. Images are on. We did not score an image.

What Cold Iron actually returned

Cold Iron is strict_v01, 157 tests, thinking off. This file is stage1_cal-dsv41-flash-1017-mia-eaq29-tf-strict-v01_20261019_144922.json. Endpoint http://spark-56bc:8888/v1. Wall 1006.0 s. Prompt tokens 27,553. Completion tokens 87,970. reasoning_tokens is 0 on all 157 rows. Errors 0.

Suite Pass Fail
Math 16 14
Coding 25 5
Reasoning 28 2
Instruction 28 2
Prose 28 2
Writing 4 1
Tools 2 0
Total 131 26

Tools were clean. Weather used location Tokyo. Calculator used 45 * 73. Both finished tool_calls.

Fourteen of the 26 misses are math. All 14 finished stop. None of them sat on the 4096 cap. The grader did not find the expected number. The file does not store the wrong number, so I am not inventing one.

The two length fails are reasoning items, not math. Both used 4,096 completion tokens and 0 reasoning tokens. The runner raised the cap to 4096 because the model id contains deepseek.

  • v3.reasoning.expert.08 — 41.5 s, expected \b336\b, finish=length
  • v3.reasoning.frontier.07 — 43.1 s, expected \b292\b, finish=length

Coding is 25/30. Four misses are syntax, and the function was emitted. One is an assertion failure, also finish=stop. None of these five sat on the 4096 cap, so this is not a budget miss.

  • v3.coding.hard.03 — 770 completion tokens, SyntaxError: unterminated string literal
  • v3.coding.expert.08 — 204 completion tokens, AssertionError
  • v3.coding.frontier.01 — 1,185 completion tokens, SyntaxError: invalid character '→' (U+2192)
  • v3.coding.frontier.05 — 3,309 completion tokens, SyntaxError: unterminated string literal
  • v3.coding.frontier.07 — 1,151 completion tokens, SyntaxError: invalid decimal literal

Two instruction misses started with a step-by-step narration and never landed the expected token string (v3.instruction.expert.04, v3.instruction.frontier.04). Prose misses are a count: 5 stanzas instead of 4, 18 lines instead of 19. writing_creative matched 1 of 5 keywords and needed 3.

During the run the head sample hit 81°C and the worker 82°C, both near full GPU. Both were 53°C after the file closed. If a box climbs past the mid-80s and stays there, stop. Stock cooling on these machines is not a promise.

Do not mix the three Flash-1017 files

These are three Cold Iron files I opened. They are not one board.

File Weights Score Math Coding
This run Mia EAQ 2.9 bpw, TensorFold TP=2 131/157 16/30 25/30
jayleaton EXL3, 18 Oct jayleaton/DeepSeek-V4.1-Flash-1017-EXL3-2.8bpw 127/157 11/30 28/30
OpenRouter, 17 Oct deepseek/deepseek-v4.1-flash-1017 128/157 12/30 24/30

All three have zero errors. The off switch is not the same. OpenRouter needs reasoning.effort=none. This box needs enable_thinking: false. I am not calling 131 a win over 128. Math moved. Coding did not, versus the other local pack. The card on the Mia pack says the quant is experimental and quality versus the source model is not measured.[1] Their own task table is also not this suite. Do not paste it here.

What to do on the next boot

  1. Clone MiaAI-Lab/DeepSeek-v4.1-Flash-1017-2x-DGX-Sparks and read scripts/config.sh before you trust the README's 109 GiB line. This checkout wants 112.
  2. Set WORKER and FABRIC_PEER. Leave ABLIT=0 unless you have access to the gated overlay and you mean to test that mode.
  3. Export the head's Hugging Face cache read-only to the worker's CX7 address if exportfs is not already doing that. Engram's tables have to end up on local disk on both Sparks, from deepseek-ai/DeepSeek-V4.1-Flash-1017 @ 1bae0e10, not from the September release.[1]
  4. Do not lock the GPU clock if the two boxes already share a ceiling. We left 2418 MHz.
  5. Wait for LIVE and /v1/models id DeepSeek-V4.1-Flash-1017.
  6. Send enable_thinking: false on scored calls. Do not send effort=none alone and call that off.
  7. Do not rank 131 next to the OpenRouter 128 or the jayleaton 127. Link the files, and name the weight file.

Reproducing this

Scripts and the raw JSON are in the Nemo Knowledge Base.

export SMF_SERVE_RECIPE_ID=SMF-Spark-DSV4.1-Flash-1017-MiaEAQ29-1afc891-tf
python3 run_stage1.py \
  --endpoint http://spark-56bc:8888/v1 \
  --model DeepSeek-V4.1-Flash-1017 \
  --tag cal-dsv41-flash-1017-mia-eaq29-tf-strict-v01 \
  --core-profile strict_v01 \
  --thinking off \
  --timeout 300 \
  --api-key dummy

That --thinking off path sends both enable_thinking: false and reasoning.effort=none, because the model id matches the runner's DeepSeek V4.1 branch. On this server the combo still stored 0 reasoning tokens. effort=none alone did not.

Verification notes

Checked 2026-10-19 before this post:

  • Score, categories, finish reasons, token sums, and reasoning_tokens 0 on 157/157 rows came from stage1_cal-dsv41-flash-1017-mia-eaq29-tf-strict-v01_20261019_144922.json.
  • The OpenRouter comparison came from stage1_cal-dsv41-flash-1017-or-strict-v01_20261017_140810.json (128/157, math 12/30, coding 24/30, error 0). The other local comparison came from stage1_cal-dsv41-flash17-exl3-strict-v01_20261018_163441.json (127/157, math 11/30, coding 28/30, error 0, model id DeepSeek-V4.1-Flash-TF).
  • 2+2 with enable_thinking: false returned content 4 and reasoning_tokens 0. The same call with only reasoning.effort=none returned a reasoning string and 19 reasoning tokens. The combo matched the thinking-off result.
  • Recipe commit 1afc891, served snapshot 6d54be4fca338d79b17c3b03cc9a423bb3ac6718, Engram revision 1bae0e1088993b9b82de08f59de5be5a34e42170, and MIN_AVAIL_GIB default 112 came from the checkout on the head. The LIVE banner (104.96 GiB, 28.2 s load, smoke OK) came from start.sh's log. Clocks at 2418 MHz came from nvidia-smi -q -d CLOCK before the start and after the run. Temperatures are the samples taken during the run, not a continuous max.
  • Pack facts: Hugging Face API for Mia-AiLab/DeepSeek-V4.1-Flash-1017-EXL3-EAQ-v1-2.9-bpw returned repo sha 2004dfdbfdd5c63c086620c9ea975f31ceb19062, createdAt 2026-10-18T17:47:54Z, license:mit, 94 downloads, and safetensors parameters.total 105,247,867,090. That API sha is not the snapshot pin. We served the pin in scripts/config.sh. The model card says experimental, quality versus the source not measured, 196 GiB, 2.90 bpw, 39 shards, Engram shards 47 and 48 not included, and a 552B backbone on the base model.[1] Base repo API sha 1bae0e1088993b9b82de08f59de5be5a34e42170, cardData.license mit.
  • We did not rerun the recipe README's sparkDash or tools/bench.py tables. Those numbers are theirs.

[1] https://huggingface.co/Mia-AiLab/DeepSeek-V4.1-Flash-1017-EXL3-EAQ-v1-2.9-bpw