mlx-community/gemma-4-31B-it-qat-OptiQ-4bit
mlx-community/gemma-4-31B-it-qat-OptiQ-4bit
Built with [mlx-optiq](https://mlx-optiq.com), the MLX-native toolkit to quantize, fine-tune, and serve LLMs locally on Apple Silicon, no PyTorch and no cloud. Try the Lab · All OptiQ quants · Docs
A 4-bit mixed-precision MLX quant produced by mlx-optiq, built on Google's quantization-aware-trained (QAT) Gemma-4 base. This is the flagship of the family: the 31B dense Gemma-4, and the strongest OptiQ quant on the Capability Score. OptiQ's sensitivity-guided per-layer bit allocation is applied on top of weights already trained to survive low-bit quantization, and it still beats a uniform 4-bit quant of the same QAT base by +1.65 Capability Score points.
This is a quant of google/gemma-4-31B-it-qat-q4_0-unquantized. Per-layer bit-widths come from a KL-divergence sensitivity pass on a six-domain calibration mix (prose, reasoning, code, agent, tool-call, constraint-bearing instructions). Sensitive layers go to 8-bit, robust ones stay at 4-bit.
Quantization details
Capability Score
Six-metric mean (MMLU, GSM8K, IFEval, BFCL, HumanEval, HashHop), scored against a uniform 4-bit quant of the same QAT base. That comparison isolates what the mixed-precision allocation adds, holding the base fixed.
OptiQ adds +1.65 points over uniform 4-bit on this QAT base, the largest margin in the Gemma-4 family alongside the small QAT models (E2B +2.09, E4B +1.19, 12B +1.37). The gain concentrates in long-context retrieval (HashHop +9.0): the per-layer allocation puts 8-bit on the attention and projection layers that carry the retrieval signal, which the larger model leans on most. The mixed quant is 5.20 bits-per-weight (about 20.8 GB on disk) versus 4.0 bits-per-weight (about 16.1 GB) for uniform 4-bit, with the extra budget spent on the layers that need it.
Usage
This is a Gemma-4 (model_type: gemma4, gemma4_text), so it needs mlx-lm from main and `import optiq` (the Gemma-4 text tower is not in the 0.31.3 PyPI release; the main build also reports 0.31.3, so install from git, not a version pin):
pip install -U mlx-optiq "mlx-lm @ git+https://github.com/ml-explore/mlx-lm.git"import optiq # registers the OptiQ model paths
from mlx_lm import load, generate
model, tokenizer = load("mlx-community/gemma-4-31B-it-qat-OptiQ-4bit")
print(generate(model, tokenizer, "Explain mixed-precision quantization.", max_tokens=256))Image+text input and the speculative drafter run through mlx-optiq:
pip install mlx-optiq
optiq serve --model mlx-community/gemma-4-31B-it-qat-OptiQ-4bit \
--drafter google/gemma-4-31B-it-qat-q4_0-unquantized-assistantThe language and image+text paths both run through optiq. The bf16 vision tower rides in optiq_vision.safetensors, which mlx-lm ignores (it globs model*.safetensors), so both paths work from one artifact.
