← back to catalog · registered 2026-08-22 13:56

coolthor/Huihui-Qwen3.6-35B-A3B-abliterated-FP8-DYNAMIC

coolthor Qwen 34B MoE multimodal second-order
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/coolthor%2FHuihui-Qwen3.6-35B-A3B-abliterated-FP8-DYNAMIC"
Response includes
  • classification m1
  • files 35
  • hub_downloads_all_time 413,936
  • author_summary 7 models
  • readme_text full
10 credits · hourly refresh · ~4 KB payload Get an API key →
Abliteration classifier · v1.0.0
M1
Primary method

Direct removal

No other method signals detected in this model.
Confidence
MEDIUM
Why this label 3 signals
Method inferred from partial signals - repository name, related files, or tag patterns. Producer identity not confirmed; label may sharpen or shift as we gather more evidence.
  • 'abliterated' in name/tags
  • is_gguf=0 (base model)
  • no specific method indicators - defaulting to M1 (most common)
Refusal direction extracted via
Extraction technique

Difference-of-means

Confidence
MEDIUM
Why we say so
primary_method=M1; difference-of-means is the reference extraction for M1/M3 (Arditi 2024)
Downloads · lifetime
414K
2K last 30d - cooling
Likes
7
Model age
5mo ago
created 2026-04-28
Downloads over time
Now415K→from111↑373,810%
0152.2K304.4K456.5K111 on Apr 29415K on Oct 12AprMayJunJulAugSepOct
Apr 29 → Oct 12 · 64 snapshots · spans 166 days

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 zh
Tags
safetensors qwen3_5_moe abliterated uncensored fp8 compressed-tensors vllm dgx-spark gb10 moe image-text-to-text conversational

Related

Total size
35.7 GB
Files
35
Quantizations
1
Registered
2026-08-22 13:56
Last updated on HF
2026-07-30 20:12

Files by quantization

Auxiliary files 35 files 35.8 GB
model-00016-of-00019.safetensors 1.86 GB f8287554 download
model-00013-of-00019.safetensors 1.86 GB 26f86a54 download
model-00018-of-00019.safetensors 1.86 GB 35c253a0 download
model-00006-of-00019.safetensors 1.86 GB c04df652 download
model-00011-of-00019.safetensors 1.86 GB 1b8f3568 download
model-00007-of-00019.safetensors 1.86 GB 0f849d16 download
model-00010-of-00019.safetensors 1.86 GB 0953b1f5 download
model-00005-of-00019.safetensors 1.86 GB 922c5920 download
model-00009-of-00019.safetensors 1.86 GB 6600d542 download
model-00014-of-00019.safetensors 1.86 GB 9c401214 download
model-00004-of-00019.safetensors 1.86 GB d9b3313f download
model-00002-of-00019.safetensors 1.86 GB 29ec5f7e download
model-00003-of-00019.safetensors 1.86 GB 44fc9696 download
model-00008-of-00019.safetensors 1.86 GB f980288a download
model-00012-of-00019.safetensors 1.86 GB f27e287d download
model-00017-of-00019.safetensors 1.86 GB 27ec8b5a download
model-00015-of-00019.safetensors 1.85 GB dbb28278 download
model_mtp.safetensors 1.57 GB 7d0030f5 download
model-00019-of-00019.safetensors 1.54 GB 95eafd28 download
model-00001-of-00019.safetensors 970 MB 6abf5b16 download
tokenizer.json 19.1 MB 87a7830d download
model.safetensors.index.json 6.48 MB 986439ea download
vocab.json 6.41 MB 0aa0ce06 download
merges.txt 3.20 MB a494e019 download
config.json 13.5 KB aa4aea06 download
README.md 8.65 KB f7dd1da5 download
chat_template.jinja 7.58 KB a8755d82 download
remap_visual_path.py 2.60 KB 4743755b download
.gitattributes 1.53 KB 52373fe2 download
processor_config.json 1.16 KB 33818c7f download
tokenizer_config.json 1.11 KB a068e246 download
preprocessor_config.json 390 B 2ea84a43 download
video_preprocessor_config.json 385 B 3ba673a5 download
recipe.yaml 265 B 06a22728 download
generation_config.json 213 B 79c8cce3 download

README current version from Hugging Face


license: apache-2.0
base_model: huihui-ai/Huihui-Qwen3.6-35B-A3B-abliterated
base_model_relation: quantized
tags:

  • abliterated
  • uncensored
  • fp8
  • compressed-tensors
  • vllm
  • dgx-spark
  • gb10
  • moe
    language:
  • en
  • zh
    pipeline_tag: image-text-to-text

Huihui-Qwen3.6-35B-A3B-abliterated-FP8-DYNAMIC

FP8 dynamic quantization of huihui-ai/Huihui-Qwen3.6-35B-A3B-abliterated, produced for inference on NVIDIA DGX Spark (GB10, SM121) under its 128 GB unified-memory budget.

This is the clean abliteration variant quantized to FP8, distinct from existing Claude-distilled variants on the Hub. Uses llm-compressor FP8_DYNAMIC scheme + compressed-tensors float-quantized format.

⚠️ Vision pipeline fix (2026-05-03)

Pre-2026-05-03 uploads of this checkpoint had broken vision input — the model would emit !!!!! token loops on any image. Root cause: vLLM (≤0.20.0) expects vision tensor keys at visual.*, but Qwen3_5MoeForConditionalGeneration saves them under model.language_model.visual.*, so all 333 vision-tower tensors got silently skipped during load.

This is now fixed: shard 19 + model.safetensors.index.json re-uploaded with the visual prefix stripped. Text-only output is unaffected.

If you cloned the model before 2026-05-03, the cleanest path is huggingface_hub.snapshot_download(..., force_download=True, allow_patterns=["model-00019-of-00019.safetensors", "model.safetensors.index.json"]) — only ~600 MB of changed weights.

Diagnosis + remap script: see remap_visual_path.py in this repo.

Quick stats

Metric Value
Base huihui-ai/Huihui-Qwen3.6-35B-A3B-abliterated (BF16, 67 GB)
Format compressed-tensors float-quantized (FP8 e4m3fn weights, dynamic per-token activation)
Disk size ~36 GB (1.86× shrink from BF16)
Quant scheme FP8_DYNAMIC via llm-compressor 0.10
Quantized layers 31,030 Linear modules → FP8 e4m3fn
Kept BF16 lm_head, visual.*, mlp.gate (router), shared_expert_gate
MTP weights Preserved (model_mtp.safetensors) for speculative decoding
Modality Text + Image (vision tower preserved BF16, see fix note above)

Performance on DGX Spark (GB10, vLLM)

Single-stream decode, 200 tokens, GB10 (1× SM121, 128 GB UMA), vllm-node-tf5 build:

Configuration tok/s vs BF16
BF16 abliterated (this base) 30.71 1.00×
This FP8 + MTP speculative 51.72 1.68×

Speculative decoding (qwen3_next_mtp, num_speculative_tokens=2) is the dominant contribution.

Recommended vLLM launch (GB10)

vllm serve coolthor/Huihui-Qwen3.6-35B-A3B-abliterated-FP8-DYNAMIC \
  --max-model-len 32768 \
  --gpu-memory-utilization 0.90 \
  --reasoning-parser qwen3 \
  --speculative-config '{"method":"qwen3_next_mtp","num_speculative_tokens":2}' \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder

Notes:

  • Do not add --kv-cache-dtype fp8 on GB10 — FP8 KV cache has known accuracy/repetition issues on SM121.
  • Vision encoder is functional after the 2026-05-03 fix (drop --language-model-only if you want to feed images).

Multi-GPU users

For datacenter Blackwell (B200, RTX PRO 6000 with tensor-parallel-size > 1), follow the official Qwen 3.6 FP8 model card recipe and replace the model path. This artifact's FP8 layout is standard compressed-tensors, so it loads on any vLLM build that supports the architecture.

Quantization recipe

from compressed_tensors.utils import save_mtp_tensors_to_checkpoint
from transformers import AutoProcessor, Qwen3_5MoeForConditionalGeneration
from llmcompressor import oneshot
from llmcompressor.modifiers.quantization import QuantizationModifier

MODEL_PATH = "huihui-ai/Huihui-Qwen3.6-35B-A3B-abliterated"
SAVE_DIR = "Huihui-Qwen3.6-35B-A3B-abliterated-FP8-DYNAMIC"

model = Qwen3_5MoeForConditionalGeneration.from_pretrained(
    MODEL_PATH, dtype="auto", low_cpu_mem_usage=True,
)
processor = AutoProcessor.from_pretrained(MODEL_PATH)

recipe = QuantizationModifier(
    targets="Linear",
    scheme="FP8_DYNAMIC",
    ignore=[
        "re:.*lm_head",
        "re:visual.*",
        "re:model.visual.*",
        "re:.*mlp.gate$",
        "re:.*shared_expert_gate$",
    ],
)

oneshot(model=model, recipe=recipe)
model.save_pretrained(SAVE_DIR, max_shard_size="2GB", safe_serialization=True)
processor.save_pretrained(SAVE_DIR)
save_mtp_tensors_to_checkpoint(source_model=MODEL_PATH, dest_dir=SAVE_DIR)

Three gotchas you'll hit

  1. Qwen3_5MoeForConditionalGeneration writes a triple language_model. prefix in keys that vLLM's loader can't match (looks for model.language_model.). Strip one extra language_model.language_model. substring from each key in the saved safetensors before serving. (This is the LM-body fix; the visual tower needs an additional strip — see #2.)

  2. Vision tower keys need an additional prefix strip. Qwen3_5MoeForConditionalGeneration writes vision weights as model.language_model.visual.*, but vLLM's qwen3_5.py loader looks for visual.* (no prefix). All 333 vision-tower tensors will silently skip-load and any image input produces !!!!! token loops with text-only output unaffected. Strip the model.language_model. prefix from every key matching model.language_model.visual.* in both the relevant safetensors shard and model.safetensors.index.json. The full remap script is at remap_visual_path.py in this repo (~50 lines, ~2 sec runtime — only one shard contains visual tensors, the other 18 can be hard-linked unchanged).

  3. 128 GB UMA is tight for save_pretrained — max_shard_size="2GB" is required; the default 50 GB shard buffer + GPU pool overlap will OOM-kill on Spark.

The full debugging journey (4 OOMs across 4 attempts + the vision-prefix fix) is documented in the accompanying blog post: Self-quantizing 35B abliterated MoE to FP8 on DGX Spark.

Verifying the vision fix

After the 2026-05-03 re-upload, vision input should work end-to-end. Quick smoke test:

import base64, json, urllib.request

with open("test.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

payload = {
    "model": "qwen36-abliterated",
    "messages": [{"role": "user", "content": [
        {"type": "text", "text": "Describe this image in one sentence."},
        {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},
    ]}],
    "max_tokens": 200,
}
req = urllib.request.Request(
    "http://localhost:8000/v1/chat/completions",
    data=json.dumps(payload).encode(),
    headers={"Content-Type": "application/json"},
)
print(json.loads(urllib.request.urlopen(req).read())["choices"][0]["message"]["content"])

A working response returns a coherent description; a !!!!! loop means you're still hitting the prefix issue (your local copy is pre-fix — re-pull shard 19 + index.json).

Abliteration sanity

Smoke-tested with prompts vanilla Qwen typically softens with disclaimers (villain monologue, technical security topics, dark humor, persona requests). All five test prompts returned direct content with zero refusal markers. Identity-level "are you uncensored?" returns the standard Qwen self-description (training-data residue), but functional refusal behavior is suppressed.

License

Inherits from base model. The original abliteration is Apache-2.0 (Huihui's remove-refusals-with-transformers derivative). Qwen 3.6 base is Apache-2.0.

⚠ Safety: This model has reduced refusal behavior. Use responsibly.

Credits

Changelog

  • 2026-05-03: Vision pipeline fix. Re-uploaded model-00019-of-00019.safetensors and model.safetensors.index.json with visual.* prefix corrected; added remap_visual_path.py and updated docs. No change to text-only behavior or benchmarks. Earlier downloads silently skipped 333 vision-tower tensors on load.
  • 2026-04-28: Initial v7-fixed FP8 dynamic upload. 51.72 tok/s with MTP speculative.

☕ If this saved you GPU hours, you can buy me a coffee.


📝 Quantized & benchmarked by ai-muninn — writeups on how it was built and how it actually runs.

README history 4 versions

The author's README evolved over time. Click a version to see its content at that point.

  1. 2026-07-01Add ai-muninn linkdfb37a68.6 KB
    Loading...
  2. 2026-06-02docs: add Buy Me a Coffee link to model cardc8cc1358.5 KB
    Loading...
  3. 2026-05-03fix(vision): strip model.language_model. prefix from visual.* keys; vision no...2b444038.4 KB
    Loading...
  4. 2026-04-28Add files using upload-large-folder tool5340cf05.3 KB
    Loading...
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