CoolFace
Modelpublic

andrevp/Qwen3.5-9B-Distilled-OPUS-Heretic-MLX-VLM-4bit

sourceHugging Faceapache-2.0updated 7mo agoView on Hugging Face
6likes471downloads
Model Card

Qwen3.5-9B Distilled OPUS Heretic - MLX-VLM 4bit

4-bit quantized MLX-VLM conversion of an abliterated Qwen3.5-9B model distilled from Claude Opus 4.6 reasoning, optimized for Apple Silicon.

Size: ~5.6 GB | Bits/weight: 5.059 | Quality: Reduced; fastest and smallest variant

Background

This model starts from Jackrong/Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled, a Qwen3.5-9B base fine-tuned via knowledge distillation from Claude Opus 4.6 to replicate its chain-of-thought reasoning style.

Abliteration was applied using the technique from Arditi et al. (2024), adapted with a custom script to handle the hybrid DeltaNet/full-attention architecture. The result is a model that retains strong reasoning and vision capabilities while removing refusal behavior.

The model was then converted to MLX-VLM format and quantized to 4-bit for Apple Silicon inference. This variant offers the smallest footprint at some cost to output quality; prefer the 8-bit or fp16 variants where memory allows.

Architecture

  • —Type: Qwen3_5ForConditionalGeneration (multimodal)
  • —Layers: 32 total — 24 linear attention (DeltaNet) + 8 full attention
  • —Hidden size: 4096 | Intermediate size: 12288
  • —Vision encoder: 27-layer ViT
  • —Inputs: Text, images, video

Confirmed Capabilities

  • —Vision: Correctly describes image content
  • —Reasoning: Step-by-step mathematical problem solving (e.g., integration by parts)
  • —Uncensored: Responds to sensitive prompts without refusal

Usage

python
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
from mlx_vlm.utils import load_config

model_path = "andrevp/Qwen3.5-9B-Distilled-OPUS-Heretic-MLX-VLM-4bit"
model, processor = load(model_path)
config = load_config(model_path)

# Text-only
prompt = apply_chat_template(processor, config, "Your question here", num_images=0)
result = generate(model, processor, prompt, max_tokens=500)
print(result.text)

# Vision
prompt = apply_chat_template(processor, config, "Describe this image", num_images=1)
result = generate(model, processor, prompt, max_tokens=500, image=["image.jpg"])
print(result.text)

Model Family

ModelSizeBits/WeightNotes
andrevp/Qwen3.5-2B-Distilled-OPUS-Heretic-MLX-VLM-fp16~4 GB162B, best quality
andrevp/Qwen3.5-2B-Distilled-OPUS-Heretic-MLX-VLM-8bit~2.1 GB82B, balanced
andrevp/Qwen3.5-2B-Distilled-OPUS-Heretic-MLX-VLM-4bit~1.2 GB42B, smallest
andrevp/Qwen3.5-9B-Distilled-OPUS-Heretic-MLX-VLM-fp16~18 GB169B, best quality
andrevp/Qwen3.5-9B-Distilled-OPUS-Heretic-MLX-VLM-8bit~9.8 GB8.8649B, balanced
andrevp/Qwen3.5-9B-Distilled-OPUS-Heretic-MLX-VLM-4bit~5.6 GB5.059This model

Credits