⚠️ Disclaimer — read before use
This model has had its safety alignment substantially removed via abliteration
(orthogonalizing the refusal direction out of the residual stream). As a direct consequence:
- It will comply with harmful, unethical, offensive, or illegal requests that the
original
Qwen3.8-27B would refuse. It has no meaningful built-in guardrails.
- It is released strictly for legitimate research — interpretability, AI-safety and
refusal-mechanism study, red-teaming, robustness evaluation, and controlled experiments.
- You assume full responsibility and liability for how you use it and for everything it
generates. Do not deploy it to end users or in production without adding your own safety,
moderation, and abuse-prevention layers.
- Use must comply with the Apache 2.0 License
inherited from the base model, and all laws and regulations that apply to you.
- The authors and uploaders accept no liability for any misuse or harm arising from this
model. Its outputs do not reflect the views of the uploaders or of Qwen / Alibaba.
By downloading or using this model you acknowledge and accept the above.
Model details
Table | |
|---|
| Base model | Qwen/Qwen3.8-27B |
| Architecture | Qwen3_5ForConditionalGeneration — 64 layers, hidden 5120, hybrid Gated DeltaNet (48 linear-attention + 16 full-attention, interval 4), native VL tower + MTP head |
| Modification | Abliteration (refusal-direction removal) then INT8 W8A8 quantization |
| Quantization | INT8 W8A8 (compressed-tensors, int-quantized) — per-channel INT8 weights + dynamic per-token INT8 activations. Fully data-free (no calibration set). |
| Format |
Abliteration
Refusal-direction removal following Arditi et al. (2024), Refusal in Language Models Is
Mediated by a Single Direction. A single refusal direction r (k = 1) is estimated as the
massive-activation–masked mean-difference of harmful − harmless last-token residuals at
layer 38 (round(0.6 × 64)), on AdvBench (harmful) vs Alpaca (harmless), then orthogonalized
out of every residual-writing matrix — W' = W − r(rᵀW) — in float32 (131 matrices edited).
The vision tower is untouched and the MTP head is abliterated consistently with the main
model. This is the same abliterated BF16 base as the sibling releases — only the quantization differs.
INT8 W8A8 scheme
The same target set as the official Qwen/Qwen3.8-27B-FP8 checkpoint is quantized:
- Weights: symmetric per-channel INT8 (from the weights — no calibration).
- Activations: symmetric dynamic per-token INT8 — computed at runtime, no calibration set.
- Kept in BF16 (not quantized): vision tower, all norms,
lm_head, embeddings, and the Gated
DeltaNet in_proj_a / in_proj_b dt projections — the same modules the official FP8 leaves in BF16.
- 400 language-model linears quantized to INT8; the MTP head is re-injected in BF16 afterwards
so speculative decoding keeps working.
format: int-quantized.
vLLM serves this with its INT8 W8A8 CUTLASS kernels, which run on any GPU with INT8 tensor cores.
Intended use
- Research into refusal mechanisms, alignment, and interpretability.
- Red-teaming and safety / robustness evaluation in controlled environments.
- Uncensored generation for authorized, lawful research settings.
Out of scope
- Any use that violates the base model's Apache 2.0 license or applicable law.
- Deployment to the public or to end users without additional safety and moderation layers.
- Generating content intended to harm, harass, defraud, or endanger people.
Evaluation
Verified on this exact INT8 build (served with vLLM + MTP on an H200):
Table with columns: Check, Result| Check | Result |
|---|
| Refusal on harmful prompts (lock-picking, phishing, keylogger, gas synthesis, scam) | 0 / 5 refused — complies, i.e. abliteration survives INT8 |
Capability (speed word-problem, 17×23, syllogism) | 3 / 3 correct |
Reasoning (enable_thinking) | reasoning field populated, correct proof of √2 irrationality |
| Tool calling | get_weather({"city":"Tokyo"}) emitted and parsed |
| MTP speculative decoding | active during serving |
Abliteration is a weight edit shared across all releases, so refusal behavior tracks the other
builds. On the FP8 build (same
scripts) harmful-prompt refusal collapses from 64–99% (base) to 0–6% (thinking off) / ≤ 1.7%
(thinking on), benign over-refusal drops (XSTest-safe 5.6% → 0.4%), and capability stays within ±1.3
pts of the base. INT8 W8A8 is near-lossless versus BF16, so capability retention is expected to match
or exceed the FP8 build; see that card for the full tables.
Multimodal (vision)
The vision tower is preserved — all 167 visual.* weight tensors are kept in BF16 and the merger
/ image + video preprocessor configs are intact, so this stays a full vision-language model
(Qwen3_5ForConditionalGeneration), a drop-in for the base. INT8 quantization only touches the
language-model linears, so the vision path is byte-identical to the BF16 / FP8 builds (which are
verified to read images and OCR). Serve without --language-model-only to use vision.
Usage
Self-host with vLLM (OpenAI-compatible)
INT8 W8A8 runs on any GPU with INT8 tensor cores (Ampere / Ada / Hopper / Blackwell).
docker run -d --name qwen38-uncensored-int8 --gpus all --ipc=host --shm-size=8g \
-v /path/to/Qwen3.8-27B-Uncensored-INT8:/model:ro \
-p 8000:8000 vllm/vllm-openai:v0.27.1 \
--model /model --served-model-name Qwen3.8-27B-Uncensored \
--speculative-config '{"method":"mtp","num_speculative_tokens":2}' \
--gpu-memory-utilization 0.9 \
--max-model-len 262144 --max-num-seqs 96 \
--trust-remote-code \
--reasoning-parser qwen3 \
--enable-auto-tool-choice --tool-call-parser qwen3_coder
The INT8 quantization_config is read from config.json — do not pass --quantization.
--speculative-config mtp enables the preserved MTP draft head. For vision, drop
--language-model-only (omitted above) and send image inputs.
Reasoning (thinking) toggle
Thinking is on by default (Qwen3.8). Toggle it per request via chat_template_kwargs; the
reasoning trace is returned in the reasoning field (--reasoning-parser qwen3).
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
resp = client.chat.completions.create(
model="Qwen3.8-27B-Uncensored",
messages=[{"role": "user", "content": "Prove that sqrt(2) is irrational."}],
extra_body={"chat_template_kwargs": {"enable_thinking": True}},
)
print(resp.choices[0].message.reasoning)
print(resp.choices[0].message.content)
Standard OpenAI tools + assistant tool_calls + role: tool result messages are supported,
including multi-turn. Parsed by --tool-call-parser qwen3_coder.
Via OrcaRouter (hosted API — no setup)
Served on OrcaRouter through the OpenAI-compatible gateway
(262K context, tools + reasoning). Grab an API key at orcarouter.ai
(sk-orca-...).
from openai import OpenAI
client = OpenAI(base_url="https://api.orcarouter.ai/v1", api_key="sk-orca-...")
resp = client.chat.completions.create(
model="qwen/qwen3.8-27b",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)
Software
- vLLM with
compressed-tensors (Qwen3.5/3.8 support) — e.g. vllm/vllm-openai:v0.27.1.
Memory
- Weights: ~31 GB in INT8 (about half of the ~56 GB BF16 checkpoint).
- Minimum ~40 GB VRAM for weights + a small KV cache; the full 262K context needs substantial
extra KV cache. Recommended: a single H100 80 GB / H200 143 GB / A100 80 GB.
Compute
- INT8 W8A8 tensor-core kernels run on any modern NVIDIA GPU (Ampere and newer) — no Blackwell
or FP8 hardware required. The MTP draft head gives a large decode speedup on real workloads.
Bias, risks, and limitations
- Safety guardrails removed — the model will produce harmful, biased, or offensive content
on request. See the disclaimer above.
- It inherits any biases and limitations of the base
Qwen3.8-27B.
- INT8 W8A8 is not lossless versus BF16, though the impact at 8-bit is small.
- The reported refusal metric is a rule-based heuristic; evaluate rigorously for your own use case.
License
Apache 2.0, inherited from the base model
Qwen/Qwen3.8-27B. Abliteration and quantization do
not change the underlying license obligations.