sakamakismile/Huihui-Qwopus3.5-27B-v3-abliterated-NVFP4

🤗 On Hugging Faceimage-text-to-textapache-2.016.7B params20 GBsafetensors✓ Checksum-verifiedupdated 0d ago
Magnet

Huihui-Qwopus3.5-27B-v3-abliterated-NVFP4

NVFP4 quantized version of huihui-ai/Huihui-Qwopus3.5-27B-v3-abliterated — an abliterated Qwen 3.5 27B distilled from Claude Opus reasoning patterns (Jackrong/Qwopus3.5-27B-v3).

~51 GB → 19.8 GB. Single NVIDIA Blackwell GPU.

What Makes This Different

Qwopus = Qwen 3.5 + Opus-style reasoning. The base model was trained to produce stable, structured reasoning even at short output lengths — where vanilla Qwen3.5 needs more tokens to reach peak quality.

| Characteristic | Vanilla Qwen3.5 | Qwopus |

|---|---|---|

| Short responses (64-256 tok) | Quality ramps up slowly | Stable from the start |

| Long responses (2048+ tok) | Slightly higher peak | Marginally lower peak |

| Reasoning style | Variable | Structured "thinking process" chains |

| Best for | Long-form analysis | Agents, tool calls, code generation |

This makes Qwopus especially suited for agentic workflows where each tool call or code snippet needs to be precise in a short response.

Key Specs

| | |

|---|---|

| Base model | huihui-ai/Huihui-Qwopus3.5-27B-v3-abliterated |

| Architecture | Qwen 3.5 Dense — 27B parameters, 64 layers |

| Quantization | NVFP4 W4A4 (weights FP4, activations FP4, scales FP8) |

| Format | compressed-tensors (native vLLM support) |

| Tool | vllm-project/llm-compressor (main) |

| Calibration | 512 samples, neuralmagic/calibration, seq_len=4096 |

| Size | 19.8 GB |

| Max context | 262,144 tokens |

| MTP | Not available (removed during fine-tuning) |

| Requires | NVIDIA Blackwell GPU (SM 120), vLLM nightly (cu130) |

Quickstart

vLLM

vllm serve Lna-Lab/Huihui-Qwopus3.5-27B-v3-abliterated-NVFP4 \
    --max-model-len 32768 \
    --reasoning-parser qwen3

With tool calling

vllm serve Lna-Lab/Huihui-Qwopus3.5-27B-v3-abliterated-NVFP4 \
    --max-model-len 32768 \
    --reasoning-parser qwen3 \
    --enable-auto-tool-choice \
    --tool-call-parser qwen3_xml

Docker

docker run --gpus '"device=0"' -p 8016:8016 \
    -v /path/to/model:/models/current:ro \
    --shm-size 16gb \
    vllm/vllm-openai:cu130-nightly \
    vllm serve /models/current --port 8016 --max-model-len 32768 \
    --reasoning-parser qwen3

Benchmark

Single NVIDIA RTX PRO 6000 Blackwell (96 GB VRAM).

| Test | Tokens | Speed | Result |

|------|--------|-------|--------|

| Short (derivative) | 64 | 57.7 tok/s | PASS — structured reasoning even at 64 tokens |

| Short (CAP theorem) | 128 | 58.5 tok/s | PASS |

| Mid (LRU cache) | 512 | 57.6 tok/s | PASS |

| Long (architecture analysis) | 1710 | 59.2 tok/s | PASS |

| Container burst | 256 | 61.1 tok/s | PASS — 3 runs stable |

Sustained: ~59-61 tok/s (single GPU).

Quantization Details

Recipe

recipe = QuantizationModifier(
    targets=["Linear"],
    ignore=["lm_head", "re:.*visual.*", "re:.*in_proj_a$", "re:.*in_proj_b$"],
    scheme="NVFP4",
)

Calibration

Reproduction

from transformers import Qwen3_5ForConditionalGeneration, AutoProcessor, AutoTokenizer
from datasets import load_dataset
from llmcompressor import oneshot
from llmcompressor.modifiers.quantization import QuantizationModifier
import torch

MODEL_ID = "huihui-ai/Huihui-Qwopus3.5-27B-v3-abliterated"
OUTPUT = "Huihui-Qwopus3.5-27B-v3-abliterated-NVFP4"

model = Qwen3_5ForConditionalGeneration.from_pretrained(MODEL_ID, dtype="auto", trust_remote_code=True)
processor = AutoProcessor.from_pretrained(MODEL_ID, trust_remote_code=True)

recipe = QuantizationModifier(
    targets=["Linear"],
    ignore=["lm_head", "re:.*visual.*", "re:.*in_proj_a$", "re:.*in_proj_b$"],
    scheme="NVFP4",
)

ds = load_dataset("neuralmagic/calibration", name="LLM", split="train[:512]")

def preprocess(example):
    messages = [
        {"role": m["role"], "content": [{"type": "text", "text": m["content"]}]}
        for m in example["messages"]
    ]
    return processor.apply_chat_template(
        messages, return_tensors="pt", padding=False, truncation=True,
        max_length=4096, tokenize=True, add_special_tokens=False,
        return_dict=True, add_generation_prompt=False,
    )

ds = ds.map(preprocess, batched=False, remove_columns=ds.column_names)

def data_collator(batch):
    assert len(batch) == 1
    return {
        key: (torch.tensor(value) if key != "pixel_values"
              else torch.tensor(value, dtype=torch.bfloat16).squeeze(0))
        for key, value in batch[0].items()
    }

oneshot(
    model=model, recipe=recipe, dataset=ds,
    max_seq_length=4096, num_calibration_samples=512,
    data_collator=data_collator,
)

model.save_pretrained(OUTPUT, save_compressed=True)
processor.save_pretrained(OUTPUT)
Note: No save_mtp_tensors_to_checkpoint needed — Qwopus does not have MTP head (removed during fine-tuning).

Environment

| Package | Version |

|---------|---------|

| torch | 2.11.0+cu130 |

| transformers | 5.5.4 |

| llmcompressor | 0.1.dev (main @ 3084520) |

| compressed-tensors | 0.15.1a20260414 |

| CUDA | 13.0 |

Requirements

  • GPU: NVIDIA Blackwell (SM 120)
  • VRAM: ~20 GB minimum
  • Software: vLLM nightly (cu130)

Notes

  • Abliterated (uncensored). Use responsibly.
  • Vision tower preserved in BF16.
  • No MTP head — speculative decoding not available for this variant.
  • NVFP4 is Blackwell-specific. Will not work on Ampere/Hopper.

Credits

Support the Base Model Author