| 总参数 | 310亿(Mamba2-Transformer混合MoE) |
| 激活参数 | 每token约30亿 |
| 最大上下文 | 256k tokens |
| 输入模态 | 视频、音频、图像、文本 |
| 输出模态 | 文本 |
| 推理模式 | 默认开启;可通过enable_thinking切换 |
| 最适场景 | 视频+语音分析、文档智能(OCR/图表/长文档)、GUI/智能体工作流、语音识别(ASR) |
| 最低GPU要求(BF16) | 1× H100 80GB(单GPU);推荐1× B200 / 1× H200 |
| 最低GPU要求(FP8) | 1× L40S 48GB;推荐1× RTX Pro 6000 / 1× B200 |
| 最低GPU要求(NVFP4) | 1× RTX 5090 32GB;同时支持1× DGX Spark / 1× Jetson Thor |
| 精度版本 | BF16(62 GB)· FP8(33 GB)· NVFP4(21 GB) |
| 模式 | temperature | top_p | top_k | max_tokens | reasoning_budget | grace_period |
|---|---|---|---|---|---|---|
| 思考模式 | 0.6 | 0.95 | — | 20480 | 16384 | 1024 |
| 指令模式 | 0.2 | — | 1 | 1024 | — | — |
NVIDIA Nemotron 3 Nano Omni是一款多模态大型语言模型,它将视频、音频、图像和文本理解能力融为一体,以支持企业级问答、摘要、转录和文档智能工作流。该模型扩展了Nemotron Nano系列,集成了视频+语音理解、图形用户界面(GUI)、光学字符识别(OCR)和语音转录功能,能够对丰富的企业内容(如会议录制、媒体娱乐资产、培训视频和复杂业务文档)进行端到端处理。NVIDIA Nemotron 3 Nano Omni由NVIDIA开发,是Nemotron模型家族的一部分。
本模型可用于商业用途。
本模型在Qwen3-VL-30B-A3B-Instruct、Qwen3.5-122B-A10B、Qwen3.5-397B-A17B、Qwen2.5-VL-72B-Instruct和gpt-oss-120b的基础上进行了改进。欲了解更多信息,请参见下文的训练数据集部分。
管辖条款:本模型的使用受《NVIDIA 开放模型协议》管辖
全球
本模型专为需要多模态理解能力的企业客户设计。预期用户包括:
Build.Nvidia.com 2026年4月28日,通过URL
Hugging Face 2026年4月28日,通过:
NGC 2026年4月28日,通过URL
架构类型: Mamba2-Transformer 混合专家模型(MoE)
网络架构:
模型参数数量: 3.1 x 10^10(31B A3B)
输入类型: 视频、音频、图像、文本
输入格式:
输入参数:
其他与输入相关的属性:
输出类型: 文本
输出格式:
输出参数:
其他与输出相关的属性:
我们的 AI 模型旨在和/或优化为在 NVIDIA GPU 加速系统上运行。通过利用 NVIDIA 的硬件(例如 GPU 核心)和软件框架(例如 CUDA 库),与仅使用 CPU 的解决方案相比,该模型实现了更快的训练和推理时间。
运行时引擎:
支持的硬件微架构兼容性:
首选/支持的操作系统:
推理运行时:
将基础模型和微调模型集成到 AI 系统中,需要使用特定用例的数据进行额外测试,以确保安全有效的部署。遵循 V 模型方法论,在单元和系统层面进行迭代测试和验证,对于在部署前降低风险、满足技术和功能要求以及确保符合安全和道德标准至关重要。
此 AI 模型可作为应用程序编程接口(API)调用嵌入到上述软件环境中。
Nemotron-3-Nano-Omni-30B-A3B-Reasoning
| 精度 | 技术名称 | HuggingFace 链接 |
|---|---|---|
| BF16 | Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16 | https://huggingface.co/nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16 |
| FP8 | Nemotron-3-Nano-Omni-30B-A3B-Reasoning-FP8 | https://huggingface.co/nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-FP8 |
| NVFP4 | Nemotron-3-Nano-Omni-30B-A3B-Reasoning-NVFP4 | https://huggingface.co/nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-NVFP4 |
pip install -U "huggingface_hub[hf_xet]"
# Log in once; the token is cached at ~/.cache/huggingface/token
hf auth login
# Sanity check: should print your username and orgs
hf auth whoami所需版本: 需要 vLLM 0.20.0。这意味着可以使用以下容器之一:
- CUDA 13.0: 'vllm/vllm-openai:v0.20.0'
- CUDA 12.9: 'vllm/vllm-openai:v0.20.0-cu129'
docker pull vllm/vllm-openai:v0.20.0音频支持: 在 vLLM 容器内,运行
vllm serve之前,如果要使用任何音频(包括传递use_audio_in_video: true):python3 -m pip install "vllm[audio]"
# vllm serve nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16 \
# vllm serve nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-FP8 \
vllm serve nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-NVFP4 \
--host 0.0.0.0 \
--max-model-len 131072 \
--tensor-parallel-size 1 \
--trust-remote-code \
--video-pruning-rate 0.5 \
--max-num-seqs 384 \
--allowed-local-media-path / \
--media-io-kwargs '{"video": {"fps": 2, "num_frames": 256}}' \
--reasoning-parser nemotron_v3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--kv-cache-dtype fp8 # Omit this for BF16高效视频采样:video-pruning-rate=0.5 可减少 50% 的冗余视频 tokens;将视频预填充 VRAM/TTFT 减少一半。
RTX Pro: 由于当前 FlashInfer 与 RTX Pro 存在兼容性问题,请添加参数:
--moe-backend triton
关于未涵盖的内容(如 API 示例、推理模式、视频调优),请遵循通用说明。
使用上游多架构 vLLM v0.20.0 容器镜像。Docker 会自动拉取 arm64 版本。
docker pull vllm/vllm-openai:v0.20.0WEIGHTS=/path/to/nemotron-3-nano-omni-weights
# The image does not include audio packages so we need to install them with "pip install vllm[audio]" as done in the command below
docker run --rm -it \
--gpus all \
--ipc=host -p 8000:8000 \
--shm-size=16g \
--name vllm-nemotron-omni \
-v "${WEIGHTS}:/model:ro" \
--entrypoint /bin/bash \
vllm/vllm-openai:v0.20.0 -c \
"pip install vllm[audio] && vllm serve /model \
--served-model-name=nemotron_3_nano_omni \
--max-num-seqs 8 \
--max-model-len 131072 \
--port 8000 \
--trust-remote-code \
--gpu-memory-utilization 0.8 \
--limit-mm-per-prompt '{\"video\": 1, \"image\": 1, \"audio\": 1}' \
--media-io-kwargs '{\"video\": {\"fps\": 2, \"num_frames\": 256}}' \
--allowed-local-media-path=/ \
--enable-prefix-caching \
--max-num-batched-tokens 32768 \
--reasoning-parser nemotron_v3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder"在另一个终端中,验证服务器是否已准备就绪:
curl -sS http://localhost:8000/v1/models | python3 -m json.tool| 标志 | 用途 | Spark 说明 |
|---|---|---|
--gpus all | 选择 GPU | Spark 配备一张 GB10 GPU;all 等同于 device=0 |
--max-model-len | 最大上下文窗口 | 初始设为 131072;若遇到内存不足(OOM),可减小该值(详见下文内存调优) |
Spark 采用统一 LPDDR5X 内存(约 128 GB,CPU 与 GPU 共享),而非独立的系统内存与显存池。以下是两个调优手段,按影响程度排序:
--gpu-memory-utilization:从 0.85 降至 0.70,可释放约 19 GB 内存回操作系统,并重新启用权重预取。代价:KV 缓存预算减小。--max-model-len:减少 KV 缓存分配(例如,在 --max-num-seqs=1 时,上下文窗口减半,KV 缓存也随之减半)。
组合覆盖设置: --gpu-memory-utilization=0.70 \
--max-model-len=32768 \该模型也可通过 TensorRT-LLM 进行部署,相关说明请参见此处。
该模型还可在 NVIDIA Jetson Thor 上通过 TensorRT Edge-LLM 进行部署,详情请参见 Jetson AI Lab 模型页面 和 TensorRT Edge-LLM 快速入门指南。
SGLang 支持该模型的 BF16 变体,并提供以下镜像:
lmsysorg/sglang:dev-cu13-nemotronh-nano-omni-reasoning-v3lmsysorg/sglang:dev-nemotronh-nano-omni-reasoning-v3必须先安装 librosa:
pip install librosa --break-system-packages
启动服务:
sglang serve --model-path nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16 --trust-remote-code
[!NOTE] 即将支持 NVFP4 和 FP8。
有关 API 示例、推理模式、视频调优等未在此处涵盖的内容,请遵循通用说明。
使用上述链接的上游多架构 CUDA 13.0 Docker 镜像。Docker 会自动拉取 arm64 变体。
docker pull lmsysorg/sglang:dev-cu13-nemotronh-nano-omni-reasoning-v3WEIGHTS=/path/to/nemotron-3-nano-omni-weights
# The image does not include audio packages so we need to install them with "pip install librosa" as done in the command below
docker run --gpus all -it --rm \
-p 30000:30000 \
-v "${WEIGHTS}:/model:ro" \
--shm-size 16g \
lmsysorg/sglang:dev-cu13-nemotronh-nano-omni-reasoning-v3 \
bash -c "pip install librosa && python3 -m sglang.launch_server --model-path /model \
--host 0.0.0.0 \
--port 30000 \
--trust-remote-code \
--mem-fraction-static 0.8 \
--max-running-requests 8 \
--tool-call-parser qwen3_coder \
--reasoning-parser nemotron_3"在另一个终端中,验证服务器是否准备就绪:
curl -sS http://localhost:30000/v1/models | python3 -m json.tool| 标志 | 用途 | Spark 说明 |
|---|---|---|
--gpus all | 选择 GPU | Spark 配备一张 GB10 GPU;all 等同于 device=0 |
--context-length | 最大上下文窗口 | 从默认值开始;如果遇到 OOM(内存不足),请减小该值(参见下文的内存调优) |
Spark 使用统一的 LPDDR5X 内存(约 128 GB,在 CPU 和 GPU 之间共享),而非独立的系统内存 + 显存池。以下是两个调优手段,按影响程度排序:
--mem-fraction-static,从 0.80 降至 0.70,可释放约 13 GB 内存返回给操作系统,并重新启用权重预取。代价:KV 缓存预算减小。--context-length,以减少 KV 缓存分配(例如,在 --max-running-requests=1 时,将上下文窗口减半,KV 缓存也会减半)。
组合覆盖配置: --mem-fraction-static=0.70 \
--context-length=32768 \from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="")
MODEL = "nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-NVFP4"图片示例
import base64
def image_to_data_url(path: str) -> str:
with open(path, "rb") as f:
b64 = base64.b64encode(f.read()).decode("utf-8")
return f"data:image/jpeg;base64,{b64}"
image_url = image_to_data_url("media/example1a.jpeg")
response = client.chat.completions.create(
model=MODEL,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image in detail."},
{"type": "image_url", "image_url": {"url": image_url}},
],
}
],
max_tokens=1024,
temperature=0.2,
extra_body={"top_k": 1, "chat_template_kwargs": {"enable_thinking": False}},
)
print(response.choices[0].message.content)音频示例
from pathlib import Path
audio_url = Path("media/2414-165385-0000.wav").resolve().as_uri()
response = client.chat.completions.create(
model=MODEL,
messages=[
{
"role": "user",
"content": [
{"type": "audio_url", "audio_url": {"url": audio_url}},
{"type": "text", "text": "Transcribe this audio."},
],
}
],
max_tokens=1024,
temperature=0.2,
extra_body={"top_k": 1, "chat_template_kwargs": {"enable_thinking": False}},
)
print(response.choices[0].message.content)视频示例
from pathlib import Path
video_url = Path("media/demo.mp4").resolve().as_uri()
reasoning_budget = 16384
grace_period = 1024
response = client.chat.completions.create(
model=MODEL,
messages=[
{
"role": "user",
"content": [
{"type": "video_url", "video_url": {"url": video_url}},
{"type": "text", "text": "Describe this video."},
],
}
],
max_tokens=20480,
temperature=0.6,
top_p=0.95,
extra_body={
"thinking_token_budget": reasoning_budget + grace_period,
"chat_template_kwargs": {
"enable_thinking": True,
"reasoning_budget": reasoning_budget,
},
"mm_processor_kwargs": {"use_audio_in_video": False},
},
)
print(response.choices[0].message.content)文本示例(curl)
curl -sS http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-NVFP4","messages":[{"role":"user","content":"Hello, what can you do?"}],"temperature":0.2,"top_k":1}' \
| python3 -c "import sys,json; print(json.load(sys.stdin)['choices'][0]['message']['content'])"PDF 示例(通过 Python 逐页处理)
API 接受的是图片,而非原始 PDF 文件。以下脚本会将每一页渲染为 PNG 格式并以 base64 编码形式发送。请将其保存为**pdf_vlm_chat.py**,并安装依赖:pip install pymupdf pillow requests。
#!/usr/bin/env python3
"""Send PDF page(s) as images to a vLLM /v1/chat/completions endpoint."""
from __future__ import annotations
import argparse, base64, sys
from io import BytesIO
from pathlib import Path
import requests
try:
import fitz
from PIL import Image
except ImportError:
print("Install: pip install pymupdf pillow requests", file=sys.stderr)
sys.exit(1)
USER_PROMPT = (
"Summarize this PDF page: main topic, section headings, important facts "
"or bullets, and a brief note on each figure or table. "
"Do not invent text you cannot read."
)
API_URL = "http://localhost:8000/v1/chat/completions"
MODEL = "nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-NVFP4"
MAX_TOKENS = 32000
DPI = 150
def page_to_b64(pdf_path: str, idx: int) -> str:
doc = fitz.open(pdf_path)
z = DPI / 72.0
pix = doc.load_page(idx).get_pixmap(matrix=fitz.Matrix(z, z))
img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
doc.close()
buf = BytesIO()
img.save(buf, format="PNG")
return base64.b64encode(buf.getvalue()).decode("ascii")
def chat(url, model, b64, text, max_tokens):
r = requests.post(url, json={
"model": model,
"messages": [{"role": "user", "content": [
{"type": "text", "text": text},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},
]}],
"max_tokens": max_tokens,
"stream": False,
"temperature": 0.2,
"chat_template_kwargs": {"enable_thinking": False},
}, timeout=120)
r.raise_for_status()
return r.json()["choices"][0]["message"]["content"]
def main():
p = argparse.ArgumentParser()
p.add_argument("pdf")
p.add_argument("--page", type=int, default=0)
p.add_argument("--all-pages", action="store_true")
p.add_argument("-o", "--output")
p.add_argument("--url", default=API_URL)
p.add_argument("--model", default=MODEL)
p.add_argument("--max-tokens", type=int, default=MAX_TOKENS)
a = p.parse_args()
doc = fitz.open(a.pdf); n = len(doc); doc.close()
pages = range(n) if a.all_pages else [a.page]
parts = [f"# Extracted: {Path(a.pdf).name}\n\n*Pages: {n}*\n"] if a.all_pages else []
for i in pages:
print(f"Page {i+1}/{n} ...", file=sys.stderr)
b64 = page_to_b64(a.pdf, i)
text = chat(a.url, a.model, b64, f"Page {i+1}.\n\n{USER_PROMPT}", a.max_tokens)
parts.append(f"\n---\n\n## Page {i+1}\n\n{text.strip()}\n" if a.all_pages else text.strip())
out = "\n".join(parts)
if a.output:
Path(a.output).write_text(out + "\n", encoding="utf-8")
else:
print(out)
if __name__ == "__main__":
main()单页:
python3 pdf_vlm_chat.py /path/to/your_document.pdf --page 0所有页面转换为markdown格式:
python3 pdf_vlm_chat.py /path/to/your_document.pdf --all-pages -o extracted.md编辑脚本中的USER_PROMPT以适应不同任务(如详细提取、表格解析等)。
enable_thinking)| 设置 | 行为 |
|---|---|
| 默认(省略) | 推理开启。模型在最终答案前生成思维链,可在content中查看。 |
"chat_template_kwargs": {"enable_thinking": false} | 推理关闭。content中仅显示最终答案。 |
要在请求中禁用推理,请在JSON主体中添加:
"chat_template_kwargs": {"enable_thinking": false}在 Python heredoc 模式中,请使用 False(Python 布尔值),而非 false(无效的 Python 语法)。
对于涉及推理和复杂理解的任务,我们建议使用思考模式。对于视频、音频和全模态使用场景,建议同时尝试启用和禁用思考模式,以获得最佳结果。
from typing import Any, Dict, List
from openai import OpenAI
from transformers import AutoTokenizer
class ThinkingBudgetClient:
def __init__(self, base_url: str, api_key: str, tokenizer_name_or_path: str):
self.tokenizer = AutoTokenizer.from_pretrained(
tokenizer_name_or_path, trust_remote_code=True
)
self.client = OpenAI(base_url=base_url, api_key=api_key)
def chat_completion(
self,
model: str,
messages: List[Dict[str, Any]],
reasoning_budget: int = 512,
max_tokens: int = 1024,
**kwargs,
) -> Dict[str, Any]:
assert max_tokens > reasoning_budget, (
f"reasoning_budget must be less than max_tokens. "
f"Got {max_tokens=} and {reasoning_budget=}"
)
# Step 1: generate only the reasoning trace up to the requested budget.
response = self.client.chat.completions.create(
model=model,
messages=messages,
max_tokens=reasoning_budget,
extra_body={
"top_k": 1,
"chat_template_kwargs": {
"enable_thinking": True,
},
},
**kwargs,
)
reasoning_content = response.choices[0].message.content or ""
if "</think>" not in reasoning_content:
print("No </think> found in reasoning content")
reasoning_content = f"{reasoning_content}</think>\n\n"
reasoning_tokens_len = len(
self.tokenizer.encode(reasoning_content, add_special_tokens=False)
)
remaining_tokens = max_tokens - reasoning_tokens_len
assert remaining_tokens > 0, (
f"No tokens remaining for response ({remaining_tokens=}). "
"Increase max_tokens or lower reasoning_budget."
)
# Step 2: continue from the closed reasoning trace and ask for the final answer.
continued_messages = messages + [
{"role": "assistant", "content": reasoning_content}
]
prompt = self.tokenizer.apply_chat_template(
continued_messages,
tokenize=False,
continue_final_message=True,
)
response = self.client.completions.create(
model=model,
prompt=prompt,
max_tokens=remaining_tokens,
extra_body={"top_k": 1},
**kwargs,
)
return {
"reasoning_content": reasoning_content.strip(),
"content": response.choices[0].text,
"finish_reason": response.choices[0].finish_reason,
}--media-io-kwargs)若未进行明确设置,vLLM 可能会默认对每个视频采用约 32 帧,而不考虑视频长度。请务必在服务器启动时设置 --media-io-kwargs(已包含在上述通用调用命令中):
--media-io-kwargs '{"video": {"fps": 2, "num_frames": 256}}'推荐的 num_frames 范围(在 fps=2 时):
| GPU 内存 | 推荐的 num_frames 范围 |
|---|---|
| 80 GB (A100/H100) | 128–512 |
| ≤40 GB | 64–256 |
较高的值会改善时间覆盖范围,但会增加显存占用和预填充时间。建议从范围的下限开始,然后根据您的工作负载和延迟预算逐步增加。
chat_template_kwargs,模型将在 content 中生成思维链轨迹。这适用于文本和图像输入。--media-io-kwargs。max_tokens 与 --max-model-len: 请求中的 max_tokens 仅限制补全内容(生成的输出)。它不能超过服务器的 --max-model-len,后者是提示词 + 补全内容总和的硬性上限。如果需要更长的输出,请增加服务器标志。对于 Jetson 部署,支持 vLLM、SGLang、Ollama、llama.cpp 和 TensorRT Edge-LLM 作为推理框架;有关更多详细信息,请参见 Jetson AI Lab 模型页面。
TensorRT Edge-LLM 仅支持 Jetson Thor;Jetson 不支持 TensorRT-LLM。
总大小: 354,587,705 个数据点(约 717.0B tokens)
数据集总数: 1395 个数据集条目
数据集划分: 训练 [100%],测试 [不适用 — 评估基准单独使用],验证 [不适用 — 评估基准单独使用]
训练数据收集时间段: 2019–2025
测试数据收集时间段: 不适用(标准公共基准)
验证数据收集时间段: 不适用(标准公共基准)
Nemotron-Omni 将我们的承诺从文本扩展到多模态,在文本、音频、图像和视频领域提供同等水平的开放性。
适配器和编码器训练规模:跨混合模态(包括文本+图像、文本+视频、文本+音频以及文本+视频+音频)的约 1270 亿个标记——这反映了现实世界中的情境化交互,而非单一模态数据。
面向现实世界任务的后训练:跨多模态组合(文本+音频、文本+图像、文本+视频以及文本+视频+音频)的约 1.24 亿个精选示例,其结构旨在支持文档推理、计算机使用和长期工作流。
用于智能体训练的强化学习环境:涵盖 25 个环境的 20 个强化学习数据集,涉及 5 项新的多模态任务——视觉定位、图表与文档理解、视觉关键型 STEM 问题、视频理解以及自动语音识别——将 Nemotron 的强化学习管道从文本扩展到视觉和音频领域。
模态细分:
| 模态 | 数据集条目 | 样本数 | 估计标记数(百万) |
|---|---|---|---|
| text+audio | 220 | 259,178,821 | 143,533.1 |
| text+image | 750 | 70,143,901 | 180,347.1 |
| text+video | 241 | 15,837,673 | 239,631.5 |
| text+video+audio | 155 | 8,720,044 | 152,499.2 |
| text | 12 | 707,187 | 958.4 |
| 总计 | 1395 | 354,587,705 | 716,969.2 |
Nemotron-Omni 的训练数据来源于多种音频、图像、视频和文本数据集的集合。原始数据集首先被转换为标准化的 JSONL 格式,并采用统一的对话轮次结构。音频数据在需要时被重采样至 16 kHz。图像和视频数据集与问答注释配对,这些注释通常使用大型视觉语言模型进行重新生成或优化,以提高质量和一致性。通过基于模型的评判器进行质量过滤,以移除低质量、不安全或偏离主题的样本。对所有图像数据集进行了重复数据删除和儿童性虐待材料(CSAM)扫描。然后,数据被打包成固定长度的序列(32k、128k 或 256k 标记),以便进行高效训练。
在整个数据处理流程中实施了多项安全措施。所有图像/文本数据集都经过了儿童性虐待材料(CSAM)扫描,并按数据集跟踪结果。使用两个独立的安全评判模型进行内容安全过滤,以标记和移除包含有害内容的样本,这些有害内容包括武器相关内容、犯罪策划、涉及未成年人的性内容、骚扰、仇恨言论、亵渎语言、威胁、暴力或自杀相关内容。合成数据生成管道包含明确的质量和安全过滤阶段。应用了身份修复处理,以纠正生成响应中可能存在的偏见。多阶段处理流程(原始 → 清洗 → 清洗+安全 → 清洗+安全+保留)确保了数据的逐步优化,每个阶段都会移除更多有问题的内容。
我们以基础模型为基础,在其之上应用了额外的训练、增强和优化。
| 数据集 | 样本数 | 公开占比 | tokens(百万) | 模态 |
|---|---|---|---|---|
| MiraData | 28,252,307 | 55.53% | 14,181.3 | 文本+音频+视频 |
| laion-disco-12M | 7,507,574 | 14.7% | 22,691.0 | 文本+音频 |
| YouTube Video | 2,057,000 | 4.0% | 15,390 | 文本+视频 |
| YouTube Video and Audio | 1,164,000 | 2.2% | 18,730 | 文本+视频+音频 |
| 数据集 | 样本数 | 私有占比 | tokens(百万) | 模态 |
|---|---|---|---|---|
| Granary | 23,370,274 | 8.0% | 1,471.7 | 文本+音频 |
| SIFT-50M | 22,837,500 | 7.8% | 5,241.7 | 文本+音频 |
总体规模:跨模态共 41,502,625 个样本,包括:文本+音频、文本+图像、文本+视频
合成数据生成方法说明:
合成数据生成(SDG)用于提升数据质量、生成推理轨迹、重新标注以及扩充现有数据集。所采用的方法包括:利用视觉-语言模型对图像和音频进行重新描述、从现有媒体生成问答对、为复杂任务生成思考/推理链、对提示词进行改写以增加多样性,以及应用基于模型的质量过滤。
| 数据集 | 模态 | 数量 | 使用模型 |
|---|---|---|---|
| GroundCUA | 文本+图像 | 2,797,851 | gpt-oss-120b, Qwen3-VL-30B-A3B-Instruct |
| OpenImages | 文本+图像 | 2,556,412 | Qwen3-VL-30B-A3B-Instruct |
| MMTrail | 文本+音频 | 1,620,533 | Qwen3-omni-captioner, gpt-oss-120B |
| Localized Narratives | 文本+图像 | 1,511,812 | Qwen3-VL-30B-A3B-Instruct |
| ALLaVA | 文本+图像 | 1,414,130 | Qwen3-VL-30B-A3B-Instruct |
| VGG-Sound | 文本+音频 | 1,371,167 | Qwen3-omni-captioner, gpt-oss-120B |
| PIXMO-CAP | 文本+图像 | 1,308,838 | Qwen3-VL-30B-A3B-Instruct |
| TTS-Synthesized Nemotron-Nano-3 SFT Data | 文本+音频 | 1,226,784 | NVIDIA Magpie TTS |
| MINT-1T | 文本+图像 | 904,035 | Qwen3-VL-32B-Instruct, Gemini 3 Pro (用于过滤), Scene Text models (RTX) translate |
| ScaleCUA | 文本+图像 | 889,010 | Qwen3-VL-30B-A3B-Instruct |
| AgentNet | 文本+图像 | 878,986 | Kimi-K2.5 |
| Conceptual Captions 3M-30b | 文本+图像 | 867,065 | Qwen3-VL-30B-A3B-Thinking-FP8 |
| MetaMathQA | 文本+图像 | 860,656 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Mulberry-SFT COT | 文本+图像 | 566,982 | GLM-4.1V-9B-Thinking, Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| CC for OCR | 文本+图像 | 522,595 | SwinDocSegmenter, DeepSeek OCR, Qwen3.5-122B-A10B, Qwen3-32B, Gemini 3 Flash Preview (用于过滤), GPT-4o mini (用于过滤和质量检查), Qwen3-VL-30B-A3B-Thinking-FP8, gpt-oss-120b |
| Charxiv-100K | 文本+图像 | 272,104 | Qwen3-VL-235B-A22B-Instruct, Qwen3-VL-235B-A22B-Thinking, GPT-4o (用于过滤), Qwen3.5-122B-A10B |
| SwinDocSegmenter | 文本+图像 | 207,200 | SwinDocSegmenter, DeepSeek OCR |
| CLEVR | 文本+图像, 文本+视频 | 197,027 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| InternVL-Data | 文本+图像 | 185,395 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Flickr30k Entities | 文本+图像 | 154,760 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Metropolis and Lita | 文本+视频 | 150,434 | Qwen3.5-122B-A10B |
| TextCaps | 文本+图像 | 136,911 | Commercial VILA model, Qwen3-VL-30B-A3B-Instruct |
| Vision R1 Llava CoT | 文本+图像 | 126,024 | GLM-4.1V-9B-Thinking |
| HC-STVG | 文本+视频 | 124,902 | NVIDIA 使用 Qwen 模型重新标注 (Qwen2.5-VL-72B-Instruct) |
| nvPDFtex | 文本+图像 | 118,351 | gpt-oss-120b, Qwen3.5-122B-A10B |
| ChartQA | 文本+图像 | 111,602 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤), Qwen2-VL-72B (NV) |
| ECD-10k-Images | 文本+图像 | 110,697 | Qwen3.5-122B-A10B |
| SAMA-COCO | 文本+图像 | 102,965 | gpt-oss-120B |
| VisualWebInstruct | 文本+图像 | 97,746 | Earlier SDG, GLM-4.1V-9B-Thinking |
| Spatial | 文本+图像 | 95,532 | Microsoft Florence-2-large |
| DoubtNut | 文本+图像 | 94,919 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Cosmos Nemotron SFTv13.9 | 文本+图像 | 92,128 | Qwen3-VL-30B-A3B-Instruct, Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| CrossTask | 文本+视频 | 76,495 | NVIDIA 使用 Qwen 模型重新标注 (Qwen2.5-VL-72B-Instruct) |
| RefCOCO | 文本+图像 | 69,850 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Mantis Instruct | 文本+图像 | 66,975 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Visual7W | 文本+图像 | 62,589 | Qwen3.5-122B-A10B |
| ScreenQA | 文本+图像 | 62,186 | Qwen3.5-122B-A10B |
| VQAV2 | 文本+图像 | 54,899 | Qwen3.5-122B-A10B |
| TallyQA | 文本+图像 | 50,073 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| KeenSight | 文本+图像 | 49,849 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| GQA | 文本+图像 | 42,182 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| AskFilo | 文本+图像 | 41,807 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Raven | 文本+图像 | 41,996 | gpt-oss-120b |
| DocVQA | 文本+图像 | 35,759 | Qwen3.5-122B-A10B |
| TextVQA | 文本+图像 | 34,602 | Commercial VILA model, Qwen3-VL-30B-A3B-Instruct |
| COCO | 文本+图像 | 32,111 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| PlotQA | 文本+图像 | 30,665 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Llava | 文本+视频 | 30,250 | Qwen3-Omni-30B-A3B-Instruct, Qwen3-VL-32B-Instruct |
| NVCLIP | 文本+图像 | 29,680 | Qwen2.5-72B-Instruct |
| Tapos | 文本+视频 | 29,250 | Qwen2.5-VL-72B-Instruct |
| Vedantu Chemistry | 文本+音频 | 26,338 | NVIDIA Magpie TTS |
| NV-CC-Img-Text-Dataset | 文本+图像 | 24,998 | Qwen3-VL-30B-A3B-Instruct |
| DocLayNet | 文本+图像 | 22,709 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤), gpt-oss-120b |
| Taloka Grounding | 文本+图像 | 22,218 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Wikipedia OCR | 文本+图像 | 21,440 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| InternVL2.5 | 文本+图像 | 20,770 | Qwen3-VL-235B-A22B-Instruct, Qwen3-VL-235B-A22B-Thinking, GPT-4o (用于过滤), Qwen3.5-122B-A10B |
| PromptPG | 文本+图像 | 20,305 | Qwen2-VL-72B |
| PubTables | 文本+图像 | 20,174 | gpt-oss-120b |
| InfoVQA | 文本+图像 | 18,679 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Azure Tables | 文本+图像 | 18,188 | gpt-oss-120b, Qwen3.5-122B-A10B |
| TabRecSet | 文本+图像 | 17,437 | GPT-4o mini, Qwen3-VL-30B-A3B-Thinking-FP8, gpt-oss-120b, Qwen3.5-122B-A10B |
| CD Questions | 文本+音频, 文本+图像 | 16,335 | NVIDIA Magpie TTS, Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Linguistic Data Consortium | 文本+图像 | 15,499 | Qwen3.5-122B-A10B, GPT-4o mini, Qwen3-VL-30B-A3B-Thinking-FP8, gpt-oss-120b, Ask Kateryna |
| MapQA | 文本+图像 | 12,480 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| SlideVQA | 文本+图像 | 11,199 | Qwen3.5-122B-A10B |
| OCR Reason Finance | 文本+图像 | 9,389 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| GeomVerse | 文本+图像 | 9,298 | GLM-4.1V-9B-Thinking |
| NextQA | 文本+视频 | 8,903 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| UniGeo | 文本+图像 | 8,822 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| Vedantu | 文本+音频, 文本+图像 | 8,750 | NVIDIA Magpie TTS, Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| GPQA | 文本+音频 | 7,657 | NVIDIA Magpie TTS |
| SLAKE | 文本+图像 | 7,294 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| OpenGVLab | 文本+图像 | 7,269 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤), Qwen3-VL-235B-A22B-Instruct, Qwen3-VL-235B-A22B-Thinking, GPT-4o (用于过滤) |
| PerceptionTest | 文本+视频 | 5,192 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| InvoicesQA | 文本+图像 | 4,817 | Qwen3.5-122B-A10B |
| EgoProcel | 文本+视频 | 4,660 | Qwen2.5-VL-72B-Instruct |
| SynthTabNet | 文本+图像 | 4,364 | gpt-oss-120b |
| SerpAPI | 文本+图像 | 3,784 | Qwen3.5-122B-A10B, Gemini 3 Flash Preview (用于过滤) |
| FinTabNet | 文本+图像 | 3,852 | gpt-oss-120b |
| FastMath | 文本+图像 | 3,718 | Qwen3-VL-235B-A22B-Instruct-FP8 |
| ASR Data Derived Speech-to-Text Chat Data | 文本+音频 | 3,608 | GPT-OSS 120B |
| Geometry3k | 文本+图像 | 2,078 | Qwen3-VL-235B-A22B-Thinking-FP8 |
| VQA-RAD | 文本+图像 | 1,270 | Qwen3.5-122B-A10B |
| RQA | 文本+音频 | 959 | NVIDIA Magpie TTS |
| HierText OCRQA Qwen | 文本+图像 | 514 | Qwen2.5-VL-32B-Instruct |
数据模态
音频训练数据规模
图像训练数据规模
文本训练数据规模
视频训练数据规模
按数据集划分的数据收集方法
按数据集划分的标注方法
属性(数量、数据集描述、传感器): 1395 个数据集共包含 354,587,705 条数据。训练数据涵盖五种模态组合:文本+音频(259,178,821 个样本)、文本+图像(70,143,901 个样本)、文本+视频(15,837,673 个样本)、文本+视频+音频(8,720,044 个样本)以及纯文本(707,187 个样本)。内容包括公开可用的学术数据集、许可的第三方数据、NVIDIA 内部收集数据以及合成生成的标注。数据主要为英文。未使用传感器衍生数据。
基准测试分数:
| 任务 | 多模态基准 | Nemotron 3 Nano Omni | Nemotron Nano VL V2 | 提升百分比 |
|---|---|---|---|---|
| 视觉定位 | CVBench2D | 83.95 | 78.3 | 6.73 |
| 文档 | OCRBenchV2 (EN) | 67.04 | 54.8 | 18.26 |
| 计算机使用 | OSWorld | 47.4 | 11.1 | 76.58 |
| 图表推理 | Charxiv Reasoning | 63.6 | 41.3 | 35.06 |
| 多图像推理 | MMlongBench Doc | 57.5 | 38 | 33.91 |
| 数学推理 | MathVista_MINI | 82.8 | 75.5 | 8.82 |
| OCR 推理 | OCR_Reasoning | 54.14 | 33.9 | 33.87 |
| 视频问答 | Video MME | 72.2 | - | - |
| 视频+音频问答 | World Sense | 55.4 | - | - |
| 视频+音频问答 | Daily Omni | 74.52 | - | - |
| 语音指令遵循 | Voice interaction | 89.39 | - | - |
量化基准测试分数:
我们发布了 FP8 和 NVFP4 量化变体以及 BF16 模型。FP8 变体将语言模型中的每个线性层量化为按张量 E4M3(MoE 路由和 lm_head 除外),并搭配 FP8 KV 缓存,每权重产生 8.5 个有效位(32.8 GB)。NVFP4 变体采用受 Nemotron 3 Super 启发的混合精度方案:路由的 MoE 专家被量化为 NVFP4(FP4 E2M1 值,每组 16 个元素采用按块 FP8 E4M3 缩放,并附加按张量 FP32 全局缩放),而 Mamba in_proj / out_proj、共享专家和注意力 o_proj 被量化为 FP8,每权重产生 4.98 个有效位(20.9 GB)。在这两种变体中,视觉和音频编码器及其 MLP 投影器均保持 BF16 精度。
下表报告了 FP8 和 NVFP4 相对于 BF16 基线在非推理模式下的准确率。在 9 项多模态基准测试中,两种量化变体的平均准确率均保持在 BF16 的 1 个百分点以内。
| 模型大小 | BF16 | FP8 | NVFP4 |
|---|---|---|---|
| 大小 (GB) | 61.5 | 32.8 | 20.9 |
| 有效位/权重 (bpw) | 16.00 | 8.5 | 4.98 |
| 基准测试 | BF16 | FP8 | NVFP4 |
|---|---|---|---|
| MathVista_MINI | 71.90 | 71.05 | 71.30 |
| Charxiv Reasoning | 49.10 | 48.05 | 47.95 |
| MMlongBench Doc | 46.10 | 45.84 | 45.78 |
| OCRBenchV2 (EN) | 65.80 | 65.63 | 65.77 |
| CVBench2D | 84.20 | 85.62 | 85.27 |
| Video MME | 70.80 | 69.40 | 69.60 |
| Daily Omni | 74.50 | 74.06 | 74.23 |
| World Sense | 55.20 | 54.40 | 54.60 |
| MMAU | 74.62 | 74.56 | 74.34 |
| Tedium Long (WER↓) | 3.11 | 3.12 | 3.04 |
| HF-ASR (WER↓) | 5.95 | 5.97 | 5.95 |
| 平均值(9 项非 ASR) | 65.80 | 65.40 | 65.43 |
| 中位数(9 项非 ASR) | 70.80 | 69.40 | 69.60 |
| 与 BF16 的差值(平均值) | --- | −0.40 | −0.38 |
按数据集划分的数据收集方法:
按数据集划分的标注方法:
属性(数量、数据集描述、传感器): 14 项评估基准,涵盖图像理解(MathVistaMini、Charxiv Reasoning、MMLongBench-Doc、OCR Reasoning、OCRBenchV2 English、CVBench2D、OSWorld)、视频理解(Video MME)、音频/语音理解(VoiceBench、Tedium Long、HF-ASR、MMAU、World Sense)以及多模态全理解(Daily Omni)。所有基准均为公开可用的英文学术数据集。
在训练此模型之前,NVIDIA 已采取措施以尊重欧盟文本和数据挖掘的退出权,具体措施包括:(1) 在一定程度上尊重 robots.txt 指令,只要此类信号反映了有效的权利保留;(2) 根据权利持有人提供的任何可操作元数据标识符对数据集进行过滤。
加速引擎: TensorRT-LLM、vLLM、TensorRT Edge-LLM、llama.cpp、ollama、SGlang
测试硬件:
我们建议采用以下设置以达到最佳性能。
我们根据模式和任务建议以下采样参数。
temperature=0.6、top_p=0.95、grace_period=1024、reasoning_budget=16384、max_token=20480 以及 max_model_len=210000temperature=0.2、top_k=1temperature=1.0、top_k=1对于大多数多模态推理任务,我们建议使用至少 20480 的输出长度。对于复杂的推理问题,特别是数学和编程领域,将最大输出长度增加到 210000 tokens 可以为模型提供足够的空间来生成更详细和正确的答案。我们还发现,所提出的预算控制推理(Budget-Controlled Reasoning)在回答复杂推理问题时是有效的。
NVIDIA 认为可信 AI 是一项共同责任,我们已制定相关政策和实践,以支持广泛 AI 应用的开发。当按照我们的服务条款下载或使用时,开发人员应与其内部模型团队合作,确保此模型满足相关行业和用例的要求,并应对不可预见的产品误用。
请确保您对所有输入图像和视频内容拥有适当的权利和许可;如果图像或视频包含人物、个人健康信息或知识产权,生成的图像或视频不会模糊或保持所包含图像主体的比例。
有关此模型伦理考量的更多详细信息,请参见 Model Card++ 的偏见、可解释性、安全与安保和隐私子卡片。
请在此链接报告模型质量、风险、安全漏洞或 NVIDIA AI 相关问题。
@misc{nvidia2026nemotron3nanoomni,
title={Nemotron 3 Nano Omni: Efficient and Open Multimodal Intelligence},
author={NVIDIA},
year={2026},
eprint={2604.24954},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2604.24954},
}