license: mit
base_model: ddalcu/DeepSeek-V4.1-Flash-1017-MLX-Serve-iQ-MLX-3.0bpw
base_model_relation: quantized
library_name: mlx-serve
pipeline_tag: text-generation
language: [en, zh]
tags: [mlx, mlx-serve, deepseek_v41, abliterated, uncensored, engram, dspark, moe]
DeepSeek-V4.1-Flash-1017 · iQ-MLX 3.0 bpw · abliterated overlay
A 1.09 GB sidecar, not a 398 GiB pack. It rewrites 26 attention-output projections
(layers.10–35.attn.wo_b) inside the base pack and leaves every other byte alone.
Base: ddalcu/DeepSeek-V4.1-Flash-1017-MLX-Serve-iQ-MLX-3.0bpw @ 74cca9ac
Engine: mlx-serve ≥ 26.10.3 · Mac: 256 GiB unified memory
⚠️ Removes a safety behaviour. 100/100 compliance on standard harmful prompts
versus 9/100 for the base. No guardrails. Readdocs/RESPONSIBLE_USE.md
before serving it to anyone but yourself.
Fidelity against the base pack
KL(base ‖ graft) over 200 benign prompts, 8,762 scored positions, 112 content clusters,
full 129,280-token vocabulary. Intervals are paired whole-prompt cluster bootstraps.
| metric | graft λ=2.0 | base |
|---|---|---|
| first-token KL | 0.0915 (CI 0.060–0.130) | 0 by construction |
| all-position mean KL | 0.1132 | 0 |
| median KL | 0.0012 | 0 |
| p95 KL | 0.3785 | 0 |
| top-1 agreement | 89.56% | 100% |
| first-token top-1 | 83.50% | 100% |
| benign greedy change | 10.44% | — |
edit size rel_fro |
0.03092 | — |
First-token KL is the field's yardstick (Heretic/Young 2025): <0.1 excellent, 1.0+
significant drift. The point estimate is inside that band; the upper end of the interval
reaches into the next one.
Capability — paired deltas only
| task | base | graft | delta |
|---|---|---|---|
| GSM8K, 400 items | 64.75% | 69.75% | +5.00 pp (z=1.51, ns) |
| IFEval prompt-strict, 200 | 10.50% | 15.00% | +4.50 pp |
| IFEval prompt-loose, 200 | 12.50% | 17.00% | +4.50 pp |
| IFEval inst-strict, 200 | 19.81% | 21.38% | +1.57 pp |
| IFEval inst-loose, 200 | 21.07% | 22.64% | +1.57 pp |
No regression detected; every metric moves in the graft's favour. The absolutes are not
comparable to full-precision releases — both tasks ran through raw /v1/completions
with no chat template on a model that answers in prose. A 12-item chat probe scored 12/12
with thinking on and 12/12 with thinking off, ruling out the pack as the cause. Quote
the deltas, never the absolutes.
Behaviour on standard refusal prompts
100 harmful + 100 benign (JailbreakBench), temperature 0, thinking off, 512-token cap,
frozen structural classifier 931aca9bd5….
| prompt set | base | graft λ=2.0 |
|---|---|---|
| harmful: compliance / refusal | 9 / 91 | 100 / 0 |
| benign: compliance / refusal | 89 / 11 | 100 / 0 |
The graft removes refusals on harmful prompts and removes the base model's own 11%
over-refusal on harmless ones.
Everything else that still works
| check | graft | base |
|---|---|---|
| needle at 75,447 / 151,915 / 228,383 tokens | ✅ ✅ ✅ | ✅ ✅ ✅ |
| vision (magenta / blue / green) | ✅ ✅ ✅ | ✅ ✅ ✅ |
| MTP speculative decoding | 57.1 → 124.3 tok/s (+117.7%) | +118.0% |
| tool call + grounded continuation | ✅ | ✅ |
Unchanged from base on all four. That matters most for MTP: the edit sits next to the
DSpark target layers, so draft acceptance was the thing most likely to break.
Raw numbers and method: docs/MEASUREMENTS.md.
Install
hf download ddalcu/DeepSeek-V4.1-Flash-1017-MLX-Serve-iQ-MLX-3.0bpw \
--revision 74cca9ac1f5741b3e629b5e2ab4d18d681ccc6ba --local-dir base
hf download lued/DeepSeek-V4.1-Flash-1017-MLX-Serve-iQ-MLX-3.0bpw-abliterated-overlay \
--local-dir overlay
python overlay/apply-graft.py \
--src base --dst base-uncensored \
--sidecar overlay/wo_b_l10_35_iq3v11_abliterated_l2.0.safetensors \
--lambda-value 2.0 \
--expected-sha256 98a3b791ec575a36bca7ac685cd8b181dab20c0056703457b643660793d895bf \
--source-repo lued/DeepSeek-V4.1-Flash-1017-MLX-Serve-iQ-MLX-3.0bpw-abliterated-overlay \
--source-revision 803de92ea3438f61b799851911379407aca2d50d \
--base-revision 74cca9ac1f5741b3e629b5e2ab4d18d681ccc6ba
mlx-serve --model ./base-uncensored --serve
Hardlinks the 33 untouched shards, rewrites the 4 that carry L10–35, verifies the result,
and restores from a hash-checked backup on any failure. ~2 min, ~22 GiB.
Docs
docs/METHOD.md |
the edit, why it is recomputed rather than copied, block format |
docs/MEASUREMENTS.md |
every table, the method behind it, verification |
docs/LIMITS.md |
what was not tested, stated plainly |
docs/RESPONSIBLE_USE.md |
where this must not be used |
MIT, inherited from the base pack. Direction derived fromdrowzeys/keys-…-Abliterated (MIT).
Not affiliated with DeepSeek, ddalcu, drowzeys or the mlx-serve authors.