--- license: apache-2.0 base_model: - orcarouter/Qwen3.8-27B-Uncensored base_model_relation: quantized pipeline_tag: image-text-to-text library_name: transformers quantized_by: writetoasik language: - en - zh tags: - exl3 - exllamav3 - quantized - qwen - qwen3 - qwen3.8 - uncensored - abliterated - tabbyapi - vision-language - function-calling - reasoning - mtp --- # Qwen3.8-27B-Uncensored — EXL3 4.0 bpw ExLlamaV3 (EXL3) quantization of [`orcarouter/Qwen3.8-27B-Uncensored`](https://huggingface.co/orcarouter/Qwen3.8-27B-Uncensored), which is an abliterated (refusal-removed) build of [`Qwen/Qwen3.8-27B`](https://huggingface.co/Qwen/Qwen3.8-27B). This is a **weight-only re-quant**, not a new train. The vision tower and MTP speculative-decoding head are kept. | | | |---|---| | **Format** | EXL3 safetensors (2 shards, **15.73 GB**) | | **Bits** | 4.0 bpw body, **6-bit** output head, **4-bit** MTP | | **Measured bitrate** | 4.02 bpw / 6.00 bpw (head) | | **Converter** | [ExLlamaV3](https://github.com/turboderp-org/exllamav3) **1.4.3** | | **Command** | `convert.py -b 4.0 -hb 6 -mb 4` | | **Calibration** | 250 rows × 2048 cols, `out_scales: always`, codebook `mul1` | | **Native context** | 262,144 tokens | | **Architecture** | `Qwen3_5ForConditionalGeneration` — 64 layers, hidden 5120, hybrid Gated DeltaNet (48 linear + 16 full attention) | | **Load with** | ExLlamaV3 ≥ 1.4.3 or [TabbyAPI](https://github.com/theroyallab/tabbyAPI) (official ExLlama V3 server) | Not a GGUF, not FP8, not for `transformers` `generate()` / vLLM / llama.cpp. The Hub “model size” widget under-counts (packed EXL3 tensors look like ~8B); this is the full **27B**. Sibling quants of the same uncensored source: [FP8](https://huggingface.co/orcarouter/Qwen3.8-27B-Uncensored-FP8) · [GGUF](https://huggingface.co/orcarouter/Qwen3.8-27B-Uncensored-GGUF) · [MLX](https://huggingface.co/orcarouter/Qwen3.8-27B-Uncensored-MLX). Official (censored) EXL3 of the base: [`turboderp/Qwen3.8-27B-exl3`](https://huggingface.co/turboderp/Qwen3.8-27B-exl3). --- ## Disclaimer The parent weights had safety alignment substantially removed by **abliteration** (refusal-direction orthogonalization). This quant inherits that: - It will comply with requests the original `Qwen3.8-27B` would refuse. - You are responsible for how you use it and for what it generates. - Apache 2.0 from [`Qwen/Qwen3.8-27B`](https://huggingface.co/Qwen/Qwen3.8-27B) still applies. Abliteration and this quant do not change the license. - Outputs are not the views of Qwen / Alibaba, OrcaRouter, or the quantizer. By downloading you accept the above. --- ## What's in the files - Language-model tensors quantized to EXL3 **4.0 bpw** - Output head at **6 bits** (`-hb 6`) - MTP head quantized at **4 bits** (`-mb 4`) — TabbyAPI `draft_mode: mtp` works - Vision tower + image/video preprocessor configs (enable vision in the server if you want it; it costs VRAM) - Tokenizer, chat template, generation config ## Hardware (measured) Converted and served on a **Razer Blade 16 (2025) RTX 5090 Laptop, 24 GB GDDR7**, ExLlamaV3 1.4.3, TabbyAPI, AC power. ### VRAM | TabbyAPI settings | GPU memory | |---|---| | Weights only (approx.) | ~15.7 GB | | `max_seq_len` / `cache_size` **49152**, `cache_mode: "8,8"`, `chunk_size: 512`, `max_batch_size: 1` | **~16.2 GB** / 24 GB | | `max_seq_len` / `cache_size` **262144**, `cache_mode: Q4`, `chunk_size: 4096` | **~21.4 GB** / 24 GB | `cache_mode` is ExLlamaV3 `k_bits,v_bits`. `"8,8"` first; `"6,6"` then `"4,4"` (legacy `Q4`) only if you need a longer window on 24 GB. `cache_size` must be ≥ `max_seq_len` and a multiple of 256. `max_seq_len` is **prompt + response**. ### Speed (AC, 16k eval, pre-Q4-cache) `eval/perf.py -cs 16384 -max_length 16384`, chunk 4096: | Prefill length | tok/s | |---:|---:| | 256 | 844 | | 1024 | 1307 | | 4096 | **1450** | | 16384 | 1351 | | Decode context | tok/s | |---:|---:| | 0 | **42.1** | | 4096 | 41.3 | | 8192 | 40.5 | | 16128 | 39.2 | --- ## Use with TabbyAPI ```bash hf download writetoasik/Qwen3.8-27B-Uncensored-exl3-4.0bpw --local-dir ./Qwen3.8-27B-Uncensored-exl3-4.0bpw ``` In `config.yml` (24 GB starting point): ```yaml model: model_dir: /path/to/models model_name: Qwen3.8-27B-Uncensored-exl3-4.0bpw backend: exllamav3 max_seq_len: 49152 cache_size: 49152 cache_mode: "8,8" chunk_size: 512 max_batch_size: 1 vision: false reasoning: true reasoning_start_token: "" reasoning_end_token: "" tool_format: qwen3_5 template_vars_default: enable_thinking: true draft_model: draft_mode: mtp ``` Then: ``` http://127.0.0.1:5000/v1/chat/completions ``` If a long prompt appears stuck, drop `chunk_size` to `256` and keep `max_batch_size: 1`. Do not set RoPE scale unless you know you need it; this model already trains to 262K. Need the full native window on 24 GB: `max_seq_len` / `cache_size` `262144` and `cache_mode: "4,4"` (or `Q4`). Quality of the KV cache is worse than `"8,8"`. ## Use with ExLlamaV3 directly ```python from exllamav3 import Config, Model, Tokenizer, Generator, Job model_dir = "Qwen3.8-27B-Uncensored-exl3-4.0bpw" cfg = Config.from_directory(model_dir) model = Model.from_config(cfg) model.load() tok = Tokenizer.from_config(cfg) gen = Generator(model, tok) prompt = tok.encode("Hello.") job = Job(input_ids=prompt, max_new_tokens=128) gen.enqueue(job) print(tok.decode(gen.iterate()[0]["token_ids"])) ``` See [ExLlamaV3 examples](https://github.com/turboderp-org/exllamav3/tree/master/examples). --- ## Conversion ```text python convert.py \ -i orcarouter/Qwen3.8-27B-Uncensored \ -w ./_exl3_work \ -o ./Qwen3.8-27B-Uncensored-exl3-4.0bpw \ -b 4.0 -hb 6 -mb 4 ``` | Flag | Value | Meaning | |---|---|---| | `-b` | 4.0 | body bits per weight | | `-hb` | 6 | lm_head bits | | `-mb` | 4 | MTP bits | `quantization_config.json` in this repo is the converter's record (method `exl3`, version `1.4.3`). --- ## Parent model (abliteration, eval) All refusal / capability numbers below are **OrcaRouter's measurements on the BF16 (and its FP8)**, not re-run on this EXL3. Treat them as properties of the source, not a claim that 4.0 bpw is bit-identical in quality. Refusal, thinking off (lower = less refusal): AdvBench 0.0%, JailbreakBench 0.0%, StrongREJECT 2.0%, HarmBench 2.7%, MaliciousInstruct 0.0% vs 94–99% on stock `Qwen3.8-27B`. Capability vs stock (same scripts): MMLU 84.7% (+0.4), MMLU-Pro 76.8% (−0.8), GSM8K 88.7% (−1.3), CMMLU 80.8% (−0.6). WikiText-2-raw PPL 6.96 on the BF16. Full write-up: [`orcarouter/Qwen3.8-27B-Uncensored`](https://huggingface.co/orcarouter/Qwen3.8-27B-Uncensored). --- ## License **Apache 2.0**, inherited from [`Qwen/Qwen3.8-27B`](https://huggingface.co/Qwen/Qwen3.8-27B). - Base: Qwen / Alibaba Cloud - Abliteration: [OrcaRouter](https://huggingface.co/orcarouter/Qwen3.8-27B-Uncensored) - EXL3 quant: [writetoasik](https://huggingface.co/writetoasik) Redistribution must keep the Apache 2.0 license text (this repo includes `LICENSE`).