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
| 模式 | 温度值(temperature) | 核采样(top_p) | 候选采样(top_k) | 最大 tokens 数 | 推理预算(reasoning_budget) | 宽限期(grace_period) |
|---|---|---|---|---|---|---|
| 思考模式 | 0.6 | 0.95 | — | 20480 | 16384 | 1024 |
| 指令模式 | 0.2 | — | 1 | 1024 | — | — |
| 精度 | 技术名称 | 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在剩余空间≥70 GB的卷上选择一个目标目录(模型大小约为62 GB)。
WEIGHTS=/path/to/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16
hf download nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16 \
--local-dir "$WEIGHTS" \
--max-workers 8注意事项:
hf download支持断点续传——若连接中断,重新运行相同命令即可。--max-workers 8可并行下载;在高速网络环境下可适当调大该数值。hf_xet扩展支持 Xet 协议仓库的原生传输;使用hf download时,无需安装git-xet或git-lfs。
ls "$WEIGHTS" | head
du -sh "$WEIGHTS" # expect ~62 GB
test -f "$WEIGHTS/config.json" && echo OK所需版本: 需要 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 BF16RTX Pro: 由于 FlashInfer 与 RTX Pro 存在当前已知问题,请添加参数:
--moe-backend triton
NVFP4 + TP>1: 由于 vLLM 上的 TRTLLM_GEN MoE 后端内核在 NVFP4 下使用 TP>1 时存在当前已知问题,请添加参数:
--moe-backend flashinfer_cutlass
对于此处未涵盖的所有内容(API 示例、推理模式、视频调优),请遵循通用说明。
使用上游多架构 vLLM v0.20.0 Docker 镜像。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 快速入门指南。
该模型的 BF16 变体支持在 SGLang 上运行,可使用以下镜像:
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| Flag | Purpose | Spark Guidance |
|---|---|---|
--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=1.0,
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=1.0,
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":1.0,"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": 1.0,
"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亿个 token,这反映了现实世界中的情境化交互,而非单一模态数据。
针对实际任务的后训练:跨多模态组合(文本+音频、文本+图像、文本+视频以及文本+视频+音频)的约1.24亿个精选示例,其结构旨在支持文档推理、计算机使用和长期工作流。
用于智能体训练的强化学习环境:涵盖25个环境的20个强化学习数据集,涉及5项新的多模态任务——视觉定位、图表与文档理解、视觉关键型STEM问题、视频理解以及自动语音识别,将 Nemotron 的强化学习管道从文本扩展到视觉和音频领域。
模态细分:
| 模态 | 数据集条目 | 样本数 | 估计 token 数(百万) |
|---|---|---|---|
| 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 token),以便进行高效训练。
在整个数据处理流程中实施了多项安全措施。所有图像/文本数据集都经过 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 | - | - |
量化基准分数:
我们随 BF16 模型一同发布 FP8 和 NVFP4 量化变体。FP8 变体将语言模型中的每个线性层量化为每张量 E4M3(MoE 路由器和 lm_head 除外),并搭配 FP8 KV 缓存,实现每权重 8.5 有效位(32.8 GB)。NVFP4 变体采用受 Nemotron 3 Super 启发的混合精度方案:路由的 MoE 专家量化为 NVFP4(FP4 E2M1 值,每块 FP8 E4M3 缩放因子作用于 16 个元素组,并附加每张量 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 (词错误率↓) | 3.11 | 3.12 | 3.04 |
| HF-ASR (词错误率↓) | 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 英文、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.5-0.7、top_p=0.95、grace_period=1024、reasoning_budget=16384、max_token=20480 以及 max_model_len=210000temperature=0.2、top_k=1temperature=0.2、top_k=1对于大多数多模态推理任务,我们建议使用至少 20480 的输出长度。对于复杂的推理问题,尤其是数学和编程领域,将最大输出长度增加到 131072 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},
}