| base_model: google/gemma-4-E2B | |
| library_name: mlx | |
| tags: | |
| - rotorquant | |
| - kv-cache-quantization | |
| - gemma | |
| - gemma4 | |
| - multimodal | |
| - quantized | |
| - mlx | |
| - 4bit | |
| license: apache-2.0 | |
| pipeline_tag: image-text-to-text | |
| # Gemma 4 E2B - RotorQuant MLX 4-bit | |
| **4-bit weight-quantized MLX version** of [google/gemma-4-E2B](https://huggingface.co/google/gemma-4-E2B) with RotorQuant KV-cache quantization. Optimized for Apple Silicon inference via the [MLX](https://github.com/ml-explore/mlx) framework. RotorQuant delivers 5.3x faster prefill and 28% faster decode compared to TurboQuant. A good balance between model quality and memory efficiency. | |
| Approximate model size: **~1.2 GB** | |
| ## Model Specifications | |
| | Property | Value | | |
| |---|---| | |
| | **Base Model** | [google/gemma-4-E2B](https://huggingface.co/google/gemma-4-E2B) | | |
| | **Parameters** | ~2 billion | | |
| | **Architecture** | Dense transformer | | |
| | **Modality** | Multimodal: image + text input, text output | | |
| | **License** | Apache 2.0 | | |
| | **Weight Quantization** | 4-bit (~1.2 GB) | | |
| | **KV-Cache Quantization** | RotorQuant | | |
| | **Framework** | MLX (Apple Silicon) | | |
| ## Quickstart | |
| ```python | |
| import mlx.core as mx | |
| from mlx_lm import load, generate | |
| model, tokenizer = load("majentik/gemma-4-E2B-RotorQuant-MLX-4bit") | |
| prompt = "The history of artificial intelligence began" | |
| response = generate(model, tokenizer, prompt=prompt, max_tokens=512) | |
| print(response) | |
| ``` | |
| For multimodal usage with images: | |
| ```python | |
| from mlx_vlm import load, generate | |
| model, processor = load("majentik/gemma-4-E2B-RotorQuant-MLX-4bit") | |
| prompt = "Describe the contents of this image." | |
| output = generate(model, processor, prompt=prompt, image="path/to/image.jpg", max_tokens=512) | |
| print(output) | |
| ``` | |
| ## What is RotorQuant? | |
| [RotorQuant](https://github.com/scrya-com/rotorquant) is a high-performance KV-cache quantization method that achieves significantly better throughput than TurboQuant. Combined with 4-bit weight quantization in MLX, this provides a dual compression strategy with superior KV-cache performance: smaller model weights plus faster compressed KV cache for efficient long-context generation. | |
| Key advantages over TurboQuant: | |
| - **5.3x faster prefill** | |
| - **28% faster decode** | |
| - Equivalent memory savings | |
| ## KV-Cache Quantization Comparison | |
| | Method | Prefill Speed | Decode Speed | Memory Savings | Reference | | |
| |---|---|---|---|---| | |
| | **TurboQuant** | 1x (baseline) | 1x (baseline) | High | [arXiv: 2504.19874](https://arxiv.org/abs/2504.19874) | | |
| | **RotorQuant** | **5.3x faster** | **28% faster** | High | [GitHub](https://github.com/scrya-com/rotorquant) | | |
| ## Memory Estimates (Gemma 4 E2B) | |
| | Precision | Approximate Size | MLX Variant | | |
| |---|---|---| | |
| | FP16 (original) | ~4 GB | -- | | |
| | 8-bit quantized | ~2 GB | [RotorQuant-MLX-8bit](https://huggingface.co/majentik/gemma-4-E2B-RotorQuant-MLX-8bit) | | |
| | **4-bit quantized** | **~1.2 GB** | **This model** | | |
| | 2-bit quantized | ~0.6 GB | [RotorQuant-MLX-2bit](https://huggingface.co/majentik/gemma-4-E2B-RotorQuant-MLX-2bit) | | |
| ## Hardware Requirements | |
| This model requires approximately 1.2 GB of unified memory. Recommended hardware: | |
| - Apple M1 (8 GB+) | |
| - Apple M2 (8 GB+) | |
| - Apple M3 (8 GB+) | |
| - Apple M4 (8 GB+) | |
| - Any Apple Silicon Mac with 8 GB+ unified memory | |
| ## See Also | |
| - [google/gemma-4-E2B](https://huggingface.co/google/gemma-4-E2B) -- Base model | |
| - [majentik/gemma-4-E2B-RotorQuant](https://huggingface.co/majentik/gemma-4-E2B-RotorQuant) -- RotorQuant KV-cache only (transformers) | |
| - [majentik/gemma-4-E2B-RotorQuant-MLX-8bit](https://huggingface.co/majentik/gemma-4-E2B-RotorQuant-MLX-8bit) -- MLX 8-bit variant | |
| - [majentik/gemma-4-E2B-RotorQuant-MLX-2bit](https://huggingface.co/majentik/gemma-4-E2B-RotorQuant-MLX-2bit) -- MLX 2-bit variant | |
| - [majentik/gemma-4-E2B-TurboQuant-MLX-4bit](https://huggingface.co/majentik/gemma-4-E2B-TurboQuant-MLX-4bit) -- TurboQuant MLX 4-bit variant | |
| - [RotorQuant GitHub](https://github.com/scrya-com/rotorquant) | |
| - [MLX Framework](https://github.com/ml-explore/mlx) | |
| ## Quant trade-off (MLX lane) | |
| | Bits | Approx size | Use case | Recommendation | | |
| |---|---|---|---| | |
| | 2-bit | ~532 MB | Aggressive quantization | Very low-RAM Macs | | |
| | 3-bit | ~737 MB | Lossy but small | Low-RAM Macs | | |
| | **4-bit** | ~860 MB | Balanced default | **Recommended for most Macs** | | |
| | 5-bit | ~1.0 GB | Higher fidelity | Quality-sensitive | | |
| | 6-bit | ~1.2 GB | Approaching FP16 quality | High-fidelity | | |
| | 8-bit | ~1.5 GB | Near-lossless reference | Fidelity-critical work | | |
| (Current variant — **4bit** — is bolded.) | |
| ## Variants in this family | |
| (Showing 18 sibling variants under `majentik/gemma4-e2b-*`. The current variant — `RotorQuant-MLX-4bit` — is **bolded**.) | |
| | Variant | Runtime | Approx size | Use case | | |
| |---|---|---|---| | |
| | [RotorQuant](https://huggingface.co/majentik/gemma4-e2b-rotorquant) | runtime modifier | n/a | KV-cache root (weight-agnostic) | | |
| | [RotorQuant-AWQ-4bit](https://huggingface.co/majentik/gemma4-e2b-rotorquant-awq-4bit) | transformers | ~1.2 GB | GPU 4-bit (AutoAWQ) | | |
| | [RotorQuant-AWQ-8bit](https://huggingface.co/majentik/gemma4-e2b-rotorquant-awq-8bit) | transformers | ~2.2 GB | GPU 8-bit (AutoAWQ) | | |
| | [RotorQuant-GGUF-IQ4_XS](https://huggingface.co/majentik/gemma4-e2b-rotorquant-gguf-IQ4_XS) | llama.cpp | ~1.7 GB | Lossy 4-bit, low-RAM CPU/edge | | |
| | [RotorQuant-GGUF-Q2_K](https://huggingface.co/majentik/gemma4-e2b-rotorquant-gguf-Q2_K) | llama.cpp | ~1.2 GB | Lossy, low-RAM CPU/edge | | |
| | [RotorQuant-GGUF-Q3_K_M](https://huggingface.co/majentik/gemma4-e2b-rotorquant-gguf-Q3_K_M) | llama.cpp | ~1.6 GB | Smaller 3-bit, CPU-friendly | | |
| | [RotorQuant-GGUF-Q4_K_M](https://huggingface.co/majentik/gemma4-e2b-rotorquant-gguf-Q4_K_M) | llama.cpp | ~2.2 GB | Balanced default | | |
| | [RotorQuant-GGUF-Q5_K_M](https://huggingface.co/majentik/gemma4-e2b-rotorquant-gguf-Q5_K_M) | llama.cpp | ~2.6 GB | Higher fidelity, more RAM | | |
| | [RotorQuant-GGUF-Q8_0](https://huggingface.co/majentik/gemma4-e2b-rotorquant-gguf-Q8_0) | llama.cpp | ~4.2 GB | Near-lossless reference | | |
| | [RotorQuant-MLX-2bit](https://huggingface.co/majentik/gemma4-e2b-rotorquant-mlx-2bit) | mlx-lm | ~655 MB | Apple Silicon, smallest | | |
| | **RotorQuant-MLX-4bit** | mlx-lm | ~1.2 GB | Apple Silicon balanced | | |
| | [RotorQuant-MLX-8bit](https://huggingface.co/majentik/gemma4-e2b-rotorquant-mlx-8bit) | mlx-lm | ~2.4 GB | Apple Silicon reference | | |
| | [TurboQuant](https://huggingface.co/majentik/gemma4-e2b-turboquant) | runtime modifier | n/a | KV-cache root (weight-agnostic) | | |
| | [TurboQuant-AWQ-4bit](https://huggingface.co/majentik/gemma4-e2b-turboquant-awq-4bit) | transformers | ~1.2 GB | GPU 4-bit (AutoAWQ) | | |
| | [TurboQuant-AWQ-8bit](https://huggingface.co/majentik/gemma4-e2b-turboquant-awq-8bit) | transformers | ~2.2 GB | GPU 8-bit (AutoAWQ) | | |
| | [TurboQuant-MLX-2bit](https://huggingface.co/majentik/gemma4-e2b-turboquant-mlx-2bit) | mlx-lm | ~655 MB | Apple Silicon, smallest | | |
| | [TurboQuant-MLX-4bit](https://huggingface.co/majentik/gemma4-e2b-turboquant-mlx-4bit) | mlx-lm | ~1.2 GB | Apple Silicon balanced | | |
| | [TurboQuant-MLX-8bit](https://huggingface.co/majentik/gemma4-e2b-turboquant-mlx-8bit) | mlx-lm | ~2.4 GB | Apple Silicon reference | | |
Xet Storage Details
- Size:
- 7.19 kB
- Xet hash:
- 905720552ca70220b04c582627cbffaeb89d4b8d773270b2681c195bfac7dc92
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.