Instructions to use Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- OpenClaw new
How to use Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- MLX LM
How to use Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit
Run Hermes
hermes
- Atomic Chat
NVIDIA Nemotron 3.5 Lightning 30B-A3B — MLX 6-bit
A native Apple-silicon conversion of nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16, quantized with stock 6-bit affine weights and packaged for MLX-LM and oMLX.
Original model · NVIDIA Nemotron · MLX-LM · OpenMDW 1.1 license
About this conversion
This repository contains a stock 6-bit affine MLX conversion of NVIDIA Nemotron 3.5 Lightning. The source is a 30B-total / 3B-active hybrid mixture-of-experts model that interleaves Mamba-2, sparse MoE, and attention layers. The upstream tokenizer, chat template, and generation configuration are preserved.
| Item | Value |
|---|---|
| Base model | nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16 |
| Format | MLX safetensors |
| Quantization | 6-bit affine, group size 64 |
| Conversion stack | mlx-lm 0.31.3, mlx 0.32.0 |
| Weight shards | 5 |
| Weight size | 25.67 GB (23.90 GiB) |
| Maximum configured context | 262,144 tokens |
| Architecture | nemotron_h — Mamba-2 + sparse MoE + attention |
MLX-LM reported an effective precision of 6.503 bits per weight.
Apple-silicon performance
This checkpoint was load-tested and generation-tested on the following machine:
| Hardware | Configuration |
|---|---|
| Host | Mac Studio |
| Chip | Apple M3 Ultra |
| CPU | 32 cores (24 performance + 8 efficiency) |
| Unified memory | 256 GB |
| Runtime | MLX-LM 0.31.3 / MLX 0.32.0 |
A warmed local test produced:
| Measurement | Result |
|---|---|
| Decode (median) | 138.38 tokens/s |
| Reported peak memory | 25.84 GB |
| Timed runs | 3 × 256 generated tokens |
| Warm-up | 32 generated tokens |
| Prompt | 36 tokens after chat templating |
The decode figure is the median of three greedy 256-token runs after a 32-token Metal-kernel warm-up. It is a practical local reference, not a controlled cross-platform benchmark. Prompt length, context growth, sampler settings, memory pressure, thermal state, and MLX/oMLX versions can materially change performance.
Quick start with MLX-LM
Install recent MLX-LM and Hugging Face tooling:
python -m pip install -U mlx-lm huggingface_hub
Run directly from the Hub:
mlx_lm.generate \
--model Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit \
--prompt "Explain why hybrid Mamba and MoE architectures are efficient." \
--max-tokens 512 \
--temp 1.0 \
--top-p 0.95
Reasoning mode is enabled by the upstream chat template by default. To disable it:
mlx_lm.generate \
--model Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit \
--chat-template-config '{"enable_thinking": false}' \
--prompt "Write a short hello-world program in Swift." \
--max-tokens 256
Python usage:
from mlx_lm import load, generate
model, tokenizer = load("Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit")
messages = [
{"role": "user", "content": "Explain sparse mixture-of-experts routing."}
]
prompt = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=False,
enable_thinking=False,
)
print(generate(model, tokenizer, prompt=prompt, max_tokens=512))
To download the repository first:
hf download Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit \
--local-dir ~/.omlx/models/Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit
Using it with oMLX
- Place the downloaded model at
~/.omlx/models/Vontra/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit. - Refresh the oMLX model registry.
- Load
NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bitand use the normal chat UI or OpenAI-compatible endpoint.
Example request:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OMLX_API_KEY" \
-d '{
"model": "NVIDIA-Nemotron-3.5-Lightning-30B-A3B-MLX-6bit",
"messages": [{"role": "user", "content": "Say hello from Nemotron on MLX."}],
"temperature": 1.0,
"top_p": 0.95,
"max_tokens": 128
}'
For long prompts, begin with a conservative context limit and increase it while watching memory pressure. The configured 256K context is a model capability, not a guarantee that every host can prefill that context within its available unified memory.
Architecture
Nemotron 3.5 Lightning is a hybrid sparse model designed for efficient agentic and reasoning workloads.
| Architecture detail | Upstream value |
|---|---|
| Total / active parameters | 30B / 3B |
| Layers | 52 |
| Routed / shared experts | 128 / 1 |
| Active routed experts | 6 |
| Attention heads / KV heads | 32 / 2 |
| Hidden size | 2,688 |
| Expert intermediate size | 1,856 |
| Vocabulary size | 131,072 |
| Configured context | 262,144 tokens |
The upstream release is intended for coding, tool use, reasoning, research, and customization. For NVIDIA's evaluations, deployment guidance, intended use, limitations, safety information, and full architecture discussion, see the original model card.
Conversion and validation notes
- Source weights: NVIDIA's BF16 checkpoint.
- Quantization group size: 64.
- Quantization mode: affine.
- The upstream
chat_template.jinjais preserved. - All 729 converted tensors and every indexed shard were checked locally.
- The model was loaded and exercised through end-to-end generation on Apple silicon.
- Quantization can reduce output quality relative to BF16; use a higher-precision variant when quality matters more than memory use.
This is a community conversion, not an official NVIDIA release. Validate quality and numerical behavior on your own representative workload before production use.
License and attribution
The upstream model is released under the OpenMDW License Agreement, version 1.1. A copy is included in this repository; review it before use or redistribution.
All model design, training, benchmark, and upstream documentation credit belongs to NVIDIA and the original contributors. The MLX conversion, Apple-silicon validation, and packaging are provided by Vontra.
- Downloads last month
- 182
6-bit