OsaurusAI/Nemotron-3.5-Lightning-30B-A3B-MXFP8
<p align="center"><a href="https://osaurus.ai"><img src="./osaurus-x-banner.png" alt="Osaurus AI"></a></p>
OsaurusAI/Nemotron-3.5-Lightning-30B-A3B-MXFP8
MX FP8 (mx.quantize(mode="mxfp8"), group size 32, e8m0 shared exponents). Highest-fidelity bundle; use as the quality reference.
MX FP8 (group size 32) conversion of `nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16` for Apple silicon (MLX).
NVIDIA Nemotron 3.5 Lightning is a 30B-total / 3B-active hybrid model: 52 layers of Mamba-2 + MoE + attention (23 Mamba, 23 MoE, 6 full-attention), 128 routed experts with 6 active plus 1 shared expert, and a 256K context window. Only 6 of 52 layers hold a KV cache, which is what makes long context affordable on a laptop.
Bundles in this series
Verified local row
The exact directory uploaded to this repository was loaded and generated on an M5 Max MacBook on 2026-08-11. Greedy decoding, prompts rendered through this bundle's own chat_template.jinja.
- Model class:
nemotron_h - Weight shards: 27
- Weight bytes: 33950540584 (31.619 GiB)
- Average bits/weight: 8.00
- Load time: 1.6 seconds
- Reasoning ON: 64.7 tok/s
- Reasoning OFF: 36.4 tok/s
- Stop behaviour: normal stop on every turn (no length stops)
- Visible output: coherent on every turn
- Tool calling: emitted a well-formed
<tool_call>block
Probes: a factual question with reasoning on, the same with reasoning off, and a single-function tool-calling request.
Sampling
NVIDIA's recommended settings, stamped into both generation_config.json and jang_config.json so servers and loaders agree:
top_k is unspecified upstream and is stamped as 0 so downstream servers do not apply their own default. Both EOS ids matter: 11 (<|im_end|>) is the chat terminator and 2 (</s>) is the legacy one. Do not prepend BOS — add_bos_token is false.
Reasoning
Reasoning is on by default, matching upstream. There are exactly two states — there are no low/medium/high effort tiers.
# Reasoning ON (default)
prompt = tokenizer.apply_chat_template(msgs, add_generation_prompt=True,
tokenize=False, enable_thinking=True)
# Reasoning OFF
prompt = tokenizer.apply_chat_template(msgs, add_generation_prompt=True,
tokenize=False, enable_thinking=False)The chat template opens the reasoning rail itself: with reasoning on the prompt ends in <think>\n, and with reasoning off it ends in a prefilled empty <think></think>. Reasoning-off is therefore not "omit the block" — a runtime that simply drops <think> will produce a model that opens one and never closes it.
The template also defaults truncate_history_thinking=True, so reasoning traces in earlier assistant turns are dropped when a new user turn arrives.
Tool calling
Tools are rendered into the system prompt and calls come back as XML, not JSON:
<tool_call>
<function=get_weather>
<parameter=city>
Santa Clara
</parameter>
</function>
</tool_call>Tool results are passed back with role: "tool"; consecutive results are coalesced into a single user turn wrapped in <tool_response>.
Modality
Text only. Verified against the weights, not the config: the checkpoint contains no vision, audio, or video tensors. This is not the Omni or Audex line.
Usage
from mlx_lm import load, generate
from mlx_lm.sample_utils import make_sampler
model, tokenizer = load("OsaurusAI/Nemotron-3.5-Lightning-30B-A3B-MXFP8")
prompt = tokenizer.apply_chat_template(
[{"role": "user", "content": "Explain speculative decoding in two sentences."}],
add_generation_prompt=True, tokenize=False, enable_thinking=True,
)
print(generate(model, tokenizer, prompt=prompt, max_tokens=512,
sampler=make_sampler(temp=1.0, top_p=0.95), verbose=True))Multi-Token Prediction
The upstream checkpoint ships a native MTP head and it is retained in this bundle (mtp.*, DeepSeek-V3 shape, sharing the embeddings and output head). Current MLX runtimes do not decode with it, so it is inert — it costs disk only, not RAM. The bundle metadata reflects this honestly: mtp.artifact_available = true, mtp.runtime_available = false. Presence of these weights is not a claim of active speculative-decoding acceleration.
License
Released under the OpenMDW-1.1 license of the base model. Please review the base model's terms before use.
Converted by Jinho Jang — <eric@osaurus.ai> — with JANG.
