DeepSeek V4.1 Flash 1017 (uncensored "heretic" build) with 256 of its 384 routed experts kept in every layer, so it fits four 64 GB GPUs plus 256 GB of system RAM. No weight was re-quantized: the routed experts stay DeepSeek's own 4-bit MXFP4, the dense layers FP8, and every kept byte is identical to the base.
Every number on this card is labelled. Measured means we ran it. Forecast means it is calculated, never run. All CMP 170HX speeds are forecasts.
A small business owner wanted a frontier-class uncensored AI running at home.
The challenge: fit DeepSeek's newest model into 256 GB at 4-bit without making it dumber or re-censoring it. The full uncensored model is 510 GB, and its routed experts are already 4-bit, so squeezing bits further was off the table. Instead, a third of the experts were removed with REAP, and everything kept was left byte for byte as DeepSeek made it.
The question behind it: is 256 GB worth it over 128 GB? A common view is that the big models only make sense at full size (400-500 GB), and that cutting one down to 256 GB loses so much that you may as well stay at 128 GB with a model built for that size. This project tested that directly. The best 128 GB-class model available, Qwen 3.8 Flash Next Uncensored (97.5 GB at 4-bit), was run against this 256 GB cut on identical questions with identical grading. For this model the answer was yes, 256 GB is worth it:
What we learned:
How it was built: the engineering (cutting, testing, speed work, recipes and this card) was done by AI coding agents, Anthropic's Claude running in Claude Code. The owner set the goals, made the calls and paid for the hardware.
| Base | pqhaz/DeepSeek-V4.1-Flash-1017-heretic (revision 12d58ad0): DeepSeek V4.1 Flash 1017 with the refusal direction removed from 38 attention tensors |
| Pruning | REAP, mean ranking, 256 of 384 routed experts kept per layer, ranked on generic calibration data plus the uncut model's own answers |
| Kept as is | attention, shared experts, router rows of kept experts, the 3 MTP/DSpark draft layers, vision tower, tokenizer, Engram tables |
| Precision | routed experts MXFP4 (4-bit), dense layers FP8, Engram tables FP8: as DeepSeek ships them |
| Size | 210.9 GB in this repo, plus 203.1 GB of Engram tables from DeepSeek's repo (414.0 GB total) |
| Fits | 4 GPUs with 64 GB each (51.2 GiB of weights per card at TP4) + 256 GB of host RAM for the tables |
| Context | 1,048,576 tokens; two ~1M-token chats at once measured on A100s limited to 64 GiB per card |
| Engines tested | vLLM SM80 backport (A100, and the CMP rehearsal), SGLang (RTX PRO 6000) |
This repo holds 46 of the 48 weight shards. The last two are the Engram lookup tables (203.1 GB). They are DeepSeek's own 1017 tables, untouched by uncensoring or pruning, so they are not duplicated here. Fetch them from DeepSeek's official repo into the same folder:
hf download BUCKHU/DeepSeek-V4.1-Flash-1017-Uncensored-REAP256-4bit --local-dir ./ds1017-reap256
hf download deepseek-ai/DeepSeek-V4.1-Flash-1017 \
model-00047-of-00048.safetensors model-00048-of-00048.safetensors \
--revision 1bae0e1088993b9b82de08f59de5be5a34e42170 --local-dir ./ds1017-reap256
cd ds1017-reap256 && sha256sum -c SHA256SUMS
The Engram shards must have these sha256 values:
76a05106ece259be83d1bfea0dcb54f23377864ee60fd321690f35e6698a2af5 model-00047-of-00048.safetensors
9dc51433e195bc78b5ad846b68643cc0351d3b174e5e4309222d3b7402c83afd model-00048-of-00048.safetensors
The same bytes are in pqhaz/DeepSeek-V4.1-Flash-1017-heretic and dealignai/DeepSeek-V4.1-Flash-1017-UNCENSORED-FP8.
Do not use dealignai/DeepSeek-V4.1-Flash-UNCENSORED-FP8 (the older, non-1017 release). Its tables differ, and the
model loads and runs with them while being quietly worse. recipes/fetch-engram.sh does the download and the check.
All quality tests were run on 17-18 Oct 2026 on rented 4 x RTX PRO 6000 (SGLang), with the same frozen items for every
model, each maker's own sampling, thinking at the middle of each model's scale (DeepSeek effort 75, Qwen "medium"),
a 12,000-token thinking cap and a 16k answer cap. Paired 95% ranges cover item choice
only (one sample per item). Aggregates are in results/.
Measured, same harness. "Uncut" = the heretic 1017 base with all 384 experts.
| Test | Uncut | This cut | Qwen (for scale) | Uncut vs cut |
|---|---|---|---|---|
| AIME 2025 (30 problems x 4 runs) | 91.7 | 89.2 | 76.7 | no measurable loss (p 0.45) |
| HMMT Feb 2025 (30 x 4) | 87.5 | 90.8 | 68.3 | no measurable loss (p 0.39) |
| GPQA Diamond (198) | 90.4 | 78.8 | 86.4 | loss (p < 0.001) |
| Humanity's Last Exam, text-only (same 217 items) | 29.5 | 22.6 | 16.6 | loss (p 0.017) |
| Replies in the prompt's language (44 non-English prompts) | 42/44 | 15/44 | not run | loss |
| Speed on 4 x RTX PRO 6000, prose / code tok/s | 127.7 / 184.0 | 110.9 / 156.7 | - | slower (fewer draft tokens accepted) |
Qwen3.8-Flash-Next-Uncensored at IQ4_XS (97.5 GB GGUF), llama.cpp. Measured, paired on identical items.
| Test | Items | This cut | Qwen | Verdict |
|---|---|---|---|---|
| Reasoning: LiveBench | 540 | 86.1 | 81.9 | cut better (+4.3, range +1.6 to +6.9) |
| Following instructions: IFBench | 300 | 77.0 | 66.7 | cut better (+10.3, range +5.3 to +15.3) |
| Coding: LiveCodeBench, newest 100 | 100 | 81 | 73 | borderline (+8, range 0 to +16) |
| Tool calling: BFCL multi-turn | 100 | 59 | 55 | tie |
| Long documents: LongBench v2 | 100 | 58 | 54 | tie |
| Web research: BrowseComp-Plus | 50 | 38 | 40 | tie |
| Real small-business tasks (8 x 5 runs) | 40 | 97.2 | 97.4 | tie |
| Agent tasks | 5 | 100 | 100 | tie |
| Images and charts | 420 | 79.5 | 86.0 | Qwen better (-6.4, range -9.8 to -2.9) |
| Tool calling with a tool-use rule (both models tuned alike) | 100 | 66 | 56 | cut better (p 0.031) |
| 8 unseen business tasks x 5 (tuned alike) | 40 | 94.7 | 91.2 | tie |
| Arena-Hard v2, blind pairwise judge | 250 | 111 wins | 65 wins | cut better (74 ties; win rate 59.2%, p 0.0007) |
The business tasks and web research were machine-graded for this cut (the earlier cut was also hand-checked; the grader held up). About 26 of the cut's Arena-Hard losses were replies in the wrong language.
The CMP box was not available, so the CMP 170HX was rehearsed on rented 4 x A100 80 GB: each card limited to 64 GiB, and every tensor-parallel transfer slowed to the CMP's link speed (6.7 GB/s with the x16 mod, 1.7 GB/s stock). The A100 numbers are measured. CMP = A100 / 1.4 (range / 1.2 to / 1.55), from the A100 vs CMP compute and memory bandwidth: a forecast, not a measurement. Engine: the vLLM SM80 backport with our patches.
| Workload | Before -> after | Change |
|---|---|---|
| Two 500K chats | 64 -> 80 tok/s each (CMP forecast), A100 89.3 -> 112.4 (measured) | +26% |
| One 500K chat | 95 -> 99 (CMP forecast) (A100 132.75 -> 138.3, measured) | +4% |
| One short chat | 98 -> 105 (CMP forecast) (A100 137.4 -> 147.6, measured) | +7% |
| Biggest single chat | 262K -> 1M tokens (A100 measured, 64 GiB per card) | |
| Two chats at once | ~220K each -> ~1M each (A100 measured, 64 GiB per card) |
The shipped setting (max_model_len 1,048,576, max_num_seqs 2, VLLM_PREFILL_BUFFER_MULT=4) gives a KV pool of
3,669,475 tokens on four 64 GiB cards (A100 measured). Two ~1M-token chats ran at once: 0 preemptions, both
hidden "needles" found, 110.7 and 95.5 tok/s while both generated. Before the memory fix the pool at that setting was
1,350,349 tokens and only one 1M chat fit. The fix: upstream reserves a prefill workspace of 40 x max_model_len
(5.5 GB per card at 1M), sized for Hopper; 4 x is enough while at most 4 chats run.
Full recipes in recipes/; patches in patches/.
| Hardware | Engine | Numbers | Recipe |
|---|---|---|---|
| 4 x RTX PRO 6000 (384 GB) | SGLang, killy's setup + our small patches | 110.9 prose / 156.7 code tok/s, one chat (measured). The full uncut model is faster (127.7 / 184.0) and smarter on this box: run that instead. | recipes/rtx-pro-6000.md |
| 4 x A100 80 GB | vLLM SM80 backport + patches/vllm-sm80 |
See above (measured under CMP limits). Plain A100s should be faster; the final stack was not measured without limits. | recipes/a100.md |
| 4 x CMP 170HX, 64 GB unlocked | same as A100 | About 105 / 99 / 80 tok/s (short chat / one 500K chat / two 500K chats each), forecast | recipes/cmp170hx.md |
The A100/CMP server in one line (after bash patches/vllm-sm80/apply.sh <vllm package dir>):
MODEL_DIR=./ds1017-reap256 PORT=8000 GMU=0.92 bash recipes/serve-vllm-sm80.sh # GMU: see the recipe for your card
Requests: thinking is on at effort 75 (1017's default; the backport would otherwise use 50). Send
"thinking_token_budget": 12000 per request (24000 for hard science). DeepSeek recommends temperature 1.0 and top_p 1.0.
curl -s localhost:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{
"model": "local", "temperature": 1.0, "top_p": 1.0, "thinking_token_budget": 12000,
"messages": [{"role": "user", "content": "Explain the CAP theorem in three sentences."}]}'
CMP 170HX notes (details and links in recipes/cmp170hx.md): unlock with
cmpunlocker (8 GB Hynix cards -> 64 GB); check every card at every
boot (64 GB visible, unlocked tensor rate, link width, no power-brake slowdown); run memtest_vulkan at 64 GB for at
least 10 minutes per card and accept 0 errors, because there is no ECC and errors corrupt output silently; the x16
capacitor mod was worth +29% prose / +17% code for one chat in the rehearsal but has caused memory errors on some
cards, so re-test after it; the cards have no fans and need forced air or water; cap power at 140-180 W; 256 GB of
host RAM minimum.
wo_a kept in FP8 at decode):
step time -4.2%. The four microbenchmark savings (about 0.8 ms) add up to the measured 0.79 ms.results/speed_techniques.csv.Final profile, one short chat, A100 with emulated links: 19.4 ms per decode step against a physics floor (bytes that must be read, plus link time) of about 8-9.6 ms.
torch.compile. The model runs uncompiled in this backport. Fusing the small kernels is estimated
at about 1 ms per step (about 5%), but it needs every custom kernel registered for tracing first. Deferred to real CMP
hardware, where it should be measured anyway (the CMP's FP32 FMA rate is very low).config.json named the wrong base repo. Following it would have fetched the wrong Engram
tables. Corrected in this release.--language-model-only); images were tested on SGLang.keepset_mean_k256.json lists the kept expert ids per layer. Its text_tokens / image_tokens fields are
placeholders written by the conversion tool; the real calibration is described in config.json under pruned_from.| Path | What |
|---|---|
model-000NN-of-00048.safetensors (46), model.safetensors.index.json, config.json, tokenizer, chat_template.jinja, encoding/ |
the model (shards 47 and 48: see Download) |
SHA256SUMS |
sha256 of every model file, including the two Engram shards |
recipes/ |
how to run on RTX PRO 6000, A100 and CMP 170HX; serve scripts; final-stack.env |
patches/ |
our engine patches for the vLLM SM80 backport and SGLang, with a README |
results/ |
aggregate scores and speed tables behind this card |
License: MIT, as for DeepSeek V4.1 Flash 1017 and the heretic base. Our patches and scripts are MIT as well; the engine files they modify keep their own licenses (Apache-2.0).
mlabonne/harmful_behaviors. Only aggregate scores are published.model-00017-of-00048.safetensors 5.0 GBmodel-00005-of-00048.safetensors 5.0 GBmodel-00011-of-00048.safetensors 5.0 GBmodel-00023-of-00048.safetensors 5.0 GBmodel-00027-of-00048.safetensors 5.0 GBmodel-00031-of-00048.safetensors 5.0 GBmodel-00035-of-00048.safetensors 5.0 GBmodel-00039-of-00048.safetensors 5.0 GBmodel-00013-of-00048.safetensors 5.0 GBmodel-00014-of-00048.safetensors 5.0 GBmodel-00015-of-00048.safetensors 5.0 GBmodel-00016-of-00048.safetensors 5.0 GBmodel-00018-of-00048.safetensors 5.0 GBmodel-00019-of-00048.safetensors 5.0 GBmodel-00020-of-00048.safetensors 5.0 GBmodel-00021-of-00048.safetensors 5.0 GBmodel-00022-of-00048.safetensors 5.0 GBmodel-00024-of-00048.safetensors 5.0 GBmodel-00025-of-00048.safetensors 5.0 GBmodel-00026-of-00048.safetensors 5.0 GBmodel-00028-of-00048.safetensors 5.0 GBmodel-00029-of-00048.safetensors 5.0 GBmodel-00030-of-00048.safetensors 5.0 GBmodel-00032-of-00048.safetensors 5.0 GBmodel-00033-of-00048.safetensors 5.0 GBmodel-00034-of-00048.safetensors 5.0 GBmodel-00036-of-00048.safetensors 5.0 GBmodel-00037-of-00048.safetensors 5.0 GBmodel-00038-of-00048.safetensors 5.0 GBmodel-00040-of-00048.safetensors 5.0 GBmodel-00041-of-00048.safetensors 5.0 GBmodel-00042-of-00048.safetensors 5.0 GBmodel-00003-of-00048.safetensors 5.0 GBmodel-00004-of-00048.safetensors 5.0 GBmodel-00006-of-00048.safetensors 5.0 GBmodel-00007-of-00048.safetensors 5.0 GBmodel-00008-of-00048.safetensors 5.0 GBmodel-00009-of-00048.safetensors 5.0 GBmodel-00010-of-00048.safetensors 5.0 GBmodel-00012-of-00048.safetensors 5.0 GBmodel-00046-of-00048.safetensors 2.7 GBmodel-00044-of-00048.safetensors 2.7 GBmodel-00045-of-00048.safetensors 2.6 GBmodel-00002-of-00048.safetensors 1.3 GBmodel-00043-of-00048.safetensors 1.3 GBmodel-00001-of-00048.safetensors 971 MBpqhaz/DeepSeek-V4.1-Flash-1017-hereticHave the files? Submit a torrent.
Submit a torrentHave the complete files and permission to share them? Replace the example folder path. The script checks the files, makes a torrent and submits its magnet and checksums. Keep your torrent client seeding. Get your community key from your settings, and read the script before running it.
curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo BUCKHU/DeepSeek-V4.1-Flash-1017-Uncensored-REAP256-4bit ./model-folder