majentik's picture
docs: upstream-first KV-cache guidance (q8_0/q4_0, mainline Hadamard rotation); fork demoted to experimental
cbc9315 verified
|
Raw
History Blame Contribute Delete
7.33 kB
---
base_model: MiniMaxAI/MiniMax-M2.7
library_name: mlx
pipeline_tag: text-generation
license: other
license_name: minimax-model-license
license_link: https://huggingface.co/MiniMaxAI/MiniMax-M2.7/blob/main/LICENSE
tags:
- minimax
- m2.7
- moe
- quantized
- turboquant
- kv-cache-quantization
- mlx
---
> [!NOTE]
> **Status (2026-07-07): no weights published yet.** This repository currently contains only the model card — it marks a planned variant that has not been released. Follow the repo to be notified when files land.
<!-- status-note -->
> [!TIP]
> **KV-cache quantization without any fork (recommended, 2026):** upstream
> llama.cpp/Ollama now cover this natively — use `-ctk q8_0 -ctv q8_0`
> (~half KV memory, negligible quality loss: perplexity +0.002–0.05) or
> `-ctk q4_0 -ctv q4_0` (~quarter memory, ≈7.6% perplexity increase). In
> Ollama: `OLLAMA_KV_CACHE_TYPE=q8_0` with `OLLAMA_FLASH_ATTENTION=1`. Keep
> K and V types symmetric to stay on the fast fused Flash-Attention path.
> Since April 2026, mainline llama.cpp also applies Hadamard rotation to
> KV activations ([PR #21038](https://github.com/ggml-org/llama.cpp/pull/21038)),
> which greatly improves low-bit KV quality (opt-out:
> `LLAMA_ATTN_ROT_DISABLE=1`).
>
> The RotorQuant/TurboQuant fork flow below is **experimental/legacy**: the
> TurboQuant llama.cpp PR was closed without merging (June 2026) and the fork
> is unmaintained relative to mainline. It is NOT required to use this model.
<!-- kv-upstream-note -->
# MiniMax-M2.7-TurboQuant-MLX-2bit
**MLX 2-bit quantized variant of [MiniMaxAI/MiniMax-M2.7](https://huggingface.co/MiniMaxAI/MiniMax-M2.7) with TurboQuant KV-cache compression, optimized for Apple Silicon.**
## Overview
MiniMax-M2.7 is a massive 256-expert Mixture-of-Experts (MoE) model with 8 experts active per token, totaling approximately 456 billion parameters. This variant combines **2-bit MLX weight quantization** with **TurboQuant** KV-cache quantization for deployment on Apple Silicon hardware.
TurboQuant uses asymmetric per-channel quantization on the KV cache. At 2-bit, this is the most aggressively compressed variant -- it enables running on 128 GB Apple Silicon but comes with meaningful quality degradation. Best suited for experimentation, prototyping, and latency-sensitive applications where approximate outputs are acceptable.
| Property | Value |
|---|---|
| Architecture | MoE (256 experts, 8 active/token) |
| Total Parameters | ~456B |
| Layers | 62 |
| Hidden Size | 3072 |
| Attention Heads | 48 |
| Weight Quantization | 2-bit (MLX) |
| KV-Cache Quantization | TurboQuant |
| Estimated Size | ~110 GB |
| Base Model | MiniMaxAI/MiniMax-M2.7 |
## Quickstart
```bash
pip install mlx-lm
```
```python
from mlx_lm import load, generate
model, tokenizer = load("majentik/MiniMax-M2.7-TurboQuant-MLX-2bit")
prompt = "What is a Comprehensive Geriatric Assessment?"
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
response = generate(
model,
tokenizer,
prompt=text,
max_tokens=512,
)
print(response)
```
## TurboQuant vs RotorQuant
| Feature | TurboQuant | RotorQuant |
|---|---|---|
| Technique | Asymmetric per-channel KV quantization | Rotation-based KV quantization (Hadamard transform) |
| Throughput | Higher throughput, lower latency | Slightly lower throughput |
| Quality | Good quality preservation | Better quality preservation at low bit-widths |
| Best For | High-throughput serving, long contexts | Quality-sensitive tasks, research |
> At 2-bit quantization, quality loss is significant for both methods. The [RotorQuant variant](https://huggingface.co/majentik/MiniMax-M2.7-RotorQuant-MLX-2bit) will generally produce better outputs at this bit-width due to its rotation-based outlier smoothing.
## Memory Estimates (Apple Silicon)
| Variant | Estimated Size | Minimum Unified Memory |
|---|---|---|
| MLX 8-bit | ~456 GB | 512 GB (Mac Studio M2/M3/M4 Ultra) |
| MLX 5-bit | ~280 GB | 384 GB |
| MLX 4-bit | ~225 GB | 256 GB |
| MLX 3-bit | ~170 GB | 192 GB |
| MLX 2-bit | ~110 GB | 128 GB |
> **Note**: 2-bit is the most accessible variant, fitting on Apple Silicon with 128 GB+ unified memory (e.g., M2/M3/M4 Max or Ultra). Expect noticeable quality degradation compared to higher bit-widths.
## See Also
- [MiniMaxAI/MiniMax-M2.7](https://huggingface.co/MiniMaxAI/MiniMax-M2.7) -- Base model
- [majentik/MiniMax-M2.7-TurboQuant](https://huggingface.co/majentik/MiniMax-M2.7-TurboQuant) -- KV-cache only (transformers)
- [majentik/MiniMax-M2.7-RotorQuant-MLX-2bit](https://huggingface.co/majentik/MiniMax-M2.7-RotorQuant-MLX-2bit) -- RotorQuant MLX 2-bit
- [majentik/MiniMax-M2.7-TurboQuant-MLX-3bit](https://huggingface.co/majentik/MiniMax-M2.7-TurboQuant-MLX-3bit) -- MLX 3-bit
- [majentik/MiniMax-M2.7-TurboQuant-MLX-4bit](https://huggingface.co/majentik/MiniMax-M2.7-TurboQuant-MLX-4bit) -- MLX 4-bit
## Quant trade-off (MLX lane)
| Bits | Approx size | Use case | Recommendation |
|---|---|---|---|
| **2-bit** | ~119 GB | Aggressive quantization | **Very low-RAM Macs** |
| 3-bit | ~164 GB | Lossy but small | Low-RAM Macs |
| 4-bit | ~192 GB | Balanced default | Recommended for most Macs |
| 5-bit | ~228 GB | Higher fidelity | Quality-sensitive |
| 6-bit | ~274 GB | Approaching FP16 quality | High-fidelity |
| 8-bit | ~347 GB | Near-lossless reference | Fidelity-critical work |
(Current variant — **2bit** — is bolded.)
## Variants in this family
(Showing 12 sibling variants under `majentik/minimax-m2.7-*`. The current variant — `TurboQuant-MLX-2bit` — is **bolded**.)
| Variant | Runtime | Approx size | Use case |
|---|---|---|---|
| [RotorQuant](https://huggingface.co/majentik/minimax-m2.7-rotorquant) | runtime modifier | n/a | KV-cache root (weight-agnostic) |
| [RotorQuant-MLX-2bit](https://huggingface.co/majentik/minimax-m2.7-rotorquant-mlx-2bit) | mlx-lm | ~885 MB | Apple Silicon, smallest |
| [RotorQuant-MLX-3bit](https://huggingface.co/majentik/minimax-m2.7-rotorquant-mlx-3bit) | mlx-lm | ~1.2 GB | Apple Silicon, small |
| [RotorQuant-MLX-4bit](https://huggingface.co/majentik/minimax-m2.7-rotorquant-mlx-4bit) | mlx-lm | ~1.7 GB | Apple Silicon balanced |
| [RotorQuant-MLX-5bit](https://huggingface.co/majentik/minimax-m2.7-rotorquant-mlx-5bit) | mlx-lm | ~2.1 GB | Apple Silicon, higher fidelity |
| [RotorQuant-MLX-8bit](https://huggingface.co/majentik/minimax-m2.7-rotorquant-mlx-8bit) | mlx-lm | ~3.2 GB | Apple Silicon reference |
| [TurboQuant](https://huggingface.co/majentik/minimax-m2.7-turboquant) | runtime modifier | n/a | KV-cache root (weight-agnostic) |
| **TurboQuant-MLX-2bit** | mlx-lm | ~885 MB | Apple Silicon, smallest |
| [TurboQuant-MLX-3bit](https://huggingface.co/majentik/minimax-m2.7-turboquant-mlx-3bit) | mlx-lm | ~1.2 GB | Apple Silicon, small |
| [TurboQuant-MLX-4bit](https://huggingface.co/majentik/minimax-m2.7-turboquant-mlx-4bit) | mlx-lm | ~1.7 GB | Apple Silicon balanced |
| [TurboQuant-MLX-5bit](https://huggingface.co/majentik/minimax-m2.7-turboquant-mlx-5bit) | mlx-lm | ~2.1 GB | Apple Silicon, higher fidelity |
| [TurboQuant-MLX-8bit](https://huggingface.co/majentik/minimax-m2.7-turboquant-mlx-8bit) | mlx-lm | ~3.2 GB | Apple Silicon reference |