--- 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)