Recipe by Mia's AI Lab · AGPL-3.0-or-later · Built on 0xSero, knapcio, DeepSeek, SGLang, NVIDIA
Three DGX Sparks · Ask about images
DeepSeek-V4.1-Flash-1017
Its creator tested it on three DGX Sparks, and it is the strongest model with a working test there for this.
Tested by Mia's AI Lab on three DGX Sparks. See their results.
Advanced: link the Sparks with cables and set up NVIDIA Sync first. NVIDIA guide
- Open a coding agent on the Spark (Claude Code, Codex or Cursor).
- Paste this prompt:
Set up Mia’s AI Lab recipe for DeepSeek-V4.1-Flash-1017 on my DGX Sparks: https://github.com/MiaAI-Lab/DeepSeek-v4.1-Flash-DGX-Sparks
Follow its README exactly. Use start.sh for three Sparks or start-tp4.sh (docs/tp4.md) for four.
1. Check first: cable links, SSH between the Sparks, Docker, disk and NVMe space. Run ./start.sh doctor and stop if it fails.
2. Set the IPs in .env (or .env.tp4), then run download, build, share, pack and serve in that order.
3. Run ./start.sh smoke and tell me the result.
Never set OFFLOAD_MODE=ram. Ask me before changing network settings or deleting anything.What happens next
- Your coding agent checks the Spark first, then downloads and starts the model. It asks before changing anything.
- The first start can take a long time: the download is large.
Details
THREE DGX SPARKS · IMAGES IN
git clone https://github.com/MiaAI-Lab/DeepSeek-v4.1-Flash-DGX-Sparks.git
cd DeepSeek-v4.1-Flash-DGX-Sparks
cp -n .env.example .env # set IPs
./start.sh doctor && ./start.sh download && ./start.sh build && ./start.sh share && ./start.sh pack && ./start.sh servegit clone https://github.com/MiaAI-Lab/DeepSeek-v4.1-Flash-DGX-Sparks.git
cd DeepSeek-v4.1-Flash-DGX-Sparks
cp -n .env.example .env # set IPs
./start.sh doctor && ./start.sh download && ./start.sh build && ./start.sh share && ./start.sh pack && ./start.sh serveIf it fails
The head runs out of memory and all ranks stall.
Never use OFFLOAD_MODE=ram. Keep other programs off the head Spark.
Replies run forever.
Always send max_tokens. The server also stops repeating loops.
HOW WE PICK
- A pick needs a recipe whose author published a working run on this many Sparks. That run is the fit proof, so we use no memory estimate here. Ranking is the same: Arena board per job, Artificial Analysis for long documents.
- Only recipes with files at 4-bit or better.
- Long documents: only runs that published a test with a prompt of 128K tokens or more.
- Same model in two recipes: the faster tested run wins.
- Our judgment: under 15 tok/s is too slow for everyday use. Where a published test shows a model below that, it cannot be the main pick; it moves to an ALSO line.
- A main pick needs a published benchmark table, log or reproducible command output. A lone summary number is not enough; that recipe moves to an ALSO line.
- Sometimes no model tested here has an Arena score for a job. Sometimes one without an Arena score beats the Arena pick on Artificial Analysis. Then we rank the whole job by the Artificial Analysis index instead, and say so on the SCORE line.
- CHAT: Arena Text (overall), 2026-10-15
- CODING: Arena Text: Coding, 2026-10-15
- WEB APPS: Arena WebDev, 2026-10-19
- WRITING: Arena Creative Writing, 2026-10-15
- IMAGES IN: Arena Vision, 2026-10-19
- LONG DOCS: Artificial Analysis Intelligence Index
RunCards does not test recipes. TESTED BY is the recipe author's own published run. CLOSE means the two scores' margins overlap, so the order could flip. Scores checked 2026-10-19.