Views
No views yet
Text-only. Vision-tower weights are not present in this quantization (the base model's vision encoder was excluded during conversion). Despiteconfig.jsonstill declaringQwen3_5MoeForConditionalGeneration(required for mlx-lm compatibility), image inputs will fail. For multimodal use, see the original Qwen/Qwen3.6-35B-A3B.
Qwen/Qwen3.6-35B-A3B
└─ tvall43/Qwen3.6-35B-A3B-heretic (abliterated)
└─ cspenn/Qwen3.6-35B-A3B-heretic-MLX-Mixed-4-8 (this repo, MLX quant)attn.o_proj) on a per-layer basis, while maintaining a KL divergence of just 0.0097 from the original model — preserving general behavior almost entirely.mlx-lm's convert with a custom quant_predicate. A sensitivity-informed mixed strategy keeps routing and boundary layers at 8-bit while compressing the bulk expert weights to 4-bit. See Quantization Layout below.| Property | Value |
|---|---|
| Base architecture | Qwen3_5MoeForConditionalGeneration |
| Total parameters | ~35B |
| Active parameters per token | ~3B |
| Transformer layers | 40 hybrid (30 Gated DeltaNet linear-attn + 10 Gated self-attn) |
| Self-attn layer positions | 3, 7, 11, 15, 19, 23, 27, 31, 35, 39 |
| Routed experts | 256 |
| Shared experts | 1 |
| Experts activated per token | 8 routed + 1 shared |
| Context length (base) | 262,144 tokens |
| Base dtype | bfloat16 |
| Vision tower | Not present (excluded at quantization time) |
| Quantized format | MLX affine quantization (safetensors) |
| Shards | 4 safetensors files |
| On-disk size | ~20 GB |
| Tensor pattern | Scope | Tensor count | Bits | Rationale |
|---|---|---|---|---|
embed_tokens | input embedding | 1 | 8 | Input boundary; errors amplify through all layers |
lm_head | output head | 1 | 8 | Output head sensitivity at the prediction boundary |
mlp.gate | MoE router in all 40 layers | 40 | 8 | Expert routing decisions are disproportionately sensitive to precision |
shared_expert_gate | shared-expert gate in all 40 layers | 40 | 8 | Gates token flow to the always-active shared expert |
linear_attn.out_proj | all 30 linear-attn (Gated DeltaNet) layers | 30 | 8 | Identified by OptiQ sensitivity analysis as the highest-KLD tensor (KLD ~6.0) in these blocks |
All tensors in layers.0.* | first transformer block | 10 | 8 | Input anchor — first and last blocks are known to be especially sensitive |
All tensors in layers.39.* | last transformer block | 10 | 8 | Output anchor |
Expert FFN (switch_mlp.gate_proj, switch_mlp.up_proj, switch_mlp.down_proj), shared-expert FFN, attention projections in layers 1–38 | bulk of the model | ~380 | 4 | Holds the vast majority of ~35B parameters; quality loss is acceptable at 4-bit given MoE sparsity |
Vision tower (*.visual.*) | — | 0 | — | Excluded entirely — small relative to LM and not needed for text-only use |
1from mlx_lm import load, generate
2
3model, tokenizer = load("cspenn/Qwen3.6-35B-A3B-heretic-MLX-Mixed-4-8")
4
5messages = [{"role": "user", "content": "Explain mixture-of-experts in one paragraph."}]
6prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
7
8response = generate(model, tokenizer, prompt=prompt, max_tokens=512, verbose=True)
9print(response)1mlx_lm.generate \
2 --model cspenn/Qwen3.6-35B-A3B-heretic-MLX-Mixed-4-8 \
3 --prompt "Explain mixture-of-experts in one paragraph." \
4 --max-tokens 512cspenn/Qwen3.6-35B-A3B-heretic-MLX-Mixed-4-8 in the Discover tab.chat_template.jinja and tokenizer.json are included, so chat templating works out of the box.config.json retains Qwen3_5MoeForConditionalGeneration (a VLM architecture class) and the image_token_id field because altering these would break mlx-lm's model loader. However, the vision encoder weights were not included in the safetensors; any attempt to pass image inputs will raise an error. This is intentional.<think> reasoning mode. The heretic abliteration was applied without disabling this capability; it should remain functional.convert utility used for quantization.quant_predicate informed by OptiQ sensitivity analysis.