← back to catalog · registered 2026-10-30 06:01

cloudcommander/Kvark-Sparkle-27B-Uncensored-MLX-AWQ-4.5bit

cloudcommander 27B multimodal
Your rig guess connected
? Why do I need an app?
Reading your rig…

This is a rough estimate. Install the free app - we'll show exact numbers.

Reading real hardware from your app right now. Numbers below are exact.

Below is the per-quantization compatibility for this model.

curl -H "Authorization: Bearer $ABL_KEY" \
     "https://abliteration.org/api/v1/models/cloudcommander%2FKvark-Sparkle-27B-Uncensored-MLX-AWQ-4.5bit"
Response includes
  • classification unknown
  • files 20
  • author_summary 2 models
  • readme_text full
10 credits · hourly refresh · ~4 KB payload Get an API key →
Refusal direction extraction

No specific extraction method could be identified for this model. The producer either did not document it or used a proprietary pipeline.

What is a refusal direction? →
Downloads · 30-day
0
Likes
0
Model age
today
created 2026-10-30

Genealogy 0 direct forks

Full fork graph →

This model's place in the market. Above: what it was derived from. Below: the tree of everything derived from it.

Metadata

License
apache-2.0
Languages
en
Tags
mlx safetensors qwen3_5 awq abliterated uncensored qwen3.8 kvark mtp image-text-to-text conversational en

Related

Total size
16.7 GB
Files
20
Quantizations
1
Registered
2026-10-30 06:01
Last updated on HF
2026-10-30 05:42

Files by quantization

Auxiliary files 20 files 16.7 GB
model-00002-of-00004.safetensors 5.00 GB 8186e4ab download
model-00001-of-00004.safetensors 4.98 GB 360bf0ea download
model-00003-of-00004.safetensors 4.95 GB a5211c8a download
model-00004-of-00004.safetensors 1.29 GB 5e72f54d download
model-mtp.safetensors 477 MB 3e40ac2e download
tokenizer.json 12.2 MB 0997f410 download
vocab.json 6.41 MB 0aa0ce06 download
merges.txt 3.20 MB a494e019 download
model.safetensors.index.json 216 KB a83249db download
config.json 128 KB 05ba7ac2 download
tokenizer_config.json 18.5 KB 8ad765ee download
LICENSE 11.1 KB 7a4a3ea2 download
chat_template.jinja 9.76 KB a0877006 download
README.md 9.34 KB 3c2b6535 download
.gitattributes 1.53 KB 52373fe2 download
processor_config.json 991 B 8f29fe38 download
NOTICE 566 B 16e673d5 download
preprocessor_config.json 390 B 2ea84a43 download
video_preprocessor_config.json 385 B 3ba673a5 download
generation_config.json 202 B 023756cf download

README current version from Hugging Face


license: apache-2.0
base_model: Egzakta/Kvark-Sparkle-1.0-27B
library_name: mlx
pipeline_tag: image-text-to-text
language:

  • en
    tags:
  • mlx
  • awq
  • abliterated
  • uncensored
  • qwen3.8
  • kvark
  • mtp

Kvark Sparkle 1.0 27B, Uncensored, MLX AWQ 4/6-bit

An unofficial, uncensored version of Egzakta/Kvark-Sparkle-1.0-27B
for Apple silicon. It is not made or endorsed by Egzakta. One refusal direction is projected out of the weights, with a
per-layer strength, and the result is quantised with AWQ to mixed 4/6-bit. No training or fine-tuning was done.

The 8-bit twin is cloudcommander/Kvark-Sparkle-27B-Uncensored-MLX-8bit.

Base Egzakta/Kvark-Sparkle-1.0-27B @ bb41d9af, BF16 (a post-train of Qwen/Qwen3.8-27B)
Weights 17.9 GB (16.68 GiB). AWQ affine, group size 64, 4.45 bits per weight: 456 modules at 4-bit, 42 at 6-bit, the 7 MTP projections at 8-bit
Vision tower Kvark's, unquantised BF16, unedited
MTP head 1 layer, inline in model-mtp.safetensors (see MTPLX and mlx-lm)
Context 262,144 tokens (config)
Architecture Qwen3_5ForConditionalGeneration, 64 layers, hidden size 5,120

Results

All runs on an Apple M5 Ultra, against Kvark built the same way without the edit. The samples are small, so read
these as indications rather than benchmarks.

Kvark 4/6 This model
Refusals, 104 harmful prompts¹ 103 11
Refusals, 104 harmless prompts¹ 4 1
LiveCodeBench, 40 questions, thinking on 0.80 0.90
MMLU-Pro, 100 questions, thinking on 0.82 0.83

The evals have too few questions to separate the two: the ranges overlap. The token counts are under
Speed.

¹ A held-out split of harmful and harmless prompts that the strength sweep never saw. Decoding was greedy with
thinking off and 96 tokens, scored with Heretic's refusal markers. The markers
count warnings as well as refusals: in an earlier version of the edit, most remaining hits were cautions partway through
an answer, and only 3 opened with a refusal. That breakdown was not repeated for this version.

How far the edit moves the model:

  • Drift (8-bit twins). Uncensored 8-bit against Kvark 8-bit, teacher-forced over 6,656 positions of coding text:
    top-1 agreement 0.979, KL 0.0084. For scale, OrcaRouter's uncensored Qwen3.8 against stock Qwen3.8 is 0.984 /
    0.0048.
  • This build against the uncensored 8-bit. Top-1 0.959, KL 0.018. Kvark's own 4/6 against its 8-bit is 0.959 /
    0.018.

Speed

The weights aren't changed for speed. Two things make it fast: speculative decoding, and Kvark spending fewer tokens on
thinking.

Decode speed. These are single-request runs of one greedy 400-token coding prompt on a Mac Studio (M5 Ultra), using
oMLX with the Splash engine, int8 KV cache, and z-lab's DFlash2 drafter
(z-lab/Qwen3.8-27B-DFlash2):

Build Decode Time to first token
This model 197.3 tok/s 0.104 s
Kvark 4/6, uncensored edit not applied 192.9 tok/s 0.105 s
Qwen3.8-27B (OrcaRouter's uncensored) at the same 4/6 recipe 191.1 tok/s 0.104 s

The last two rows were measured in the same session and this model's row in a later one. Between sessions the same
build has varied by about 7 tok/s, so treat the three as equal.

DFlash2 was trained on stock Qwen3.8, and it still fits Kvark's weights. Without a drafter, the model decodes at
ordinary 4-bit speed.

Thinking tokens. These are counted with thinking on, on the same eval questions as above:

Qwen3.8 at the same recipe Kvark 4/6 This model
LiveCodeBench, mean tokens per answer (limit 16,384) 5,952 4,480 3,294
LiveCodeBench, answers cut off at the limit 9 of 40 6 2
MMLU-Pro, mean tokens per answer (limit 8,192) 2,010 1,253 1,479
MMLU-Pro, answers cut off at the limit 13 of 100 6 7

On questions that both this model and the Qwen3.8 build got right, it used 49% fewer tokens on LiveCodeBench
(28 questions, 3,055 → 1,553) and 34% fewer on MMLU-Pro (75 questions, 893 → 588). At the same decode speed, that
means answers finish sooner.

How it was made

  1. Direction. A single refusal direction r (5,120 floats), recovered from OrcaRouter's uncensored Qwen3.8-27B
    through npario's 8-bit MLX conversion (npario/Qwen3.8-27B-Uncensored-OrcaRouter-MLX-8bit). That model turned
    out to be a one-direction abliteration of stock Qwen3.8, with the same direction in every layer (cosine 1.000).
    Projecting r out of stock Qwen3.8 reproduces it ten times more closely than stock does (KL 0.00047 against
    0.00477). Kvark shares Qwen3.8's base, and the direction works on it unchanged.
  2. Edit. W ← (I − s·r rᵀ) W on the 131 matrices that write into the residual stream: the embeddings, each
    layer's attention output projection (o_proj, or out_proj in the linear-attention layers), each down_proj, and
    the MTP head's two output projections. The edit is made on Egzakta's BF16 weights.
  3. Strength curve. At s = 1 everywhere, Kvark still refused about one harmful prompt in five (21 of 104).
    Following Heretic's idea of a per-layer strength, but without its Optuna search, 9 curves were tried with the
    direction projected out live. Each was scored on 40 train prompts that still tripped, 16 controls, and the
    first-token KL on 32 harmless prompts. s = 1.5 on attention writers and 1 on the MLP and embeddings halved the
    remaining refusals for the least added KL. s = 1.5 everywhere went further at more than twice the KL, and s = 2
    broke the model.
  4. Re-grid. At 4 and 6 bits the edit is smaller than one quantisation step, so requantising the build snaps it
    back: a first attempt still refused 100 of 104. Instead, the edited BF16 writers, times the build's AWQ input
    scales, are rounded onto the build's own grid. 96–99% of unedited weights land on their previous integers, all
    within one step. After rounding, the attention writers keep about −0.5 of their original refusal component (the
    overshoot) and the MLP writers about 0, as intended.
  5. Quantisation. Before the edit, the build was quantised from Egzakta's BF16 with AWQ calibration, and the MTP
    head was grafted with its norms offset by +1.0. The tokenizer and chat template are Kvark's, unchanged.

Usage

With mlx-vlm (tested with 0.7.9):

pip install -U mlx-vlm
python -m mlx_vlm.generate --model cloudcommander/Kvark-Sparkle-27B-Uncensored-MLX-AWQ-4.5bit \
  --max-tokens 1024 --enable-thinking --prompt "Explain how a hash table handles collisions."

The chat template thinks by default. To turn thinking off through an OpenAI-compatible server, send
"chat_template_kwargs": {"enable_thinking": false}.

With oMLX, put the folder in a model directory. The 197 tok/s above used the Splash engine with
z-lab/Qwen3.8-27B-DFlash2 as the draft model, set in oMLX's per-model settings.

MTPLX and mlx-lm

The MTP head is stored inline as mtp.* tensors. mlx-lm's qwen3_5 loader takes those as the sign of a raw HF
checkpoint and adds +1.0 to every norm, which this build already has, and the output turns to garbage. This was seen
with MTPLX, which loads through mlx-lm. Plain mlx-lm loading should break the same way, but was not tested. For MTPLX,
move the head into a sidecar mtp.safetensors and point mlx_lm_extra_tensors.mtp_file at it.

Not tested

  • Vision. The tower is Kvark's, untouched and unquantised, but nothing visual was evaluated.
  • Full benchmarks. Only the quick evals above have been run.
  • Refusals with thinking on, long-context behaviour, languages other than English.

Intended use and risks

This model will answer requests the original refuses, and it has no built-in guardrails of its own. It is meant for
research, red-teaming, and private use by people who take responsibility for what they do with it. Don't put it in
front of end users without your own safeguards. You are responsible for its outputs and for following the law where
you live. Its knowledge, mistakes and biases are Kvark's and Qwen3.8's.

Licence and credits

Apache-2.0, as is every model in its lineage. LICENSE and Egzakta's NOTICE are included unchanged. The only
changes to Egzakta's weights are the edit and the quantisation described above.

  • Qwen Team, Alibaba Group: Qwen3.8-27B, the base model.
  • Egzakta / KVARK: Kvark Sparkle 1.0, the post-train
    this model is built from.
  • OrcaRouter: the abliterated Qwen3.8-27B that the refusal direction comes from.
  • npario: the MLX conversion of OrcaRouter's model that the direction was extracted from.
  • p-e-w's Heretic: the per-layer strength idea and the refusal markers used
    for scoring. No Heretic code is used or shipped.
  • z-lab: the DFlash2 drafter used for the speed figure. It is not included here.

Egzakta's card gives this citation for Kvark:

@misc{kvarksparkle2026,
  title  = {KVARK Sparkle 1.0},
  author = {Egzakta AI Lab},
  year   = {2026},
  url    = {https://huggingface.co/Egzakta/Kvark-Sparkle-1.0-27B}
}
Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration