Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

Qwen3.6-35B-A3B-MoEGraded

by Zlwa E-stick/Qwen3.6-35B-A3B-MoEGraded

Qwen3.6-35B-A3B-MoEGraded is an open-weight model for text generation from Zlwa, released under Apache License 2.0. Its published files total 35.3 GB.

Qwen3.6-35B-A3B · every expert gets the bit width it earns English · 简体中文 A MoE model doesn't activate all of its experts equally often. Some get called constantly, some barely at all — yet a normal quantization gives every expert the same bit width anyway.

Parameters—
Context—
Weights35.3 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Zlwa, published under apache-2.0, revision b85392a6aed5.

Qwen3.6-35B-A3B · every expert gets the bit width it earns English · 简体中文 A MoE model doesn't activate all of its experts equally often. Some get called constantly, some barely at all — yet a normal quantization gives every expert the same bit width anyway. So the routed experts get quantized by how often they actually fire in real tasks: high frequency keeps more bits, low frequency gets squeezed. Noise on this corpus runs ±0.029, so honestly these two measure the same. The difference is what the middle and cold tiers get to keep. 14 chunks × 512 tokens, -t 20, same machine throughout: Balanced dipping under F16 isn't a real win — 0.002 is well inside the noise. The part worth looking at…

Read Zlwa's full model card
# MoE Expert Grading **Qwen3.6-35B-A3B · every expert gets the bit width it earns** [![status](https://img.shields.io/badge/status-experimental-orange)](#read-this-first) [![base](https://img.shields.io/badge/base-Qwen3.6--35B--A3B-blue)](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) [![format](https://img.shields.io/badge/format-GGUF-lightgrey)](#-pick-one) [![fork](https://img.shields.io/badge/llama.cpp-patched_fork_critical-critical)](https://github.com/wuliaott/moe-expert-grading) **English** · [简体中文](https://huggingface.co/E-stick/Qwen3.6-35B-A3B-MoEGraded/blob/main/README_zh.md)

Read this first

[!WARNING] This is experimental. The only thing I measured is perplexity — one corpus, one machine, no task benchmarks. I also never sat down and compared outputs against the unquantized model line by line. So "the numbers look fine" is all I can honestly claim; it is not a promise that this is good. Only tested on Qwen3.6-35B-A3B, and speculative decoding is untested.

[!IMPORTANT] You need a patched llama.cpp. These files carry per-tier expert tensors (*_hot / *_warm / *_cold) and moe_expert_groups metadata that upstream has no idea about. A stock build gives you failed to load model. Fork is here, with a prebuilt Windows binary on its release page.

The idea

A MoE model doesn't activate all of its experts equally often. Some get called constantly, some barely at all — yet a normal quantization gives every expert the same bit width anyway. So the routed experts get quantized by how often they actually fire in real tasks: high frequency keeps more bits, low frequency gets squeezed.

Pick one

Balanced Compact
File Qwen3.6-35B-A3B-MoEGraded-Balanced.gguf Qwen3.6-35B-A3B-MoEGraded-Compact.gguf
Size 17.26 GiB 15.59 GiB
PPL ↓ 1.5030 1.5096
Hot tier Q4_K gate/up, Q5_K down Q4_K everywhere
Warm tier Q3_K + Q4_K down Q3_K everywhere
Cold tier Q3_K Q2_K gate/up, Q3_K down
Grab it when you have the 17 GB you don't

Noise on this corpus runs ±0.029, so honestly these two measure the same. The difference is what the middle and cold tiers get to keep.

The numbers

14 chunks × 512 tokens, -t 20, same machine throughout:

model size PPL ↓ vs F16
F16 reference 67 GB 1.5053 —
Balanced 17.26 GiB 1.5030 −0.002
Compact 15.59 GiB 1.5096 +0.004
APEX I-Compact (upstream) 16.10 GiB 1.5125 +0.007
Uniform Q3_K, no grading 15.82 GiB 1.5180 +0.013
Upstream Q4_K_S 20 GB 1.5167 +0.011
Upstream Q3_K_S 15 GB 1.5404 +0.035

Balanced dipping under F16 isn't a real win — 0.002 is well inside the noise. The part worth looking at is the lower half: both files beat APEX I-Compact, and Compact does it from a file 0.51 GiB smaller.

How it works

1 · Measure the frequency. Run an importance matrix over 5,120 calibration tokens to count how often each routed expert gets activated.

2 · Sort into three groups. Top 20% hot (51 experts), next 30% warm (77), the rest cold (128).

3 · Quantize each separately. Every group gets its own tensors and its own type, gate/up/down independently. Router, norms, attention, embeddings and shared experts stay high precision either way.

4 · Reassemble at load time. The patched loader sends every mul_mat_id through a tier lookup table and a mask — one pass covers all three groups, and the router still sees all 256 experts.

None of this would work if MoE were dense. Because only 8 experts fire per token, a cold expert that's slightly off barely gets touched — and that slack is what pays for the hot tier's extra bits.

▶ Run it

Prebuilt — Windows x64, CPU + Vulkan, tested on an RX 5700 XT:

⬇ llama-fork-vulkan-graded-win-x64.zip

Or build it from source:

git clone --depth 1 --branch 0c1e570 https://github.com/ggml-org/llama.cpp
cd llama.cpp
patch -p1 < graded-moe-0c1e570.patch
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j

build/bin/llama-cli -m Qwen3.6-35B-A3B-MoEGraded-Balanced.gguf \
    --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.0 --presence-penalty 1.5 \
    -p "Write a haiku about quantization."

Sampling follows the official Qwen3.6 recommendation. Don't use greedy decoding — it hits Qwen3.6's repetition loop.


Reproducing from scratch
The patch, `quant_recipe.py` and the tiering scripts are in the [GitHub repo](https://github.com/wuliaott/moe-expert-grading). `README-TECH.md` there has the details and the pitfalls.
python3 quant_recipe.py --list
python3 quant_recipe.py --recipe v8 --target-mib 17673 --run --ppl
`--target-mib` makes the script assert the predicted size against what actually lands on disk, so a recipe change can't silently slip through.

Built with an AI coding agent from a written design. The measurements are real; nobody outside the project has reviewed the code. Weights Apache-2.0, following Qwen3.6-35B-A3B · fork and scripts MIT.

Identity and Version

Repository
E-stick/Qwen3.6-35B-A3B-MoEGraded
Publisher
Zlwa
Task
Text generation
Modality
Text
Library
Not stated by the source
Parameters
Not stated by the source
Languages
moe
Revision
b85392a6aed5759efb4b1cb40e9e7d550c566afe
First published
2026-10-02
Last updated
2026-10-03

Files and Weights

5 files, 35.3 GB in total. The weights are 2 files totalling 35.3 GB in gguf.

Weights2 files · 35.3 GB
Documentation2 files · 11.3 KB
Repository1 file · 1.7 KB
Every file
FileTypeSizeSHA-256
Qwen3.6-35B-A3B-MoEGraded-Balanced.ggufWeights18.5 GB 265a49bc407f
Qwen3.6-35B-A3B-MoEGraded-Compact.ggufWeights16.8 GB 1840f27ddcd9
README.mdDocumentation5.7 KB —
README_zh.mdDocumentation5.6 KB —
.gitattributesRepository1.7 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
35.3 GB
Download from Zlwa

Released by Zlwa through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published35.3 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About Qwen3.6-35B-A3B-MoEGraded

Can I use Qwen3.6-35B-A3B-MoEGraded commercially?

Yes. Qwen3.6-35B-A3B-MoEGraded is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Text generation

opt-125m

AI at Meta

OPT was first introduced in Open Pre-trained Transformer Language Models and first released in metaseq's repository on May 3rd 2022 by Meta AI. Disclaimer: The team releasing OPT wrote an official model card, which is available in Appendix D of the paper. Content from this model card has been written by the Hugging Face team. To quote the first two paragraphs of the official paper OPT was predominantly pretrained with English text, but a small amount of non-English data is still present within the training corpus via CommonCrawl. The model was pretrained using a causal language modeling (CLM) objective. OPT belongs to the same family of decoder-only models like GPT-3. As such, it was…

Open weights other 2,048 tokens transformers

Model · Text generation

Ornith-1.5-9B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Model · Text generation

Ternary-Bonsai-2-27B-gguf

Prism ML

Full 27B-class reasoning in ternary transformer weights, for llama.cpp (CUDA, Metal, CPU) - \~5.9 GB language model (down from \~54 GB FP16) — full 27B-class reasoning on a standard laptop or a single GPU - 98.2% of FP16 intelligence retained: 84.78 average across 14 thinking-mode benchmarks — far above the conventional IQ2XXS build (72.59) at about 82% of its footprint, and within 0.4 points of UD-Q4KXL at three times the footprint - Retains thinking, reasoning, and agentic behavior deep in the sub-4-bit regime, where conventional low-bit representations collapse: math within half a point of full precision (96.57), coding level with the baseline (89.42), agentic tool calling at 74.92…

Open weights apache-2.0 llama.cpp

Model · Text generation

Ornith-1.5-35B-A3B-GGUF

Ornith

Chirp Chirp! We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement. Ornith-1.5 extends Ornith-1.0 (which was developed on top of Qwen3.5 and Gemma4 with additional continued pretraining, mid-training, and post-training) by expanding the self-improvement loop from scaffold and rollout optimization to jointly optimizing task generation, scaffold construction, and solution rollouts. Rather than relying on a fixed set of human-curated tasks and manually designed harnesses, Ornith-1.5 continuously generates new training tasks, discovers effective strategies for solving them, and improves the policy through reinforcement learning. For…

Open weights mit transformers

Uncensored Qwen3.8-27B, published as GGUF quantizations with the multi token prediction (MTP) head retained and verified. Refusal behaviour has been substantially reduced, not eliminated. See Measured behaviour for the numbers. Capabilities, training data, and architecture are otherwise unchanged. - Refusal directions removed with Heretic, which co minimizes refusal count against KL divergence from the base model. No handwritten refusal removal code, no finetuning, no additional training data. - Abliteration runs at bf16 (no 4 bit quantization). the resulting LoRA is merged into the bf16 base, so the published weights are not a quantized round trip. - mtp. tensors are copied verbatim from…

Open weights apache-2.0 llama.cpp

Model · Text generation

Ornith-1.0-9B-GGUF

Ornith

Aloha! Today, we are releasing Ornith-1.0, a self-improving family of open-source models for agentic coding. This model card documents Ornith-1.0-9B, the most lightweight member of the Ornith family, designed for efficient single-GPU deployment. Ornith-1.0-9B is a dense ~9B model (≈19 GB in bf16), so it serves comfortably on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs. For a quick local test (or to script offline generation), load the model directly with Transformers. Make sure you have a recent release installed — see the Transformers installation guide; Ornith-1.0-9B requires…

Open weights mit transformers