Downloads · 30 days
62
32% of all-time downloads
sevren-ai/nemotron-3.5-lightning-mtp-head-mlx-4bit
nemotron-3.5-lightning-mtp-head-mlx-4bit is a machine learning model from sevren-ai. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for mlx. The card lists the license as other.
This repo holds a single 772 MB weights file: the multi-token-prediction (MTP) head of NVIDIA-Nemotron-3.5-Lightning-30B-A3B, converted to MLX and quantised to 4-bit. It exists because mlx-community/NVIDIA-Nemotron-3.…
Downloads · 30 days
62
32% of all-time downloads
All-time downloads
194
Public
Repo size
772 MB
Likes
1
Public
Click a slice to open those files.
.safetensors772 MB · 100%
From the Hugging Face model README
This repo holds a single 772 MB weights file: the multi-token-prediction (MTP) head of NVIDIA-Nemotron-3.5-Lightning-30B-A3B, converted to MLX and quantised to 4-bit. It exists because mlx-community/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-4bit does not carry the MTP head. Pairing that 4-bit target with this file gives you a complete MTP speculative-decoding setup on Apple Silicon; nothing else is required.
Extracted from the base release (mtp.layers.0 and mtp.layers.1) and stored here:
enorm, hnorm, eh_projfinal_normThe target model's embedding table and lm_head are not included; the head borrows both from
the checkpoint it drafts for.
Given token t, the head predicts token t+2 from the pair (next token, hidden state):
x = eh_proj(concat(enorm(embed(tok_{t+1})), hnorm(h_t)))
x = attention(x) -> MoE(x) -> final_norm(x)
logits = lm_head(x) # lm_head and embedding belong to the target model
h_t is the target's residual stream taken just before its final norm. Since the target model
verifies every draft the head proposes, quantisation error in the head cannot corrupt the output —
it only moves the acceptance rate up or down.
Run MTP speculative decoding (two draft tokens per step) against the mlx-community 4-bit target with sevren-ai/mlx-heimr-sparse-down:
uv run heimr-sparse-down --mtp 2
On an Apple M5 Pro, sparse decoding with the head attached (--mtp 2) reaches 150–164 tok/s on
a code prompt, against 105 tok/s for stock mlx_lm. Full measurements live in the
mlx-heimr-sparse-down repo's README.
| Keys | Notes |
|---|---|
enorm, hnorm, eh_proj | bf16; eh_proj is [2688, 5376] |
final_norm | bf16 |
attn.* | quantised (NemotronHBlock, attention block) |
moe.* | quantised (NemotronHBlock, MoE block); router kept in bf16 |
Source weights: mtp.* tensors (bf16) from
nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4.
Quantisation: affine 4-bit, 64-wide groups, applied with mlx.nn.quantize in round-to-nearest mode
with no calibration data. config.json in this repo mirrors those settings.