Mia's one-click kit: Qwen3.8-27B, EXL3 4.0 bpw + MTP on two cards
2x NVIDIA GeForce RTX 5060 Ti 16 GB (32 GB in total), one machine, tensor parallel over both cards.

Overall score as of 25 Oct 2026. Scores are relative to the best run in the class today; a better model later moves older runs down.
How the overall score is calculated
| Part | This run | Best in class | Relative | Weight | Points |
|---|---|---|---|---|---|
| Speed, one request | decode 70.8 tok/s | best 253.4 tok/s | 27.9 % | 17.5 % | 4.9 |
| Speed, 8 at once | total 58.1 tok/s | best 711.9 tok/s | 8.2 % | 17.5 % | 1.4 |
| Quality | mean of 7 tests: 67.2 % | best mean 68.0 % | 98.8 % | 25 % | 24.7 |
| Browser check | 8 of 10 | 80.0 % | 5 % | 4.0 | |
| My rating | 4 of 10 | 40.0 % | 35 % | 14.0 | |
| Overall | 100 % | 49.0 |
The seven quality tests: MMLU-Pro 58.8 · GPQA 43.9 · IFEval 86.0 · LiveCodeBench 52.5 · long text 8K 85.0 · long text 32K 67.5 · GPQA 30 with thinking 76.7.
The speed part is half the decode speed with one request and half the total speed with 8 requests at once, each relative to the best run of this class; a run without a total for 8 requests at once gets the better of its decode speed alone and the mix with its highest measured total. Quality is relative to the best run of this class, the browser check and my rating are out of 10. The parts are rounded one by one. sparkDash, the memory test and speculative-decoding numbers are not part of it. How the score is made, and the assumption behind it.
What it builds as an agent
Task: Airship dock (3D scene, one HTML file). One attempt, no help. Counted: the final file counts.
The exact promptcopy it and try it yourself↓
This is the task prompt word for word, as we handed it to the agent harness. The harness adds its own system prompt and tools, and some harnesses add short context notes of their own. A run that goes past 90 minutes also gets a short “finish now” message, as the prompt says. To try it yourself, give it to your own coding agent: it needs a shell and a working folder.
Design and build the most impressive, creative, elaborate and detailed steampunk airship dock voxel world you are capable of. Theme: a steampunk airship dock. Everything else (style, story, extra details) is your choice.
How you work:
- You work alone in the folder /work. Nobody will answer questions. Aim to finish in about 60 minutes. After 90 minutes you will get a message to finish; then you have at most 30 more minutes. Hard stop after 120 minutes. Spend the time where it shows in the result.
- Tools on this machine: shell, files, python3 with numpy and Pillow, ffmpeg, node, and `shot.sh index.html` (opens the page in a headless browser, saves a screenshot and prints console errors). There is no internet and no access to other machines.
- You may create your own assets locally with these tools (textures, sky, sounds, music) and embed them in the file as data URIs. Do not download anything.
- Keep a working /work/index.html at all times: write a first working version early, then improve it step by step. If you are stopped, the last version that loaded without errors counts.
- Check your work with `shot.sh` as often as you like, fix every error, and keep improving until you are satisfied. Then stop.
Deliverable: ONE self-contained file /work/index.html that opens and runs in Chrome.
- JavaScript libraries: only these, through an import map with these exact URLs (they work offline in the test browser). Use whatever helps, including all Three.js addons (post-processing, sky, water, noise and so on):
- "three": "https://cdn.jsdelivr.net/npm/three@0.170.0/build/three.module.js"
- "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.170.0/examples/jsm/"
- "simplex-noise": "https://cdn.jsdelivr.net/npm/simplex-noise@4.0.3/dist/esm/simplex-noise.js"
- "@tweenjs/tween.js": "https://cdn.jsdelivr.net/npm/@tweenjs/tween.js@25.0.0/dist/tween.esm.js"
- "cannon-es": "https://cdn.jsdelivr.net/npm/cannon-es@0.20.0/dist/cannon-es.js"
- No other external resources. Build every object from cubes (voxels); InstancedMesh is allowed.
- The page fills the whole window and resizes with it. All visible text is in English.
- After the scene is built, set `window.scene` to the Three.js scene and `window.ready = true`.
- An automatic slow cinematic camera tour starts on load. Mouse input switches to OrbitControls (drag to rotate, scroll to zoom).
- Sound, if any, starts only after the first click (browsers block autoplay).
- A small label in the top-left corner: "Steampunk Airship Dock".
Minimum content (go far beyond it):
1. A tall iron docking tower with platforms, stairs or ladders, and a mooring arm at the top.
2. At least two airships, each with a balloon envelope, a gondola and propellers.
3. Big brass gears on the tower or the buildings.
4. Pipes and at least three chimneys that emit rising steam particles.
5. At least one crane and a stack of cargo crates.
6. A ground area with a workshop building and a small rail track.
7. Propellers and gears rotate, steam rises and fades, and one airship slowly approaches the tower, docks, waits and leaves again, in a loop.
8. Warm sunset lighting with shadows.Play it yourself
Open full screenAI-generated The page this setup built, running live in your browser: click into it and use the controls it shows itself (usually drag to look around, scroll to zoom). It needs WebGL and can be slow on a weak graphics card.
The browser check
- page loads without page error1 / 1
- window.ready === true within 30 s1 / 1
- no console errors (whole session)1 / 1
- frame is not blank1 / 1
- frame rate in software GL (rAF over 5 s)0 / 1
- required objects (voxel mass, >=3 steam emitters, >=2 airships, label)2 / 2
- motion: pixel diff 0.5, >=3 rotating nodes 0.5, large group translating 12 / 2
- OrbitControls: drag and wheel change the picture beyond the animation baseline0 / 1
Measured 2026-10-25. Raw files: check · run info · command · final choice · contract · sampling · gate stats · screenshot · clip.mp4 · web.mp4 · web-poster.jpg.
The run's own headless check browser, which renders the page the model built, used up to 1318 % CPU. The load monitor counted it as another process. Browser check 8.0 out of 10 (airship-dock task): the page loads without a page error, is ready after 0.01 s, has no console errors, is not blank, has all required objects (a voxel mass of 4,013 cubes, 4 steam sources, 2 airships; 2 of 2 points) and the scene moves (2 of 2 points). The 2 lost points are the frame rate (9.37 frames per second in software rendering without a GPU, 10 give half a point and 20 the full point) and the orbit-controls test (drag and wheel changed the picture less than the check needs). One deviation from the kit author's default, named openly: the build test ran with the Qwen3.8-27B model card's thinking temperature 1.0 instead of the kit server's default 0.6. Everything else in the build test is the kit's setup: the same server, 262,144 tokens, MTP drafts, int4 KV cache, the harness the kit ships. The agent (DeepSeek Harness 0.1.3-alpha.2) took 103.7 minutes, one try, no help; the limit is 120 minutes. After 90 minutes the harness sends “Time is up. Finish now” and the model got it at 90.6 minutes (5 requests carried it); the run ended by itself at 103.7 minutes. 68 requests, no error, no request blocked (7,100,084 prompt tokens, 119,088 answer tokens, largest prompt 156,235 of 262,144 tokens). 21 versions of the page were seen on the way, 19 loaded without errors, and the last one counts; the first one came after 15.7 minutes. The limit per answer was 262,144 tokens (the Qwen3.8-27B model card, README.md:507-510; the kit's own harness default is 65,536); my test gate lowers it per request to the room left in the context (the kit server admits a request only if prompt and answer limit fit the cache), which happened in 65 of the 68 requests. What it built, as its own summary lists it and as the final picture shows: “Steampunk Airship Dock” (Aerodrome VII, Brassport, at sunset): a 40-unit iron lattice tower with platforms, stairs and a flag, two voxel airships, brass gears, steaming chimneys, a rotating crane, a workshop and a rail track, one airship that approaches, moors at the tower and leaves again, a sunset sky with water, clouds and birds, a 165-second camera tour, then mouse orbit and sound on click. The load monitor saw up to 1,318 % CPU from the check browser inside the test container.
Exact command we measured withfor reproducing↓
You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.
run_showcase.sh --harness dsh-a2 --task K1 --upstream http://127.0.0.1:44957/v1 --model qwen3.8-27b-exl3-4.0bpw --sampling-file $RUN/sampling-show.json --out $RUN/raw/nacht2410-show-r0/show --limit-s 7200 --inject-after-s 5400 --poll-s 20 --ctx 262144How fast it runs
| Measurement | Result |
|---|---|
| Decode | 70.8 tok/s |
| Words per second | 49.1 words/s |
| Characters per second | 329.1 chars/s |
| Decode, code prompt | 73.1 tok/s |
| Decode, prose prompt | 68.5 tok/s |
| Spread of the decode runs (CV) | 4.2 % |
| Spread of the code runs (CV) | 1.0 % |
| Spread of the prose runs (CV) | 4.2 % |
| Decode, window 1 | 71.3 tok/s |
| Prefill at 2K | 1067.5 tok/s |
| Prefill at 8K | 1065.7 tok/s |
| Prefill at 32K | 995.9 tok/s |
| Time to first token at 2K | 1.9 s |
| Time to first token at 8K | 7.7 s |
| Time to first token at 32K | 32.9 s |
| 1 request at once (total) | 58.0 tok/s |
| 2 at once (total) | 58.9 tok/s |
| 4 at once (total) | 59.5 tok/s |
| 8 at once (total) | 58.1 tok/s |
| 1 request at once (per request) | 58.0 tok/s |
| 2 at once (per request) | 44.3 tok/s |
| 4 at once (per request) | 24.7 tok/s |
| 8 at once (per request) | 13.0 tok/s |
| Server slots (from the recipe) | 1 slots |
| Long answer, wall time | 73.1 s |
Method: code+prose; 2 run(s) each; 512 tokens; 1 warm-up(s); median; requests at once: C1,C2,C4,C8 at once; 2 rounds each; 512 tokens per request; prose prompt; total = all tokens / wall time, per request = tokens / end-to-end time; median over the rounds. Measured 2026-10-25. Raw files: speed result · speed contract · log · long answer.
Requests at once: the server has 1 slot (from the author's recipe). C2, C4, C8 exceed the slots: the extra requests wait in the queue, and they were measured anyway. The speed test ran Mia's one-click kit (MiaAI-Lab/Qwen3.8-27B-16gb-NVIDIA-GPUs-one-click-install, commit bbb11db) the way her README sets it up for the 4.0 bpw profile (README.md:677): turboderp's Qwen3.8-27B EXL3 4.00 bpw (revision 113cf7a), context 262,144 tokens, int4 KV cache (CACHE_QUANT=4), MTP drafts (DRAFT=mtp, the kit's default, README.md:356), started with the kit's own linux/start.sh, ExLlamaV3 1.6.0. One thing is not the kit as released: the kit's main branch has no two-GPU mode (GPU_MEM_GB takes one number, tools/serve_openai.py:372-393 uses GPU 0 only). I used a copy of the kit with a small patch (GPU_MEM_GB as a list, one budget per card, and TENSOR_PARALLEL=1, which starts ExLlamaV3 in tensor-parallel mode with the native backend; the diff has the sha256 c62ab9fbc72a). The two cards get 14.5 GB each instead of the 22.8 GB the README gives for one 32 GB card. Model, context, KV cache, drafts and sampling are the author's 32 GB profile. Sampling for the speed test is the Qwen3.8-27B model card's non-thinking set (temperature 0.7, top_p 0.8, top_k 20, presence penalty 1.5; the kit server ignores presence penalty and min_p), thinking off, seed 42; the kit has no prompt-cache switch. The headline 70.77 tok/s is the mean of the code prompt (73.10) and the prose prompt (68.45), medians of two runs each (spread 1.0 % and 4.2 %). The kit reports no draft statistics, so the acceptance rate is not available. Requests at once: the kit's server runs one request at a time (tools/serve_openai.py:44 "requests are serialized (batch-1 draft); concurrent callers queue", the lock at :73, README.md:497 "One request at a time") and has no setting for more. The recipe therefore has 1 slot. The test sent 2, 4 and 8 requests at once anyway; the extra requests wait in the queue, so the total stays flat (58.0, 58.9, 59.5 and 58.1 tok/s for 1, 2, 4 and 8 at once) and the speed per request falls (58.0, 44.3, 24.7 and 13.0 tok/s). The 1-request value of the concurrency test (58.0 tok/s) counts the whole request, including the wait for the first token; the decode values above are measured after the first token.
Exact command we measured withfor reproducing↓
You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.
python3 speed2.py --base-url http://127.0.0.1:34053/v1 --label nacht2410-speed-r0 --prompts $BENCH/repos/rigmark-v2/prompts-v2.json --output $RUN/raw/nacht2410-speed-r0/nacht2410-speed-r0/speed2 --contract $RUN/raw/nacht2410-speed-r0/nacht2410-speed-r0/speed2/speed-contract.json --parts decode,prefill,conc,l1 --prefill-depths 2048,8192,32768 --prompt-ids code,prose --runs 2 --max-tokens 512 --warmups 1 --prefill-runs 3 --conc-levels 1,2,4,8 --conc-rounds 2 --conc-max-tokens 512 --conc-prompt prose --tokenizer-json $HOME/models-2410/turboderp_Qwen3.8-27B-exl3/tokenizer.json --tokenizer-python $BENCH/venv/bin/python --sampling {"temperature": 0.7, "top_p": 0.8, "top_k": 20, "min_p": 0.0, "presence_penalty": 1.5} --sampling-source thinking = Mia kit server defaults: MiaAI-Lab/Qwen3.8-27B-16gb-NVIDIA-GPUs-one-click-install@bbb11db:README.md:497 ("Defaults: temperature 0.6, top-p 0.95, top-k 20, thinking on") and tools/serve_openai.py:961-963 (request values win; min_p and presence_penalty are not read by the kit server, 0.0 = Qwen model card). instruct (speed2 etc., thinking off) = Qwen model card as in the card the 3.0 bpw card of Oct 20: https://huggingface.co/Qwen/Qwen3.8-27B README.md line 253. --model qwen3.8-27b-exl3-4.0bpw --no-cache-prompt --server-log $RUN/logs/server-A.log --engine-version-file $RUN/logs/engine-version.txt --server-slots 1 --server-slots-source MiaAI-Lab kit@bbb11db tools/serve_openai.py:73 (gen_lock = threading.Lock(), 'serialize generation (batch-1 draft)') and :44 ('requests are serialized; concurrent callers queue'); kit copy $HOME/mia-bench/kit-bbb11db-tp2-2410How well it answers
| Test | Result95 % margin | Right | Cut offcount as wrong | Raw files | |
|---|---|---|---|---|---|
| MMLU-Pro 400 fixed questions, letter only | 58.8 % ± 4.8 pts | 235 / 400 | 0 | answers · summary · log · contract | command |
| GPQA Diamond 198 questions, letter only | 43.9 % ± 6.9 pts | 87 / 198 | 0 | answers · summary · log · contract | command |
| IFEval 200 fixed prompts, strict | 86.0 % ± 4.8 pts | 172 / 200 | 0 | answers · summary · log · contract | command |
| LiveCodeBench 40 newest tasks, the code runs | 52.5 % ± 14.8 pts | 21 / 40 | 2 | summary · log · contract | command |
| Long text 8K 4 tasks x 10 at 8192 tokens | 85.0 % ± 11.0 pts | 34 / 40 | 0 | log · contract · answers · summary | command |
| Long text 32K 4 tasks x 10 at 32768 tokens | 67.5 % ± 14.0 pts | 27 / 40 | 0 | log · contract · answers · summary | command |
| GPQA 30, thinking on 30 questions, limit 16,384 tokens | 76.7 % ± 14.6 pts median 3,623 tokens, 43.8 s per question | 23 / 30 | 6 | contract · answers · summary | command |
Thinking off, except the last test. Seed 42. Sampling from the model card. A cut-off answer counts as wrong. Measured 2026-10-25.
Note from the run: The questions of each test ran 1 at a time, the stream count of the kit's server (same questions, limits and seed 42 for every question). MMLU-Pro and GPQA Diamond ran with an answer limit of 48 tokens (the answer is one letter); none of these answers was cut off. 2 of the 40 LiveCodeBench answers were cut off at the limit of 32,768 tokens and 6 of the 30 GPQA answers with thinking at the limit of 16,384 tokens; these count as wrong. None of the long-text answers was cut off. Sampling: with thinking off the Qwen model card's values (temperature 0.7, top_p 0.8, top_k 20, presence penalty 1.5); the GPQA test with thinking on ran with the kit server's own defaults (temperature 0.6, top_p 0.95, top_k 20, README.md:497), while the build test further down uses the model card's thinking temperature 1.0 (see the build test note). GPQA Diamond ran from the public mirror fingertap/GPQA-Diamond (198 questions), because the original is gated. These are my own tests, and no other run of this setup is mixed into the numbers on this page.
Exact commands we measured withfor reproducing↓
You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.
bash tools/quality2/measure_all.sh tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json --parts mmlupro --job nacht2410bash tools/quality2/measure_all.sh tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json --parts gpqa --job nacht2410bash tools/quality2/measure_all.sh tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json --parts ifeval --job nacht2410bash tools/quality2/measure_all.sh tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json --parts lcb --job nacht2410bash tools/quality2/measure_all.sh tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json --parts ruler --job nacht2410bash tools/quality2/measure_all.sh tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json --parts ruler --job nacht2410bash tools/quality2/measure_all.sh tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json --parts think --job nacht2410How much context fits
| Context size | Prompttokens | Filled | First token | Prefilltok/s, as the server reports it | Decodetok/s | Peak memoryGiB | Result |
|---|---|---|---|---|---|---|---|
| 4K 4,096 tokens | 3,798 | 92.7 % | 8.3 s | 456 | 72.2 | 16.53 | answered (stop) |
| 8K 8,192 tokens | 7,750 | 94.6 % | 4.2 s | 1,867 | 63.3 | 16.66 | answered (stop) |
| 16K 16,384 tokens | 15,798 | 96.4 % | 12.0 s | 1,315 | 68.9 | 16.88 | answered (stop) |
| 32K 32,768 tokens | 31,604 | 96.4 % | 28.5 s | 1,108 | 56.1 | 17.23 | answered (stop) |
| 64K 65,536 tokens | 62,733 | 95.7 % | 65.8 s | 954 | 55.2 | 17.96 | answered (stop) |
| 128K 131,072 tokens | 125,892 | 96.0 % | 163.1 s | 772 | 48.0 | 19.41 | answered (stop) |
| 256K 262,144 tokens | 249,729 | 95.3 % | 440.8 s | 567 | 38.2 | 22.42 | answered (stop) |
Memory test. For each context size (4K, 8K, 16K ... up to the largest size tested for the setup) the server is started again with that context, one prompt that fills about 95 % of the context is sent, and the model must answer. The largest size that loaded and answered counts. Decode speed is measured on that answer at the largest size. Peak memory is the GPU memory in use (nvidia-smi); the GPU was empty before each start. Measured 2026-10-25. Raw files: result of every step · log · contract.
Note from the run: The context is the kit's own 262,144 tokens for this profile, which is the largest size tested; the sizes from 4K to 128K came before it. For each size the kit's server was started again with that context (CONTEXT_SIZE of the recipe), one prompt that fills about 95 % of the size was sent, and the model answered at every size. The memory number is the GPU memory in use, added up over both cards: 22.42 GiB at 262,144 tokens (a prompt of 249,729 tokens), of the 32 GB the two cards have together. The decode speed at the largest size was 38.2 tok/s (one request; 72.2 tok/s at 4K).
Exact command we measured withfor reproducing↓
You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.
bash tools/quality2/measure_all.sh tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json --parts fit --job nacht2410Also made this possible
- Quant (EXL3 4.00 bpw) and engine (ExLlamaV3)
turboderp@turboderp_ Hugging Face GitHub - Model
Qwen@Alibaba_Qwen Hugging Face GitHub Website
Run it yourself
What you need and how to start it, step by step. The results below come from exactly this setup.
What you need
- Hardware
- 2x NVIDIA GeForce RTX 5060 Ti 16 GB (32 GB in total), one machine, tensor parallel over both cards.
- System
- Linux (we used the Linux start script)
- Model
- turboderp/Qwen3.8-27B-exl3 4.00bpw
- Quant (EXL3 4.00 bpw) and engine (ExLlamaV3)
- huggingface.co/turboderp/Qwen3.8-27B-exl3
- Engine
- ExLlamaV3 1.6.0 tensor parallel over two RTX 5060 Ti, 262,144 tokens of context, int4 KV cache, one request at a time — the program that loads the model and answers requestsBuild and settings we used: ExLlamaV3 1.6.0 (Mia one-click kit bbb11db + our TP2 patch), DRAFT=mtp, tensor-parallel native
- Recipe (one-click kit)
- github.com/MiaAI-Lab/Qwen3.8-27B-16gb-NVIDIA-GPUs-one-click-install by Mia (MiaAI-Lab)
Steps
Get the recipe and the model files from the list above. We ran the engine, ExLlamaV3 1.6.0 tensor parallel over two RTX 5060 Ti, 262,144 tokens of context, int4 KV cache, one request at a time, with the recipe (Mia one-click kit bbb11db + our TP2 patch).
Put these settings into the recipe's
.envfile. One setting per line.MODEL_DIR=turboderp_Qwen3.8-27B-exl3 CONTEXT_SIZE=262144 CACHE_QUANT=4 GPU_MEM_GB=14.5,14.5 TENSOR_PARALLEL=1 TP_BACKEND=native DRAFT=mtp PROFILE=4.0bpw-262kStart the server with this command. It loads the model into memory.
CUDA_DEVICE_ORDER=PCI_BUS_ID \ CUDA_VISIBLE_DEVICES=0,1 bash linux/start.sh \ --no-harness \ --no-pickWhat the parts mean
CUDA_DEVICE_ORDER=PCI_BUS_IDcounts the GPUs in slot order, the same order nvidia-smi showsCUDA_VISIBLE_DEVICES=0,1which NVIDIA GPU the program may use: the number of the GPU in our machine (with one GPU it is 0)MODEL_DIR=turboderp_Qwen3.8-27B-exl3the folder with the model filesCONTEXT_SIZE=262144the context window in tokens: how much text the model can see at onceDRAFT=mtpMTP (multi-token prediction): the model guesses several tokens ahead and checks them, which makes answers fasterCACHE_QUANT=4keeps the context memory (KV cache) in 4 bits, which uses less GPU memoryGPU_MEM_GB=14.5,14.5how much GPU memory, in GB, the kit plans withPROFILE=4.0bpw-262kthe name of the kit profile these settings belong to; the name gives the bits per weight and the context size
Exact command we measured withfor reproducing↓
You do not need this to run the model. It is the start text exactly as our run recorded it, with the engine build in front, so anyone can repeat the result.
ExLlamaV3 1.6.0 (Mia one-click kit bbb11db + our TP2 patch), DRAFT=mtp, tensor-parallel native; CUDA_DEVICE_ORDER=PCI_BUS_ID CUDA_VISIBLE_DEVICES=0,1 bash linux/start.sh --no-harness --no-pick (.env: MODEL_DIR=turboderp_Qwen3.8-27B-exl3 (4.00bpw @113cf7a) CONTEXT_SIZE=262144 CACHE_QUANT=4 GPU_MEM_GB=14.5,14.5 TENSOR_PARALLEL=1 TP_BACKEND=native DRAFT=mtp PROFILE=4.0bpw-262k)Context and sampling: 262,144 tokens (the kit's 4.0 bpw profile, README.md:677), int4 KV cache, 14.5 GB budget per card on two cards with ExLlamaV3 tensor parallel (native backend), MTP drafts, one request at a time (the kit server serializes requests), seed 42, no prompt cache (the kit has no switch). Sampling per part: speed, quality and sparkDash with thinking off use the Qwen3.8-27B model card's non-thinking values (temperature 0.7, top_p 0.8, top_k 20, presence penalty 1.5); GPQA with thinking on uses the kit server's defaults (temperature 0.6, top_p 0.95, top_k 20, README.md:497); the build test with thinking on uses the model card's thinking values (temperature 1.0, top_p 0.95, top_k 20, presence penalty 0.0), which differs from the kit's default 0.6 in the temperature only. Agent for the build test: DeepSeek Harness 0.1.3-alpha.2 (headless), the harness version the kit pins (.env.example:114); reasoning effort xhigh, the Qwen3.8 template default.. Hardware: 2x NVIDIA GeForce RTX 5060 Ti 16 GB (32 GB in total), one machine, tensor parallel over both cards.. All raw files of this setup: raw/v2/qwen38-27b-exl3-4-0bpw-kit-tp2-2x5060ti.
Mia's own benchmark, run unchanged
This is Mia's own benchmark tool (commit 21a3511), run unchanged. It has its own section on this page, and it is never mixed with my numbers. A cut-off answer counts as wrong here, so a value can differ from sparkDash's own screen.
| Test | Result95 % margin | Right | Cut offcount as wrong | Raw files | |
|---|---|---|---|---|---|
| Quality QA 150 questions | 78.7 % ± 6.5 pts | 118 / 150 | 0 | answers · summary | command |
| Quality MMLU 285 questions | 85.3 % ± 4.1 pts | 243 / 285 | 22 | answers · summary | command |
| Tool Eval Quick 15 scenarios, tool use | 93 / 100 | 13 / 15 passed | — | tool eval result · tool eval report · tool eval command · summary | command |
| Decode, 1 request at once first token 348 ms | 126.4 tok/s | — | — | decode result · summary | command |
| Prefill at 4K first token 3.9 s | 1117.1 tok/s | — | — | prefill result · summary | command |
| Prefill at 8K first token 7.8 s | 1093.7 tok/s | — | — | prefill result · summary | command |
| Prefill at 16K first token 15.7 s | 1060.1 tok/s | — | — | prefill result · summary | command |
| Prefill at 32K first token 32.9 s | 1004.5 tok/s | — | — | prefill result · summary | command |
Seed 1234 applies to the two quality tests; decode, prefill and tool eval send no seed. The benchmark client ran on a separate machine that is never part of the measured group. Measured 2026-10-25. Version 2.50.0, commit 21a3511.
QA. Quality QA, 150 items, seed 1234, temperature 0, thinking off, 4 requests at once (Mia's default). An answer cut off at the token limit counts as wrong. ± is the 95 % margin (Wilson).
MMLU. Quality MMLU, 285 items (5 for each of 57 subjects, 4 answers), seed 1234, temperature 0, thinking off. An answer cut off at the token limit counts as wrong. ± is the 95 % margin (Wilson).
Decode. Decode bench, 1 request at once, 400 tokens, prompt type structured, temperature 0, thinking off. No seed is sent.
Prefill. Prefill bench at 4K, 8K, 16K and 32K tokens. sparkDash skips a size that does not fit into the context. No seed is sent.
Tool Eval Quick. Tool Eval Quick: tool-eval-bench (SeraphimSerapis, commit c61319b), 15 core scenarios (--short), --no-think, --timeout 120. Score 0 to 100. No seed is sent.
Note from the run: sparkDash runs its own tests (its own QA and MMLU questions at temperature 0, thinking off, a cut-off answer counts as wrong; none of the QA answers and 22 of the 285 MMLU answers were cut off at the answer limit), so its decode and prefill values are not comparable with Speed v2 above: its decode test uses a structured prompt, Speed v2 a code and a prose prompt. The sparkDash client ran on another machine and was never part of the measured group.
Exact commands we measured withfor reproducing↓
You do not need this to run the model. It is the exact command of our measurement, so anyone can repeat the result.
python3 tools/quality2/sparkdash_client.py tools/quality2/cards/qwen38-27b-exl3-4.0bpw-kit-tp2-dsh-2x5060ti.json <box> --client <client machine> --job nacht2410 --out $RUNtool-eval-bench --base-url http://127.0.0.1:<port> --model qwen3.8-27b-exl3-4.0bpw --short --no-think --timeout 120 --json-file $BENCH/sparkdash-client/runs/nacht2410-sparkdash-r5/tooleval/result.json --no-live