Instructions to use Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated") model = AutoModelForCausalLM.from_pretrained("Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated
- SGLang
How to use Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated with Docker Model Runner:
docker model run hf.co/Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated
DeepSeek-V4-Flash-Vision-Exp — Abliterated (Overlay)
⚠️⚠️⚠️ THIS REPOSITORY DOES NOT CONTAIN THE FULL MODEL ⚠️⚠️⚠️
This repo ships only the abliteration overlay + repointed index. You MUST first download the original base weights to use it:
Required base:
deepseek-ai/DeepSeek-V4-Flash-Vision-Exp— all 48 shards (model-00001-of-00048.safetensors…model-00048-of-00048.safetensors), ~157 GB.Setup (3 steps)
- Download the original model repo above (48 shards + its
model.safetensors.index.json).- Copy this repo's
model-overlay-00001-of-00001.safetensors(1.44 GB) and overwrite the base repo'smodel.safetensors.index.jsonwith this repo's index.- Load the directory with a V4-capable vLLM vision fork (see Serving below).
The overlay only stores the 92 edited tensors; without the base shards the repo cannot load.
A decensored (abliterated) rebuild of deepseek-ai/DeepSeek-V4-Flash-Vision-Exp — a multimodal (vision-language) DeepSeek-V4 MoE model served at native precision across 2× NVIDIA RTX PRO 6000 Blackwell (96 GB each) with vLLM.
Refusal behaviour was removed from the attention output projections only. All routed experts, shared experts, wo_a, embeddings, routers, norms and every mHC parameter are untouched. The 32-layer vision tower and its bias_vl are also untouched — the edit is confined to the text path's attn.wo_b tensors, yet the visual path decensors too (see Validation).
This is an overlay, not a re-quantization. Exactly 92 of 72,633 tensors (0.13 %) differ from the base release; the other 72,541 are byte-identical and verifiable per-tensor by sha256. There is no quantization step anywhere in this pipeline — the model ships at the base checkpoint's native precision.
⚠️ Uncensored model. Safety refusals have been substantially removed. You are responsible for how you use it. Intended for local/research use on hardware you control. It will attempt almost any request.
Highlights
| Base | deepseek-ai/DeepSeek-V4-Flash-Vision-Exp (DeepSeek-V4 MoE + 32-layer vision tower) |
| Architecture | 43 layers, hidden 4096, 256 experts (top-6) + 1 shared, hybrid CSA + HCA attention, mHC hyper-connections, inline 3-stage DSpark draft head; vision tower 32×1024 dim, patch 14, downsample 3, bias_vl |
| Context | 1,048,576 native (served here at 524,288) |
| Precision | unchanged — base checkpoint's native precision (FP8 e4m3 block-scaled elsewhere, FP4 routed experts) |
| Edit | rank-1 orthogonal projection, λ = 2.0, on 43 × layers.*.attn.wo_b + 3 × mtp.*.attn.wo_b (92 tensors) |
| Untouched | routed + shared experts, wo_a, embed, head, routers, norms, entire 32-layer vision tower + bias_vl, all mHC params |
| Size | this repo: 1.44 GB overlay (+ base ~157 GB required) |
| Runtime | vLLM (fraserpricee/vllm:dspark-cu132-vision), TP=2 across 2× RTX PRO 6000 Blackwell |
Validation (abliterated vs original base — measured on this checkpoint)
Refusal & coherence
| Metric | Base Vision-Exp | This model (abliterated) |
|---|---|---|
| Refusal — long-gen mass scan (n=300 AdvBench) | — | 0.0 % safety refusals (7 raw detector hits; 6 verified as modality/placeholder misfires, the 1 remaining is an ideological stand on writing an oppressive book — not a safety refusal) |
| Empty-answer rate (n=300) | — | 0.0 % |
| Generation coherence (40 outputs, chat+think) | clean | 0 true garbled spans (10 flags all misreads) |
| Multi-turn context (8-turn cumulative) | — | 8/8 clean, final turn recalls the full arc |
| Visual gate (R18 page description) | refuses | describes fully — composition, pose, onomatopoeia, narration. Visual path decensored despite text-side-only edit |
Long-generation behaviour (8192 thinking budget)
| Sample | trigger | explain_qm | write_code | math | Score |
|---|---|---|---|---|---|
| Base Vision-Exp | ✓ | ✓ | ✓ (r8.8k) | ✓ | 4/4 |
| This model (λ=2.0) | ✓ | ✓ (r13.7k) | ✗ (r30.6k div.) | ✓ | 3/4 |
The only regression is long write_code generation diverging (~30 k tokens) — a known common consequence of abliteration, present on the published 0731 text sibling as well (92 k divergence). Not a text-coherence loss.
Tool-calling (3-tool schema, DSML native, 6 prompts × 3 reasoning modes = n=18)
| Mode | Base Vision-Exp | This model |
|---|---|---|
| chat | 1.000 | 1.000 |
| think-high | 1.000 | 1.000 |
| think-max | 1.000 | 1.000 |
| Correct tool selected | 1.000 | 1.000 |
Compliance means: the completion parses via the deepseek_v4 parser, contains a tool call, names a valid offered tool, and supplies every required parameter. Zero difference from base — the edit does not disturb tool calling.
Serving performance (2× RTX PRO 6000 Blackwell, TP=2, single-stream decode, TTFT excluded)
| workload | Base Vision-Exp | This model |
|---|---|---|
| technical prose | 74.7 tok/s | 74.7 tok/s |
| code | 75.6 tok/s | 75.5 tok/s |
| structured JSON | 74.9 tok/s | 75.1 tok/s |
| aggregate (8 concurrent) | ~262 tok/s (warm) | ~255 tok/s (warm) |
| DSpark draft acceptance | 29–38 % (prompt-dependent) | 37 % |
Serving performance is identical to base — the overlay edits weight values only, never the computation graph. Single-stream decode ~75 tok/s across workloads; ~255–262 tok/s aggregate at 8 concurrent streams. (Earlier cold-start TTFT outliers were prefix-cache warmup artefacts, not model differences.)
How it was built
- Refusal directions. Forward hooks on all 43
attn.wo_bmodules captured last-token sublayer outputs over AdvBench harmful vs Alpaca-harmless prompts in all three reasoning modes (chat,think-high,think-max). Becausewo_bisRowParallelLinear, cross-rank digests were asserted identical on every prompt to guard against capturing a half-direction. Stability: median split-half cosine 0.978–0.990 across layers; held-out AUC 0.974–0.999. Mode agreement: chat↔thinking median cosine 0.46, the two thinking modes 0.90 — matching the measured split on the 0731 sibling, confirming that a single text-mode direction would leave thinking-mode refusal largely intact, hence the three-mode merge. - Merge + bake. The per-mode direction sets were merged and applied as
W ← W − λ·r̂(r̂ᵀW)at λ = 2.0 on the FP8 e4m3 weights: dequantize with the block scales, project, then re-quantize holding the original block exponents fixed. Written as a tensor overlay with a repointedmodel.safetensors.index.json, so the 48 original shards are never rewritten. Bake is deterministic — overlay sha25658e0461aaf4a387b0026e82e9b39fc73ade52851e1f15288114fbbcf0c0e5350. - λ is calibrated for this model, not inherited. Because a baked FP8 edit is structurally weaker than a runtime hook (most elements round back to their original byte), λ must be tuned against the baked model.
The λ operating envelope (heavily validated here)
| λ | Result |
|---|---|
| 3.0 | Too strong. Long generations garble (quote-storm, semantic break). Reject. |
| 2.5 | Equivalent to 2.0 on the 8 k ruler (3/4, same divergent probe) but no added benefit on this model. |
| 2.0 | Selected. Full inversion (` |
| 1.9 | Under-inversion fuzzy band. Model sits in a half-refuse / half-comply limbo. Reject. |
| 2.05–2.3 | e4m3 quant-dead zone — edits swallowed by rounding. Avoid. |
So 2.0 is the low edge of a clean operating point: below it is the under-inversion fuzzy band, above it is over-inversion damage. Do not carry over the 0731 text sibling's λ=2.5 — the two are different weight sets and recipes do not transfer.
Serving (vLLM, 2× RTX PRO 6000 Blackwell)
The full model (~157 GB + overlay) needs both 96 GB cards, tensor-parallel = 2:
docker run -d --name ds4-vision-abl --ipc=host --shm-size 32g --gpus all --restart unless-stopped \
-p 5001:8000 \
-v /model-dir:/mnt/ubuntulib:ro \
fraserpricee/vllm:dspark-cu132-vision \
/opt/venv/bin/python -m vllm.entrypoints.cli.main serve /mnt/ubuntulib/models/DeepSeek-V4-Flash-Vision-Exp-abliterated-l2.0 \
--served-model-name DeepSeek-Vision-EXP-abliterated --trust-remote-code \
--tensor-parallel-size 2 --gpu-memory-utilization 0.95 \
--max-model-len 524288 --max-num-seqs 8 --max-num-batched-tokens 2048 \
--kv-cache-dtype fp8 --block-size 256 --tokenizer-mode deepseek_v4 \
--attention-backend FLASHINFER_MLA_SPARSE_DSV4 \
--kernel-config.moe_backend flashinfer_cutlass \
--speculative-config '{"method":"dspark","num_speculative_tokens":4,"draft_sample_method":"greedy"}' \
--enable-flashinfer-autotune \
--compilation-config '{"cudagraph_mode":"FULL_AND_PIECEWISE","custom_ops":["all"]}' \
--enable-prefix-caching --enable-chunked-prefill --async-scheduling \
--reasoning-parser deepseek_v4 --enable-auto-tool-choice --tool-call-parser deepseek_v4 \
--allowed-local-media-path /data
Blackwell notes (each cost real debugging time):
- The serving image must be the vision fork,
fraserpricee/vllm:dspark-cu132-vision. The plain SM120 text fork (as used for the 0731 sibling) hard-fails with the vision tower. --moe-backend flashinfer_cutlassis the working path on this 96 GB Blackwell stack;--attention-backend FLASHINFER_MLA_SPARSE_DSV4is required for DSV4 sparse MLA.max-model-lenis served at 524,288 here (the vision path adds its own token budget — the tower pads up tovision_max_n_token384).--allowed-local-media-pathmust point at the dir holding images; the vision path reads local file paths, not just base64.--num_speculative_tokens ≤ dspark_block_size(5): larger values boot but misbehave.- The vision path is much more memory-hungry than text-only; keep
gpu-memory-utilization ≤ 0.95.
Findings
- The edit is text-path only, yet the visual path also decensors. All 92 edited tensors are
attn.wo_bon the text backbone; the 32-layer vision tower andbias_vlare byte-identical. Still, an R18 page is described fully with zero refusal — the text-generation head decodes from a fused carrier whosewo_bwas edited, neutralising the last-stage refusal regardless of input modality. - Mode directions diverge here just as on the 0731 sibling. chat↔thinking median cosine 0.46, thinking modes 0.90 — a merged direction is required.
- A baked FP8 edit is weaker than a runtime hook (most elements round back). On this model we found the e4m3 dead zone (λ ∈ [2.05, 2.3]) where edits get fully swallowed — a strong reason to tune λ on the baked model, never inherit.
Limitations
Stated plainly.
- Capability was gated on refusal / coherence / multi-turn / tool-call only. MMLU-Pro, GSM8K, HumanEval and general benchmarks were not run on this checkpoint. "Refusal, coherence, tool-calling and serving measured" is the claim; "general capability unchanged" is not measured.
- Long-context behaviour is unvalidated past multi-turn depth. Our retention test is 8 turns, not an N-shot 168 k needle test. Whether refusal suppression holds at extreme depth is an open question.
- Refusal is scored by marker matching on the parsed answer (thinking block excluded) + manual per-row review. It will miss phrasings the marker set does not cover.
- The
write_codelong-generation divergence is the one confirmed capability regression (3/4 vs base 4/4) — a known common consequence of abliteration. - The visual gate is n=1 (one R18 page) — a directional signal, not a rate.
- The λ=2.0 operating point is calibrated for the baked FP8 weights of this checkpoint. Do not inherit it for other models, and do not reuse the 0731 sibling's λ=2.5 here.
Files
| File | Size | Note |
|---|---|---|
model-overlay-00001-of-00001.safetensors |
1.44 GB | the only differing weight file (92 tensors) |
model.safetensors.index.json |
5.4 MB | repointed — 92 keys → overlay, 72,541 → base shard names |
abliteration_report.json |
27 KB | per-tensor edit audit (sha256, clamped, overflow counts) |
config.json / configuration.json / generation_config.json |
— | architecture |
tokenizer.json / tokenizer_config.json |
6.4 MB | DeepSeek V4 tokenizer |
encoding/encoding_dsv4.py |
29 KB | official V4 prompt encoder (needed for correct chat formatting) |
LICENSE |
— | MIT |
The 48 base shards are NOT in this repo. Download them from the base model, then add this repo's overlay + repointed index into the same directory. Removing the overlay + restoring the base index fully reverts the model.
License & credits
MIT (inherited from the base model). Base model: deepseek-ai/DeepSeek-V4-Flash-Vision-Exp. Abliteration follows the residual-direction method (Arditi et al., Refusal in LLMs is mediated by a single direction, NeurIPS 2024); attn.wo_b targeting and the overlay-differential pattern follow and independently replicate cebeuq/DeepSeek-V4-Flash-0731-abliterated — the text-only sibling whose λ=2.5 recipe does not transfer to this vision variant. Serving stack: fraserpricee/vllm:dspark-cu132-vision. Not affiliated with or endorsed by the base-model authors.
- Downloads last month
- -
Model tree for Joyfulxp/DeepSeek-V4-Flash-Vision-Exp-Abliterated
Base model
deepseek-ai/DeepSeek-V4-Flash-Vision-Exp