Views
No views yet
nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16 for Apple silicon (MLX).| Bundle | Avg bits | Size | Notes |
|---|---|---|---|
Nemotron-3.5-Lightning-30B-A3B-JANG_2L | 3.73 | 16.22 GiB | smallest |
Nemotron-3.5-Lightning-30B-A3B-JANG_4M | 4.12 | 17.72 GiB | recommended |
Nemotron-3.5-Lightning-30B-A3B-JANG_6M | 6.06 | 25.15 GiB | near-lossless |
Nemotron-3.5-Lightning-30B-A3B-MXFP8 | 8.00 | 31.62 GiB | MX FP8 reference |
chat_template.jinja.nemotron_h<tool_call> blockgeneration_config.json and
jang_config.json so servers and loaders agree:| Parameter | Value |
|---|---|
temperature | 1.0 |
top_p | 0.95 |
top_k | 0 (disabled) |
repetition_penalty | 1.0 (none) |
eos_token_id | [2, 11] |
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.1# Reasoning ON (default)
2prompt = tokenizer.apply_chat_template(msgs, add_generation_prompt=True,
3 tokenize=False, enable_thinking=True)
4# Reasoning OFF
5prompt = tokenizer.apply_chat_template(msgs, add_generation_prompt=True,
6 tokenize=False, enable_thinking=False)<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.truncate_history_thinking=True, so reasoning traces in
earlier assistant turns are dropped when a new user turn arrives.<tool_call>
<function=get_weather>
<parameter=city>
Santa Clara
</parameter>
</function>
</tool_call>role: "tool"; consecutive results are coalesced
into a single user turn wrapped in <tool_response>.1from mlx_lm import load, generate
2from mlx_lm.sample_utils import make_sampler
3
4model, tokenizer = load("OsaurusAI/Nemotron-3.5-Lightning-30B-A3B-JANG_4M")
5prompt = tokenizer.apply_chat_template(
6 [{"role": "user", "content": "Explain speculative decoding in two sentences."}],
7 add_generation_prompt=True, tokenize=False, enable_thinking=True,
8)
9print(generate(model, tokenizer, prompt=prompt, max_tokens=512,
10 sampler=make_sampler(temp=1.0, top_p=0.95), verbose=True))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.