NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4

Description
NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4 is the quantized release of NVIDIA Nemotron 3.5 Super VL, a vision-language model for reasoning, coding, tool use, document understanding, and video understanding. It uses NVFP4 quantization to reduce memory requirements, with quantization-aware distillation from the BF16 model.
The model combines interleaved Mamba-2, Mixture-of-Experts (MoE), and attention layers with a C-RADIO vision encoder and a vision-language connector. It has 120B total parameters and 12B active parameters and supports context lengths up to 1M tokens. Multi-Token Prediction (MTP) enables native speculative decoding.
This model is ready for commercial or non-commercial use.
Model Summary
| |
|---|
| Total Parameters | 120B (12B active) |
| Architecture | Mamba-2–Transformer hybrid Mixture of Experts with a C-RADIO vision encoder |
| Precision | NVFP4 (mixed-precision quantized weights) |
| Context Length | Up to 1M tokens; deployment settings are listed below |
| Inputs / Outputs | Text, images, and video / text |
| Deployment | 1× DGX Spark, 1× H200, 2× H100, or 1× GB200 |
| Speculative Decoding | Native Multi-Token Prediction (MTP) |
| Reasoning Mode | Configurable through the chat template (enable_thinking=True/False) |
| Recommended Sampling | Text: temperature 1.0, top_p 0.95; vision: temperature 0.6, top_p 0.95 |
| Best For | Efficient deployment of text and vision-language agents |
| License | OpenMDW-1.1 |
Model Overview
Model Developer: NVIDIA Corporation
What is Nemotron?
NVIDIA Nemotron™ is a family of open models with open weights, training data, and recipes, delivering leading efficiency and accuracy for building specialized AI agents.
Quick Start
This vLLM configuration is intended for DGX Spark (GB10) only. It serves the model with one concurrent sequence and seven speculative tokens per draft using LiLiCorr.
Nemotron 3.5 Super VL has configurable reasoning levels: off, on (medium), and on. Selecting on (medium) will reduce the number of tokens generated compared to on, but may impact accuracy. You can learn about the reasoning budget here!
Use Docker with NVIDIA GPU support and the vllm/vllm-openai:nightly-3f1bcfd82bb2e93fcd364fc7a5491718453a77e2 or (vllm/vllm-openai:v0.32.0) image. If the model requires authentication, set HF_TOKEN in your shell before launching the container.
export MODEL=nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4
export DRAFT_MODEL=nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4-LiLiCorr
vllm serve $MODEL \
--served-model-name nemotron-3.5-super-vl \
--max-num-seqs 1 \
--trust-remote-code \
--gpu-memory-utilization 0.75 \
--max-num-batched-tokens 8192 \
--speculative_config.model $DRAFT_MODEL\
--speculative_config.num_speculative_tokens 7 \
--speculative_config.method dflash \
--mamba-backend flashinfer \
--mamba-ssm-cache-dtype float16 \
--enable-mamba-cache-stochastic-rounding \
--mamba-cache-philox-rounds 5 \
--enable-mamba-shared-prefix-checkpoint \
--video-pruning-rate 0.5 \
--media-io-kwargs '{"video": {"fps": 2, "num_frames": 256}}' \
--block-size 64 \
--prefix-match-unit 64 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--reasoning-parser nemotron_v3
Wait for the server to finish loading the model and compiling kernels, then check the endpoint:
curl --fail http://localhost:8000/v1/models
All vLLM and SGLang examples use port 8000 and the API model name nemotron-3.5-super-vl. See the API Client for text, image, video, and tool-calling examples.
License/Terms of Use
Governing Download Terms: Use of this model is governed by the OpenMDW License Agreement, version 1.1.
Benchmarks
We evaluated our model on the following benchmarks:
| Benchmark | Nemotron 3.5 Super VL BF16 | Nemotron 3.5 Super VL NVFP4 |
|---|
| GPQA-Diamond | 89.52 | 89.90 |
| HLE, text-only | 31.79 | 31.44 |
| MMLU-ProX | 76.91 | 73.76 |
| AA-Omniscience accuracy | 26.20 | 25.86 |
| AA-Omniscience hallucination rate | 30.0 | 27.7 |
| AA-Omniscience index | 4.03 | 5.3 |
| APEX shortlist | 88.36 | 89.36 |
| LiveCodeBench v6 | 88.22 | 87.41 |
| SciCode, subtask | 47.13 | 46.61 |
| AA-LCR v1.1 | 68.62 | 67.69 |
| GraphWalks | 89.71 | 90.34 |
| IFBench | 70.86 | 71.50 |
| LMArena v3 proxy | 52.67 | 51.93 |
| WMT24++ | 84.80 | 84.76 |
| tau2-bench retail | 69.24 | 69.30 |
| tau2-bench airline | 76.50 | 75.75 |
| tau2-bench telecom | 73.19 | 73.19 |
| tau3-bench banking | 18.88 | 17.78 |
| GDPval-AA v2 | 1211 | 1206 |
| BrowseComp | 78 | 77.5 |
| SWE-bench Verified | 71.10 | 71.07 |
|
The evaluations between the BF16 checkpoint and NVFP4 checkpoint are done with all configs, harnesses, and other non-model parameters held static to ensure fair comparison that isolates the checkpoint impact
We evaluated Nemotron 3.5 Super on a comprehensive suite of benchmarks spanning agentic capabilities, reasoning and knowledge, multimodal, conversational ability and instruction following, long-context understanding, and multilingual performance. All evaluation results for Nemotron 3.5 Super and baselines were collected via NeMo Gym. For reproducibility purposes, more details on the evaluation settings can be found in the NeMo Gym recipes folder and the corresponding reproducibility tutorial. The published recipes specify the benchmark-specific containers, prompts, inference parameters, parser configurations, and scoring settings used to produce the results.
There were a few benchmarks that were not yet onboarded in our open source tools, and for these we used either their official open source implementation or an internal scaffolding that we plan to open source in the future: BabyVision, CharXiv-RQ, MathVision, MMLongBench-Doc, OCR-Reasoning, OCRBench-v2, V*, Video-MME-v2.
Agentic Coding Benchmarks
Additional harness-level coding-agent results for SWE-Bench Pro and Terminal-Bench 2.1 are shown below.

Deployment Geography: Global
Use Case
This model is intended for developers deploying vision-language agents for coding, search, tool-assisted workflows, document question answering, and image and video understanding, on NVIDIA data center and DGX Spark systems.
Release Date
Hugging Face - 10/15/2026 via Hugging Face
Reference(s)
Model Architecture
- Architecture Type: Mamba-2–Transformer hybrid Mixture of Experts (MoE) with Multi-Token Prediction (MTP)
- Network Architecture: Nemotron Hybrid MoE with 512 routed experts per MoE layer, a C-RADIO vision encoder, and a vision-language connector
- Number of Model Parameters: 120B total / 12B active
Model Design
The model combines sparse expert computation, attention, and Mamba-2 layers to support long-context processing. The vision encoder and connector turn visual inputs into representations processed by the language backbone. A shared MTP head predicts future tokens recursively for speculative decoding.
The model supports up to 1M tokens of context. The prompt, visual inputs, conversation history, tool results, and generated response share this context window. Individual deployment recipes may use a smaller context window to accommodate the available GPU memory and concurrency.
Training Methodology
Stage 1: Foundation and Multi-Token Prediction
The language backbone is initialized from Nemotron 3 Super Base. A shared MTP head is trained for 100B tokens while the backbone remains frozen, followed by 1T tokens of distillation from Nemotron 3 Ultra Base.
Stage 2: Continued Pre-Training and Mid-Training
The model undergoes 100B tokens of Indic continued pre-training, a 35B-token extension to 1M context, 67B tokens of software-engineering mid-training at 256K context, and a final 9B-token long-context recovery stage. Software-engineering data includes repositories, issue–pull-request pairs, commit diffs, build and CI logs, and agent trajectories.
Stage 3: Vision-Language Training
A C-RADIO vision encoder and connector extend the language backbone to visual inputs, including images, document pages, and video frames.
Stage 4: Supervised Fine-Tuning
A two-stage supervised fine-tuning pipeline jointly trains the language and vision components on vision, reasoning, code, tools, chat, safety, and long-context data. Training uses packed sequences of up to 524,288 tokens.
Stage 5: Reinforcement Learning and Distillation
Reinforcement learning with verifiable rewards, reinforcement learning from human feedback, and specialized teacher training improve reasoning, agentic, chat, and vision capabilities. Multi-teacher on-policy distillation consolidates these capabilities into a single model.
Stage 6: MTP Boosting
The MTP head is further trained against the frozen post-trained backbone to improve speculative-decoding acceptance.
Stage 7: Quantization and Quantization-Aware Distillation
The model is quantized with NVIDIA Model Optimizer and refined through quantization-aware distillation using the supervised fine-tuning data blend. The vision encoder, connector, Mamba convolutions, and embeddings remain in BF16, and the MoE router remains in FP32. Inference uses W4A4 on Blackwell and W4A16 on non-Blackwell platforms, according to the serving configuration.
Input
- Input Type(s): Text, images, and video
- Input Format(s): Text strings, images, and sampled video frames
- Video: mp4, up to 2 minutes.
- Image: Red, Green, Blue (RGB) (jpeg, png)
- Input Parameters:
- Video: Three-Dimensional (3D)
- Image: Two-Dimensional (2D)
- Text: One-Dimensional (1D)
- Other Properties Related to Input: Maximum context length up to 1M tokens. Documents can be supplied as page images with accompanying text.
Output
- Output Type(s): Text
- Output Format: String
- Output Parameters: One-dimensional sequences
- Other Properties Related to Output: Input and output tokens share the configured context window.
Our AI models are designed and optimized to run on NVIDIA GPU-accelerated systems. By leveraging NVIDIA's hardware (e.g. GPU cores) and software frameworks (e.g., CUDA libraries), the model achieves faster training and inference times compared to CPU-only solutions.
Software Integration
- Runtime Engine(s): vLLM; SGLang; TensorRT-LLM
- Hardware:
- NVIDIA Blackwell
- NVIDIA Hopper
- Operating System(s): Linux
The integration of foundation and fine-tuned models into AI systems requires additional testing using use-case-specific data to ensure safe and effective deployment. Following the V-model methodology, iterative testing and validation at both unit and system levels are essential to mitigate risks, meet technical and functional requirements, and ensure compliance with safety and ethical standards before deployment.
Model Version(s)
Quick Start Guide
Choose your deployment
| Hardware | Runtime | Configuration |
|---|
| 1× DGX Spark | vLLM | Text, image; 1M-token context; MTP with 5 draft tokens |
| 2× H100 | vLLM | Text, image, and video; 1M-token context; MTP with 3 draft tokens |
| 1× H200 | vLLM | Text, image, and video; 1M-token context; MTP with 3 draft tokens |
| 1× GB200 | vLLM | Text, image, and video; 1M-token context; MTP with 5 draft tokens |
| 1× GB200, 2× H100 or 1× DGX Spark | SGLang | Text, image; 1M-token context; MTP with 5 draft steps |
| 1× GB200 | TensorRT-LLM | 1M-token context; MTP with 5 draft tokens |
NIM and Dynamo
For production workloads, leverage our best-in-class deployment solutions:
NVIDIA NIM packages the model with an optimized inference engine, validated configurations, and standard APIs for deployment in cloud and data center environments. Get started with the Nemotron 3.5 Super VL NIM here.
NVIDIA Dynamo is a distributed inference framework. It supports KV-cache-aware routing, KV cache management, and disaggregated serving. Get started with Nemotron 3.5 Super VL Dynamo recipes optimized for 7 HW SKUs across Hopper, Blackwell, and Rubin here.
Running on Local Hardware
For Local inference on DGX Spark, RTX Spark, and RTX Pro 6000 you can find details on running the model through the following libraries:
- llama.cpp available here
- Unsloth available here
Speculative Decoding
The serving examples enable the model's native MTP head. No separate drafter download is required for these vLLM and SGLang recipes leveraging MTP. In vLLM, num_speculative_tokens controls draft length; in SGLang, the MTP draft length uses --speculative-num-steps to config.
For DGX Spark, we also provide a LiLiCorr speculative drafter, which accelerates decoding by drafting multiple future tokens in parallel and using a lightweight correlation head to select compatible candidates across adjacent positions. Nemotron Super 3.5 VL verifies the proposed block, allowing generation to advance by multiple accepted tokens per verification step while preserving the target model's output distribution with correct speculative verification. It is recommended to use LiLiCorr for DGX Spark deployments in all scenarios.
Performance depends on hardware, request length, and concurrency. To compare with standard decoding, remove the speculative configuration while keeping the model, workload, sampling parameters, and other server settings the same.
vLLM
Use vllm/vllm-openai:nightly-3f1bcfd82bb2e93fcd364fc7a5491718453a77e2 for these commands (or vllm/vllm-openai:v0.32.0).
2× H100 (up to 1M Context Length)
Use this command if you need to serve the model with up to 1M context length.
vllm serve $MODEL \
--served-model-name nemotron-3.5-super-vl \
--tensor-parallel-size 2 \
--max-num-seqs 128 \
--trust-remote-code \
--gpu-memory-utilization 0.89 \
--max-num-batched-tokens 16384 \
--block-size 64 \
--prefix-match-unit 64 \
--compilation_config.max_cudagraph_capture_size 256 \
--mamba-backend flashinfer \
--mamba-ssm-cache-dtype float16 \
--enable-mamba-cache-stochastic-rounding \
--mamba-cache-philox-rounds 5 \
--enable-mamba-shared-prefix-checkpoint \
--mamba-cache-mode align \
--speculative-config.method mtp \
--speculative-config.num_speculative_tokens 3 \
--video-pruning-rate 0.5 \
--media-io-kwargs '{"video": {"fps": 2, "num_frames": 256}}' \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--reasoning-parser nemotron_v3
For one H200, use the same command with --tensor-parallel-size 1.
1× GB200 (up to 1M Context Length)
Use this command if you need to serve the model with up to 1M context length.
vllm serve $MODEL \
--served-model-name nemotron-3.5-super-vl \
--trust-remote-code \
--max-num-seqs 512 \
--enable-prefix-caching \
--max-num-batched-tokens 32768 \
--prefix-match-unit 16 \
--enable-mamba-shared-prefix-checkpoint \
--async-scheduling \
--kernel-config '{"linear_backend_per_quant":{"fp8_w8a8":"torch"}}' \
--compilation-config '{"pass_config":{"fuse_attn_quant":true},"use_inductor_graph_partition":true,"cudagraph_mode":"FULL_AND_PIECEWISE"}' \
--mamba-backend flashinfer \
--mamba-ssm-cache-dtype float16 \
--enable-mamba-cache-stochastic-rounding \
--mamba-cache-philox-rounds 5 \
--mamba-cache-mode align \
--video-pruning-rate 0.5 \
--media-io-kwargs '{"video": {"fps": 2, "num_frames": 256}}' \
--enable-auto-tool-choice \
--speculative_config.method mtp \
--speculative_config.num_speculative_tokens 5 \
--tool-call-parser qwen3_coder \
--reasoning-parser nemotron_v3
For the multimodal examples, each request can contain one image and one video. The video configuration samples up to 256 frames at 2 FPS with a pruning rate of 0.5. For 1080p videos, use 1 FPS and up to 128 frames; 2 FPS and 256 frames can be used for lower-resolution video such as 720p. Start with short MP4 clips of one to two minutes.
SGLang
Use Docker with NVIDIA GPU support and the lmsysorg/sglang:nemotron3-5-super image.
export MODEL=nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4
export DRAFT_MODEL=nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4-LiLiCorr
1× GB200
sglang serve \
--model-path $MODEL \
--host 0.0.0.0 \
--port 8000 \
--trust-remote-code \
--kv-cache-dtype fp8_e4m3 \
--tp-size 1 \
--max-running-requests 512 \
--attention-backend trtllm_mha \
--mamba-backend flashinfer \
--mamba-ssm-dtype bfloat16 \
--enable-mamba-cache-stochastic-rounding \
--mamba-cache-philox-rounds 5 \
--mamba-radix-cache-strategy extra_buffer \
--reasoning-parser nemotron_3 \
--tool-call-parser qwen3_coder \
--speculative-algorithm EAGLE \
--speculative-num-steps 5 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 6
2× H100
sglang serve \
--model-path $MODEL \
--host 0.0.0.0 \
--port 8000 \
--trust-remote-code \
--kv-cache-dtype fp8_e4m3 \
--tp-size 2 \
--max-running-requests 512 \
--attention-backend flashinfer \
--mamba-backend flashinfer \
--mamba-ssm-dtype bfloat16 \
--enable-mamba-cache-stochastic-rounding \
--mamba-cache-philox-rounds 5 \
--mamba-radix-cache-strategy extra_buffer \
--reasoning-parser nemotron_3 \
--tool-call-parser qwen3_coder \
--speculative-algorithm EAGLE \
--speculative-num-steps 5 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 6
1× DGX Spark(use LiLiCorr speculative drafter)
sglang serve \
--model-path $MODEL \
--host 0.0.0.0 \
--port 8000 \
--trust-remote-code \
--kv-cache-dtype fp8_e4m3 \
--tp-size 1 \
--max-running-requests 1 \
--attention-backend flashinfer \
--mamba-backend flashinfer \
--mamba-ssm-dtype bfloat16 \
--enable-mamba-cache-stochastic-rounding \
--mamba-cache-philox-rounds 5 \
--mamba-radix-cache-strategy extra_buffer \
--reasoning-parser nemotron_3 \
--tool-call-parser qwen3_coder \
--speculative-algorithm DFLASH \
--speculative-draft-model-path $DRAFT_MODEL
TensorRT-LLM
The following configurations use TensorRT-LLM 1.3.0rc28, built from commit 55f7eca861613bd60e1ac34d5916f091cd89d558 with Python 3.12 and the Mamba cache patch.
Download the NVFP4 checkpoint locally:
hf download "$MODEL_CKPT" --local-dir ./models/super-vl-nvfp4
1× GB200
Save the following as super-vl-gb200.yaml:
tensor_parallel_size: 1
moe_expert_parallel_size: 1
trust_remote_code: true
enable_chunked_prefill: true
disable_overlap_scheduler: false
max_batch_size: 16
max_num_tokens: 8192
max_seq_len: 1048576
attn_backend: TRTLLM
moe_config:
backend: TRTLLM
kv_cache_config:
dtype: fp8
tokens_per_block: 32
mamba_ssm_cache_dtype: float16
mamba_ssm_stochastic_rounding: false
free_gpu_memory_fraction: 0.85
enable_block_reuse: true
mamba_state_config:
periodic_snapshot_interval: 0
additional_snapshot_offsets_from_start: [50016]
additional_snapshot_offsets_from_end: [0]
enable_branch_snapshot: true
cuda_graph_config:
enable_padding: true
batch_sizes: [1, 2, 4, 8, 12, 16]
speculative_config:
decoding_type: MTP
max_draft_len: 5
guided_decoding_backend: xgrammar
trtllm-serve ./models/super-vl-nvfp4 \
--config super-vl-gb200.yaml \
--served_model_name nemotron-3.5-super-vl \
--host 0.0.0.0 \
--port 8000 \
--tool_parser qwen3_coder \
--reasoning_parser nemotron-v3
max_seq_len sets the context limit; max_num_tokens controls the token batch size. For TensorRT-LLM clients, use the model identifier returned by /v1/models.
1× DGX Spark
Save the following as super-vl-gb200.yaml:
trust_remote_code: true
dtype: bfloat16
tensor_parallel_size: 1
moe_expert_parallel_size: 1
max_batch_size: 2
max_num_tokens: 4096
max_seq_len: 131072
enable_chunked_prefill: true
disable_overlap_scheduler: false
cuda_graph_config: null
attn_backend: TRTLLM
kv_cache_config:
dtype: fp8
free_gpu_memory_fraction: 0.9
max_gpu_total_bytes: 5368709120
host_cache_size: 0
mamba_ssm_cache_dtype: float16
mamba_ssm_stochastic_rounding: false
enable_block_reuse: true
use_kv_cache_manager_v2: true
mamba_state_config:
enable_branch_snapshot: true
nvfp4_gemm_config:
allowed_backends: [cutlass, cublaslt, cuda_core]
moe_config:
backend: CUTEDSL
speculative_config:
decoding_type: DFlash
speculative_model: ./models/super-vl-lilicorr
max_draft_len: 7
attention_backend: TRTLLM
context_recompute_tail: 0
guided_decoding_backend: xgrammar
trtllm-serve ./models/super-vl-nvfp4 \
--config super-vl-spark-lilicorr.yaml \
--served_model_name nemotron-3.5-super-vl \
--host 0.0.0.0 \
--port 8000 \
--reasoning_parser nemotron-v3
API Client
Install the OpenAI-compatible client:
pip install openai
Text and reasoning
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
model = "nemotron-3.5-super-vl"
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "Explain why binary search takes logarithmic time."}],
temperature=1.0,
top_p=0.95,
max_tokens=16384,
extra_body={"chat_template_kwargs": {"enable_thinking": True}},
)
choice = response.choices[0]
if choice.finish_reason == "length":
raise RuntimeError("The response reached max_tokens; increase the output budget.")
print(choice.message.content)
Set enable_thinking to False to disable reasoning. For medium reasoning effort, use {"enable_thinking": True, "medium_effort": True}. Reasoning tokens and the final answer share the max_tokens budget.
Images
Use a multimodal server configuration. The example below sends a local image as a base64 data URL.
import base64
from pathlib import Path
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
image_bytes = Path("image.png").read_bytes()
image_url = "data:image/png;base64," + base64.b64encode(image_bytes).decode()
response = client.chat.completions.create(
model="nemotron-3.5-super-vl",
messages=[{"role": "user", "content": [
{"type": "text", "text": "Describe the image and any visible text."},
{"type": "image_url", "image_url": {"url": image_url}},
]}],
temperature=1.0,
top_p=0.95,
max_tokens=16384,
)
if response.choices[0].finish_reason == "length":
raise RuntimeError("The response reached max_tokens; increase the output budget.")
print(response.choices[0].message.content)
Video with vLLM
Use a multimodal vLLM configuration with the video sampling settings above.
import base64
from pathlib import Path
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
video_bytes = Path("video.mp4").read_bytes()
video_url = "data:video/mp4;base64," + base64.b64encode(video_bytes).decode()
response = client.chat.completions.create(
model="nemotron-3.5-super-vl",
messages=[{"role": "user", "content": [
{"type": "text", "text": "Summarize the events in this video in order."},
{"type": "video_url", "video_url": {"url": video_url}},
]}],
temperature=1.0,
top_p=0.95,
max_tokens=16384,
)
if response.choices[0].finish_reason == "length":
raise RuntimeError("The response reached max_tokens; increase the output budget.")
print(response.choices[0].message.content)
Tool calling
The model requests a tool call; the application executes it and returns the result. This complete example uses a local inventory lookup.
import json
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
model = "nemotron-3.5-super-vl"
inventory = {"keyboard": 12, "monitor": 5}
tools = [{"type": "function", "function": {
"name": "get_inventory",
"description": "Return the inventory count for a product.",
"parameters": {
"type": "object",
"properties": {"product": {"type": "string", "enum": ["keyboard", "monitor"]}},
"required": ["product"],
"additionalProperties": False,
},
}}]
messages = [{"role": "user", "content": "How many keyboards are in stock?"}]
def complete(history, tool_choice="auto"):
response = client.chat.completions.create(
model=model,
messages=history,
tools=tools,
tool_choice=tool_choice,
temperature=1.0,
top_p=0.95,
max_tokens=16384,
extra_body={"chat_template_kwargs": {"enable_thinking": True}},
)
choice = response.choices[0]
if choice.finish_reason == "length":
raise RuntimeError("The response was truncated; increase max_tokens.")
return choice.message
message = complete(messages)
messages.append(message.model_dump(exclude_none=True))
if not message.tool_calls:
print(message.content)
else:
for call in message.tool_calls:
arguments = json.loads(call.function.arguments)
if (call.function.name != "get_inventory"
or not isinstance(arguments, dict)
or set(arguments) != {"product"}
or not isinstance(arguments["product"], str)
or arguments["product"] not in inventory):
raise ValueError("Invalid inventory tool call")
product = arguments["product"]
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps({"product": product, "count": inventory[product]}),
})
print(complete(messages, tool_choice="none").content)
Training, Testing, and Evaluation Datasets
Training
Data Modality: Text, images, and video
Foundation Training Data Size: More than 20 trillion tokens
Image Training Data Size: 1 Million to 1 Billion Images
Text Training Data Size: More than 10 Trillion Tokens
Video Training Data Size: 10,000 to 1 Million Hours
Foundation Data Collection Period: 2013 to December 2025
Data Collection Method: Hybrid: automated, manually-collected, and synthetic
Labeling Method: Hybrid: automated, manually-labeled, and synthetic
The foundation corpus contains curated and synthetic text covering English, 19 other spoken languages, and 43 programming languages. Sources include webpages, dialogue, articles, code, and other written materials across math, science, legal, finance, and general knowledge domains.
The post-training corpus includes reasoning, coding, tool use, instruction following, structured outputs, chat, safety, and long-context tasks, together with image and video understanding. Synthetic trajectories are filtered for structural correctness, repetition, and task validity.
For more information about the datasets used to train this model, please see the Public Summary of Training Content
Base Pre-Training Corpus (Nemotron 3 Foundation)
The foundation of the model is trained on the Nemotron 3 corpus, comprising the following datasets from the Nemotron Pretraining Datasets collection:
| Dataset Collection | Token Counts | Description |
|---|
| Nemotron-CC-v2 & v2.1 | 9.1T | A massive collection of English web data filtered from Common Crawl, including 2.5T+ tokens of new organic, translated, and synthetically rephrased content. |
| Nemotron-CC-Code-v1 | 427.9B | High-quality code tokens extracted from Common Crawl using the Lynx + LLM pipeline to preserve structure and equations. |
| Nemotron-Pretraining-Code-v1 & v2 & v3 | 1.7T | Curated GitHub code references with multi-stage filtering, deduplication, and large-scale synthetic code data. |
| Nemotron-CC-Math-v1 | 133.3B | High-quality math pre-training dataset preserving LaTeX formatting and mathematical structures. |
| Nemotron-Pretraining-Specialized-v1 & v1.1 & v1.2 & Nemotron-Pretraining-SFT-v1 | 660.0B | Synthetic datasets targeting specialized domains such as STEM reasoning and scientific coding. |
| Nemotron-Pretraining-Legal-v1 | 4.3B | Synthetic datasets targeting the legal domain. |
Public Datasets
Crawled and Scraped from Online Sources by NVIDIA
The English Common Crawl data was downloaded from the Common Crawl Foundation (see their FAQ for details on their crawling) and includes the snapshots CC-MAIN-2013-20 through CC-MAIN-2025-13. The data was subsequently deduplicated and filtered in various ways used in the Nemotron-CC data pipeline. Additionally, we extracted data for fifteen languages from the following three Common Crawl snapshots: CC-MAIN-2024-51, CC-MAIN-2025-08, CC-MAIN-2025-18. The fifteen languages included were Arabic, Chinese, Danish, Dutch, French, German, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, Swedish, and Thai. As we did not have reliable multilingual model-based quality classifiers available, we applied just heuristic filtering instead—similar to what we did for lower quality English data in the Nemotron-CC pipeline, but selectively removing some filters for some languages that did not work well. Deduplication was done in the same way as for Nemotron-CC.
The GitHub Crawl was collected using the GitHub REST API and the Amazon S3 API. Each crawl was operated in accordance with the rate limits set by its respective source, either GitHub or S3. We collect raw source code and subsequently remove any having a license which does not exist in our permissive-license set.
| Dataset | Modality | Dataset Size | Collection Period | Collecting Organisation |
|---|
| English Common Crawl | Text | 3.36T | 4/8/2025 | NVIDIA Advanced Deep Learning Research |
| English Common Crawl 1.1 | Text | Not disclosed | 10/2/2025 | NVIDIA Advanced Deep Learning Research |
| Multilingual Common Crawl | Text | 812.7B | 5/1/2025 | NVIDIA Advanced Deep Learning Research |
| GitHub Crawl | Text | 747.4B | 4/29/2025 | NVIDIA Advanced Deep Learning Research |
| GitHub Crawl 1.1 | Text | 172.7B | 9/30/2025 | NVIDIA Advanced Deep Learning Research |
| Sangraha | Text | 109,263,115 indexed source sequences: 77,231,480 verified and 32,031,635 unverified | Undisclosed | NVIDIA Advanced Deep Learning Research |
| LITA Chunked Video Labels, Custom No-Thinking Dense Captions | Text (video labels) | 151,349 records | Undisclosed | NVIDIA Advanced Deep Learning Research |
| LITA Chunked Video Labels, Cleaned v2 | Text (video labels) | 150,434 records | Undisclosed | NVIDIA Advanced Deep Learning Research |
| Single-Page Document Labels, Qwen3.5 v2 | Text and images | 50,930 records | Undisclosed | NVIDIA Advanced Deep Learning Research |
|
Private Non-publicly Accessible Datasets of Third Parties
| Dataset | Model(s) used |
|---|
| Global Regulation | Unknown |
| TAUS Translation Memory | Unknown |
| Scale HLE | Unknown |
| HackerRank Coding | Unknown |
| RL data for Search | Gemini 3; GPT-5 |
| Mercor SWE-AgentsV1 | Undisclosed |
| KeenSight Batch 1, Relabeled Subset | Qwen3.5-122B-A10B |
| KeenSight Batch 1, Remaining Subset | Qwen3.5-122B-A10B |
| Camio Multilingual OCR and Document Layout | Undisclosed |
| Chinese Visual Question Answering, Relabeled Subset | Qwen3.5-122B-A10B |
| Camio Chinese OCR, Cleaned Variant | Qwen3.5-122B-A10B |
| Camio English OCR, Cleaned Variant | Qwen3.5-122B-A10B |
| KeenSight Batch 2, Remaining Subset | Qwen3.5-122B-A10B |
| KeenSight Batch 1, Safety-Filtered Trace Variant | Qwen3.5-122B-A10B |
| Chinese Visual Question Answering, Safety-Filtered Trace Variant | Qwen3.5-122B-A10B |
| Camio Chinese Question Answering, Verified-Correct Subset | Qwen3.5 |
| KeenSight Chinese OCR, Filtered Subset | DeepSeek-OCR |
| Camio Synthetic Trading-Graph Question Answering | Undisclosed |
| Camio Synthetic Menu and Receipt Question Answering | Qwen3.5-122B-A10B |
| Camio Chinese OCR, Formatted Variant | Qwen3.5-122B-A10B |
| Camio Synthetic Time-Series Question Answering | Undisclosed |
| Camio English OCR, Formatted Variant | Qwen3.5-122B-A10B |
| Lean Formal Proofs — RL | Undisclosed |
| Document-Grounded Finance Reasoning, Patch Tasks — RL | Undisclosed |
| Math CoT — SFT | Kimi K3 |
| Chat — SFT | Undisclosed |
| Chat, Reasoning Off — SFT | Undisclosed |
| Conversational Tool-Use Simulation — RL | Undisclosed |
| Math CoT, Low Variant — SFT | Kimi K3 |
|
Private Non-publicly Accessible Datasets by NVIDIA
| Dataset | Model(s) used |
|---|
| Simple Minesweeper | Undisclosed |
| Simple Sudoku | Undisclosed |
| Multitool Typewriter Hard | Undisclosed |
| Machine Translation of News Commentary and TAUS Translation Memory | Undisclosed |
| Machine Translation of STEM - | Qwen2.5-14B-Instruct |
| Competitive Coding RL data from Nemotron Cascade | Undisclosed |
| Long context RL | Undisclosed |
| Single-step SWE RL for patch generation | Undisclosed |
| OpenHands SWE | Undisclosed |
NVIDIA-Sourced Synthetic Datasets (Pre-Training)
NVIDIA-Sourced Synthetic Datasets (Post-Training)
| Dataset | Modality | Dataset Size | Seed Dataset | Model(s) used for generation |
|---|
| Synthetic Single-Step Tool Use — RL | Text | Approximately 1,433,203 samples | Handwritten prompts; no external seed data | DeepSeek-V3.2; DeepSeek-R1-0528; Qwen3-235B-A22B-Thinking-2507; Qwen3-32B |
| Synthetic Sparse Tables with Mixed Prompts | Text and images | 100,000 records | Generated in-house; no external seed data | None; generated without an SDG model |
| Synthetic Single-Step Tool Use — RL | Text | Approximately 1,433,203 samples | Handwritten prompts; no external seed data | DeepSeek-V3.2; DeepSeek-R1-0528; Qwen3-235B-A22B-Thinking-2507; Qwen3-32B |
| Synthetic Sparse Tables with Mixed Prompts | Text and images | 100,000 records | Generated in-house; no external seed data | None; generated without an SDG model |
| Synthetic Competitive MATH Proofs from DeepSeek-V4-Pro | Text | Undisclosed | [AMC 8 Problems and Solutions, AMC 10 Problems and Solution, and AIME Problems and Solutions] | [deepseek-ai/DeepSeek-V4-Pro] |
| Synthetic Hermes Agent Reasoning Traces | Text | Undisclosed | [lambda/hermes-agent-reasoning-traces] | [hermes-agent-generator] |
| Synthetic Competitive Coding from DeepSeek-V4-Pro | Text | Undisclosed | [NVCompetitiveCodingV1] | [deepseek-ai/DeepSeek-V4-Pro] |
| Synthetic Competitive Science Reasoning from DeepSeek-V4-Pro | Text | Undisclosed | [AMC 8 Problems and Solutions, AMC 10 Problems and Solution, and AIME Problems and Solutions]; [EssentialAI/essential-web-v1.0]; [cdquestions.com]; [Pile-FreeLaw]; [Vedantu]; [askfilo]; [doubtnut]; [ICHO-IPH0 Dataset]; [LIMO dataset (Less is More for Reasoning)]; [AAPT]; [ChemData 700K]; [oMeBench]; [Flavor Analysis and Recognition Transformer]; [ChemCoTBench]; [Llama Nemotron Dataset] |
Language Distribution in Post-Training
For our post-training recipe, we focused on the following languages in addition to English: French, German, Italian, Japanese, Spanish, and Chinese. Those languages were represented in the form of multilingual reasoning and translation tasks.
Additional Training Data
| Data | Composition and Purpose |
|---|
| Indic continued pre-training | 100B tokens: 10B selected Indic tokens and 90B tokens from the preceding blend. |
| Software-engineering mid-training | 67B tokens: whole repositories (20%), issue–pull-request pairs (41%), commit diffs (3%), build and CI logs (1%), agent traces (10%), pre-training replay (20%), and long-context data (5%). Sources are decontaminated against SWE-bench and Terminal-Bench repositories. |
| Long-context pre-training | A 35B-token extension to 1M context, followed by a 9B-token long-context recovery stage. |
| Vision-language data | Image and video data from the Nemotron 3 Nano Omni training corpus, including visual question answering, charts, tables, OCR, multi-page documents, visual grounding, and video understanding. |
| Post-Training Data | Composition and Purpose |
|---|
| Additional synthetic vision data | Chart understanding, grounded perception, multimodal reasoning, and visual tool-use trajectories, including data generated with Qwen3.5 and Kimi models. |
| Reasoning trajectories | Mathematics and STEM responses generated with Kimi K3; mathematical proofs generated with DeepSeek V4 Pro; competitive-programming trajectories generated with GLM-5.2. |
| Chat and safety | Refreshed chat responses from Qwen, Kimi, and Gemma models, with additional safety data. |
| Long-context supervised data | 512K-context data, synthetic graph reasoning and transduction tasks, long-horizon search and coding trajectories, and documents containing up to hundreds of pages. |
| Long-document translation | Chunked translations of PG19 and FinePDFs-Edu documents generated with DeepSeek V4 Flash. |
Testing Datasets
Data Collection Method: Hybrid: automated, manually-collected, and synthetic
Labeling Method: Hybrid: automated, manually-labeled, and synthetic
Properties: Standard benchmarks and task-specific test suites covering reasoning, coding, tool use, instruction following, long context, and visual understanding.
Evaluation Datasets
Data Collection Method: Hybrid: automated, manually-collected, and synthetic
Labeling Method: Hybrid: automated, manually-labeled, and synthetic
Properties: Standard benchmarks and task-specific test suites covering reasoning, coding, tool use, instruction following, long context, and visual understanding.
Inference
The deployment examples above provide configurations for NVIDIA Hopper and Blackwell systems. Choose the precision, context length, and concurrency appropriate for the application and available memory.
Ethical Considerations
NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse.
We advise against circumvention of any provided safety guardrails contained in the Model without a substantially similar guardrail appropriate for your use case. For more details: Safety and Explainability subcards. For more detailed information on ethical considerations for this model, please see the Model Card++ Bias, and Privacy subcards.
Please report model quality, risk, security vulnerabilities or NVIDIA AI Concerns here.