Views
No views yet
[!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_0withOLLAMA_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), 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.
Nemotron-3-Nano-Omni-30B-A3B-Reasoning (nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16)
with RotorQuant weight method. Apple Silicon native.MLX-MXFP4 precedent. Text tower only,
same caveat as the int-bit MLX variants regarding multimodal encoders.majentik/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-RotorQuant.1# Today (mlx-lm 0.31.x): the NemotronH_Nano_Omni_Reasoning_V3 model class
2# is not yet registered in mlx-lm. The cell below is the API shape that WILL
3# work once upstream lands the class (track ml-explore/mlx-lm#386).
4
5from mlx_lm import load, generate
6
7model, tokenizer = load("majentik/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-RotorQuant-MLX-MXFP4")
8
9prompt = tokenizer.apply_chat_template(
10 [{"role": "user", "content": "Solve: 17 * 23"}],
11 add_generation_prompt=True,
12 enable_thinking=False, # set True to enable extended reasoning (default)
13)
14
15response = generate(
16 model, tokenizer,
17 prompt=prompt,
18 max_tokens=512,
19 sampler=lambda x: x.argmax(axis=-1), # or use mlx_lm.sample_utils.make_sampler(temp=0.6, top_p=0.95)
20)
21print(response)⚠️ This variant covers the text tower only. For multimodal inference (vision + audio + video), use the GGUF variants withllama-mtmd-cli— see the GGUF cards in this family.
MXFP4 microscaling format. This variant uses MXFP4 (E2M1 mantissa, shared E8M0 scale) withgroup_size=32and no per-group bias — distinct from the GGUFMXFP4_MOEpacking. Loadable bymlx-lmonce the NemotronH model class lands upstream.
| Modality | Encoder | Quantization in this variant |
|---|---|---|
| Text | LLM backbone (Mamba-2 + Transformer hybrid Sparse MoE) | per the variant suffix |
| Image | CRADIO v4-H | BF16 (kept full-precision in every non-GGUF variant; GGUF uses mmproj-F16 split file) |
| Audio | Parakeet-TDT-0.6B-v2 | BF16 (same rationale) |
| Video | Parakeet-TDT-0.6B-v2 + frame sampler | BF16 (≤ 2 min, 256 frames @ 2 FPS) |
MXFP4_MOE-in-GGUF format). Loadable
by vLLM ≥ 0.6.x and transformers + auto-awq backend. Encoders
remain BF16.--reasoning-parser nemotron_v3
--media-io-kwargs '{"video":{"fps":2,"num_frames":256}}'enable_thinking defaults to True. To disable extended reasoning
(e.g., for latency-sensitive cases), pass enable_thinking=False
to the chat template / generate call. No separate "no-think"
variant card exists — this is a runtime flag, not a model variant.majentik/nemotron3-nano-omni-30b-*. The current variant — RotorQuant-MLX-MXFP4 — is bolded.)| Variant | Runtime | Approx size | Use case |
|---|---|---|---|
| RotorQuant-MLX-MXFP4 | mlx-lm | ~19 GB | Apple Silicon MXFP4 |