ThinkingCap-Qwen3.8-27B-abliterated

An uncensored variant of bottlecapai/ThinkingCap-Qwen3.8-27B — Qwen3.8-27B with calibrated thinking length — with the model's refusal behaviour removed. Full bf16 weights; the vision tower and MTP head (for speculative decoding) are carried over unmodified.

This is the bf16 source checkpoint. Quantized variants derived from it:

Variant Size Notes
This repo — BF16 55.6 GB reference; quantize from here
…-abliterated-FP8-DYNAMIC 36.8 GB W8A8, near-lossless, vLLM
…-abliterated-NVFP4A16 28.6 GB 4-bit weights, vLLM
…-abliterated-GGUF 13.9–29.0 GB IQ3_M – Q8_0 + vision mmproj, llama.cpp

How it was made

Refusal removal by LoRA transplant, not a fresh search. ThinkingCap is a fine-tune of Qwen/Qwen3.8-27B; the abliteration adapter that MuXodious published for the base model (Qwen3.8-27B-absolute-heresy-LoRA, produced with Heretic using Self-Organizing-Map multi-direction extraction and magnitude-preserving orthogonal ablation) was applied to ThinkingCap at scale 1.0 and merged.

The transplant working at scale 1.0 is evidence that ThinkingCap's SFT left the base model's refusal geometry largely intact. Two direct Heretic runs on ThinkingCap (stock rank-1 ablation, and Arbitrary-Rank Ablation) were tried first (77 and 194 trials respectively) and did not reach a usable Pareto point; the transplant did on the first attempt.

Post-merge, the mtp.* tensors (dropped by the PEFT save path) were re-grafted from the original checkpoint so speculative decoding works unchanged.

Evaluation

Measured with Heretic's evaluator (--evaluate-model), non-thinking mode, 100 harmful prompts from mlabonne/harmful_behaviors and 100 harmless from mlabonne/harmless_alpaca:

Refusals KL divergence vs. original
ThinkingCap-Qwen3.8-27B (original) 97 / 100 —
This model 6 / 100 0.0654

Evaluator: Heretic v1.2.0 (as reported by the tool's banner), default keyword scorer, <think> block closed before scoring. Thinking-mode behaviour was not separately measured.

For reference, the published base-model abliterations sit at 0–2/100 refusals with KL 0.05–0.08. KL is measured on first-token distributions over harmless prompts; values under ~0.1 are generally read as a small behavioural change.

Not evaluated: standard capability benchmarks. On the base model, the adapter's author reports PIQA unchanged within error (acc 0.8118 vs 0.8101 original); whether that holds on ThinkingCap is unverified.

What is preserved

  • Thinking-length calibration — ThinkingCap's weights and chat template are otherwise unmodified, so the reasoning_effort control (xhigh default, medium, low) is carried over; its token-efficiency numbers were not re-benchmarked on this model.
  • Vision — the ViT tower and merger are untouched: the source adapter edits only the text decoder's attention output projections and MLP down projections (per the parameter table on the source card).
  • MTP head — present and unmodified; use --speculative-config '{"method":"mtp",…}' in vLLM.
  • Tool calling — same chat template and parser flags as the original; not separately tested.

Usage

Sampling (Qwen3.8 recommendations, which ThinkingCap uses unchanged): thinking mode temperature 1.0, top_p 0.95, top_k 20, min_p 0; non-thinking mode temperature 0.7, top_p 0.8, top_k 20, presence_penalty 1.5. Thinking budget via chat_template_kwargs: {"reasoning_effort": "xhigh"} — xhigh (default, recommended), medium, or low. Do not use greedy decoding for thinking.

vLLM

vllm serve IstroSec/ThinkingCap-Qwen3.8-27B-abliterated \
  --reasoning-parser qwen3 \
  --enable-auto-tool-choice --tool-call-parser qwen3_xml \
  --speculative-config '{"method":"mtp","num_speculative_tokens":3}' \
  --max-model-len 65536

Reference point for checking the MTP head: on the original bf16 weights, bottlecapai measured ~53% draft acceptance (≈2.6 tokens/step) at xhigh with vLLM 0.29.0. A value near zero means the head is missing or mis-loaded.

Transformers

from transformers import AutoModelForImageTextToText, AutoProcessor
m = AutoModelForImageTextToText.from_pretrained("IstroSec/ThinkingCap-Qwen3.8-27B-abliterated", dtype="bfloat16", device_map="cuda")
p = AutoProcessor.from_pretrained("IstroSec/ThinkingCap-Qwen3.8-27B-abliterated")
msgs = [{"role": "user", "content": "…"}]
text = p.apply_chat_template(msgs, tokenize=False, add_generation_prompt=True, reasoning_effort="medium")
out = m.generate(**p.tokenizer(text, return_tensors="pt").to("cuda"), max_new_tokens=2048, do_sample=True, temperature=1.0, top_p=0.95, top_k=20)

Limitations and intended use

  • The model will comply with requests the original declined. It has no safety filter; you are the safety layer. Use behind your own policy controls, for research, red-teaming, creative work, or agentic pipelines where over-refusal was the problem.
  • 6/100 of the evaluation prompts still refuse; abliteration reduces rather than eliminates refusal.
  • Thinking mode was not part of the refusal evaluation. Reasoning traces may still discuss policy or guidelines even where the final answer complies; test in thinking mode for your use case.
  • All original ThinkingCap limitations apply.

License

PolyForm Small Business License 1.0.0 + BottleCap personal-use grant, inherited from ThinkingCap (see LICENSE). Upstream Qwen materials and the abliteration adapter are Apache-2.0 (see NOTICE). This model as a whole is not Apache-2.0; check the PolyForm terms before commercial use, and contact BottleCap AI for a commercial license.

Credits

  • bottlecapai — ThinkingCap
  • MuXodious — the abliteration adapter this transplant uses
  • p-e-w/heretic — evaluation tooling and the method behind the adapter
  • Qwen team — Qwen3.8-27B
Downloads last month
7
Safetensors
Model size
27B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for IstroSec/ThinkingCap-Qwen3.8-27B-abliterated