n
nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16
模型介绍文件和版本分析
下载使用量0

模型概述

描述:

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 开放模型协议 管辖。

部署地区:

全球

用例:

本模型专为需要多模态理解能力的企业客户设计。预期用户包括:

  • 客户服务应用(例如,通过 OCR 处理 Doordash 送达特定地址的视频、得来速订单验证)
  • 媒体与娱乐(M&E)——视频和语音分析、密集字幕、视频搜索和摘要
  • AI 助手的文档智能(合同、SOW/MSA、科学发现、财务文档)
  • AI 代理应用的 GUI 自动化(事件管理、代理搜索、浏览器代理、电子邮件代理)

发布日期:

Build.Nvidia.com 于 2026 年 4 月 28 日通过 URL 发布
Hugging Face 于 2026 年 4 月 28 日通过以下链接发布:

  • BF16
  • FP8
  • NVFP4

NGC 于 2026 年 4 月 28 日通过 URL 发布

模型架构:

架构类型: Mamba2-Transformer 混合专家模型(MoE)

网络架构:

  • Nemotron 3 Nano LLM (30B A3B)
  • CRADIO v4-H 视觉编码器
  • Parakeet 语音编码器

模型参数数量: 3.1 x 10^10(31B A3B)

输入:

输入类型: 视频、音频、图像、文本

输入格式:

  • 视频:mp4,最长2分钟。对于1080p视频,采样率最高为1 FPS / 128帧。对于720p等较低分辨率视频,可采用更高的时间采样率,如2 FPS / 256帧。
  • 音频:wav、mp3文件(最长1小时),8kHz及更高采样率
  • 图像:红、绿、蓝(RGB)(jpeg、png)
  • 文本:字符串

输入参数:

  • 视频:三维(3D)
  • 音频:一维(1D)
  • 图像:二维(2D)
  • 文本:一维(1D)

与输入相关的其他属性:

  • 最大上下文长度可达256k tokens
  • 语言支持:仅英语

输出

输出类型: 文本

输出格式:

  • 文本:字符串

输出参数:

  • 文本:一维(1D)

与输出相关的其他属性:

  • 最大上下文长度可达256k tokens。
  • 支持JSON输出格式
  • 支持带有思维链的推理输出
  • 支持工具调用
  • 支持转录的词级时间戳

我们的AI模型经过设计和/或优化,可在NVIDIA GPU加速系统上运行。通过利用NVIDIA的硬件(如GPU核心)和软件框架(如CUDA库),与仅使用CPU的解决方案相比,该模型实现了更快的训练和推理时间。

软件集成:

运行时引擎:

  • vLLM
  • NeMo
  • Megatron
  • NeMo-RL

支持的硬件微架构兼容性:

  • NVIDIA Ampere(A100 80GB SXM/NVLink)
  • NVIDIA Blackwell(B200 SXM/NVLink、RTX Pro 6000 SE、DGX Spark、Jetson Thor、RTX 5090)
  • NVIDIA Hopper(H100 SXM/NVLink、H200 SXM/NVLink)
  • NVIDIA Lovelace(L40S)

首选/支持的操作系统:

  • Linux

推理运行时:

  • vLLM
  • TensorRT LLM
  • TensorRT Edge-LLM
  • llama.cpp
  • Ollama
  • SGLang

将基础模型和微调模型集成到AI系统中,需要使用特定用例数据进行额外测试,以确保安全有效的部署。遵循V模型方法,在单元和系统层面进行迭代测试和验证,对于在部署前减轻风险、满足技术和功能要求以及确保符合安全和道德标准至关重要。

此AI模型可作为应用程序编程接口(API)调用嵌入到上述软件环境中。

模型版本:

Nemotron-3-Nano-Omni-30B-A3B-Reasoning


快速入门指南

模型参数

模式温度值(temperature)核采样(top_p)候选采样(top_k)最大 tokens 数推理预算(reasoning_budget)宽限期(grace_period)
思考模式0.60.95—20480163841024
指令模式0.2—11024——

下载模型权重

精度技术名称HuggingFace 链接
BF16Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16https://huggingface.co/nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16
FP8Nemotron-3-Nano-Omni-30B-A3B-Reasoning-FP8https://huggingface.co/nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-FP8
NVFP4Nemotron-3-Nano-Omni-30B-A3B-Reasoning-NVFP4https://huggingface.co/nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-NVFP4

安装 HuggingFace 命令行工具

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

所需版本: 需要 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]"

通用调用(1×GPU,例如 1×B200)

# 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

平台特定说明

RTX Pro: 由于 FlashInfer 与 RTX Pro 存在当前已知问题,请添加参数:--moe-backend triton

NVFP4 + TP>1: 由于 vLLM 上的 TRTLLM_GEN MoE 后端内核在 NVFP4 下使用 TP>1 时存在当前已知问题,请添加参数:--moe-backend flashinfer_cutlass

在 DGX Spark(aarch64 / ARM64)上使用 vLLM

对于此处未涵盖的所有内容(API 示例、推理模式、视频调优),请遵循通用说明。

1. 拉取容器镜像

使用上游多架构 vLLM v0.20.0 Docker 镜像。Docker 将自动拉取 arm64 版本。

docker pull vllm/vllm-openai:v0.20.0
2. 在 Spark 上启动 vLLM 服务器
WEIGHTS=/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 的关键标志
标志用途Spark 说明
--gpus all选择 GPUSpark 配备一张 GB10 GPU;all 等同于 device=0
--max-model-len最大上下文窗口初始值设为 131072;若遇到内存不足(OOM),可适当减小(详见下文内存调优)
Spark 上的内存调优

Spark 采用统一的 LPDDR5X 内存(约 128 GB,供 CPU 和 GPU 共享),而非独立的系统内存与显存池。以下是两个调优手段,按影响程度排序:

  1. 降低 --gpu-memory-utilization:从 0.85 降至 0.70,可为操作系统释放约 19 GB 内存,并重新启用权重预取。代价:KV 缓存预算减小。
  2. 降低 --max-model-len:减少 KV 缓存分配(例如,在 --max-num-seqs=1 时,将上下文窗口减半,KV 缓存也会减半)。 组合覆盖设置:
  --gpu-memory-utilization=0.70 \
  --max-model-len=32768 \

TensorRT-LLM

该模型也可通过 TensorRT-LLM 进行部署 - 相关说明参见此处。

平台特定说明

TensorRT Edge-LLM

该模型还可在 NVIDIA Jetson Thor 上通过 TensorRT Edge-LLM 部署 - 详见 Jetson AI Lab 模型页面 和 TensorRT Edge-LLM 快速入门指南。


SGLang

该模型的 BF16 变体支持在 SGLang 上运行,可使用以下镜像:

  • CUDA 13.0: lmsysorg/sglang:dev-cu13-nemotronh-nano-omni-reasoning-v3
  • CUDA 12.9: lmsysorg/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。

平台特定说明

DGX Spark 上的 SGLang(aarch64 / ARM64)

有关未在此处涵盖的所有内容(API 示例、推理模式、视频调优),请遵循通用说明。

1. 拉取容器镜像

使用上述链接的上游多架构 CUDA 13.0 Docker 镜像。Docker 将自动拉取 arm64 变体。

docker pull lmsysorg/sglang:dev-cu13-nemotronh-nano-omni-reasoning-v3
2. 在 Spark 上启动 SGLang 服务器
WEIGHTS=/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
Key Spark-Specific Flags
FlagPurposeSpark Guidance
--gpus all选择 GPUSpark 配备一张 GB10 GPU;all 等同于 device=0
--context-length最大上下文窗口初始使用默认值;若遇到 OOM(内存溢出),可适当减小(详见下文内存调优)
Memory Tuning on Spark

Spark 采用统一 LPDDR5X 内存(约 128 GB,CPU 与 GPU 共享),而非独立的系统内存 + 显存池。以下是按影响程度排序的两个调节手段:

  1. 降低 --mem-fraction-static:从 0.80 降至 0.70,可释放约 13 GB 内存回操作系统,并重新启用权重预取。代价:KV 缓存预算减小。
  2. 缩短 --context-length:减少 KV 缓存分配(例如,在 --max-running-requests=1 时,上下文窗口减半,KV 缓存也随之减半)。 组合覆盖配置:
  --mem-fraction-static=0.70 \
  --context-length=32768 \

API 客户端(兼容 OpenAI)

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。

pdf_vlm_chat.py(点击展开)
#!/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 GB64–256

较高的值会改善时间覆盖范围,但会增加显存占用和预填充时间。建议从范围的下限开始,然后根据您的工作负载和延迟预算逐步增加。


注意事项

  1. 推理默认设置: 推理默认开启。如果您省略 chat_template_kwargs,模型将在 content 中生成思维链轨迹。这适用于文本和图像输入。
  2. 视频帧采样: 默认值(约 32 帧)对于大多数真实视频来说过于保守。在服务器启动时设置 --media-io-kwargs。
  3. PDF 输入格式: API 不接受原始 PDF 上传。请将页面渲染为 PNG 并以 base64 格式发送(参见上文的 PDF 示例)。
  4. max_tokens 与 --max-model-len: 请求中的 max_tokens 仅限制补全内容(生成的输出)。它不能超过服务器的 --max-model-len,后者是提示词 + 补全内容总和的硬性上限。如果您需要更长的输出,请增加服务器标志。

Jetson 部署

对于 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+audio220259,178,821143,533.1
text+image75070,143,901180,347.1
text+video24115,837,673239,631.5
text+video+audio1558,720,044152,499.2
text12707,187958.4
总计1395354,587,705716,969.2

Nemotron-Omni 的训练数据来源于多样化的音频、图像、视频和文本数据集集合。原始数据集首先被转换为标准化的 JSONL 格式,并采用统一的对话轮次结构。音频数据在需要时重采样至16 kHz。图像和视频数据集与问答标注配对,这些标注通常使用大型视觉语言模型进行重新生成或优化,以提高质量和一致性。通过基于模型的判断器进行质量过滤,以移除低质量、不安全或偏离主题的样本。对所有图像数据集进行重复数据删除和 CSAM 扫描。然后,数据被打包成固定长度的序列(32k、128k 或 256k token),以便进行高效训练。

在整个数据处理流程中实施了多项安全措施。所有图像/文本数据集都经过 CSAM(儿童性虐待材料)扫描,并按数据集跟踪结果。使用两个独立的安全判断模型进行内容安全过滤,以标记和移除包含有害内容的样本,这些有害内容包括武器相关内容、犯罪策划、涉及未成年人的性内容、骚扰、仇恨言论、亵渎语言、威胁、暴力或自杀相关内容。合成数据生成管道包含明确的质量和安全过滤阶段。应用身份修复处理来纠正生成响应中潜在的偏见。多阶段处理流程(原始 → 清洗后 → 干净+安全 → 干净+安全+保留)确保了数据的逐步优化,每个阶段都移除了更多有问题的内容。

我们以基础模型为基础,在其之上进行了额外的训练、增强和优化。

公开数据集

数据集样本数公开占比tokens(百万)模态
MiraData28,252,30755.53%14,181.3文本+音频+视频
laion-disco-12M7,507,57414.7%22,691.0文本+音频
YouTube Video2,057,0004.0%15,390文本+视频
YouTube Video and Audio1,164,0002.2%18,730文本+视频+音频

私有数据集

数据集样本数私有占比tokens(百万)模态
Granary23,370,2748.0%1,471.7文本+音频
SIFT-50M22,837,5007.8%5,241.7文本+音频

自建合成数据

  • 总体规模:跨模态共41,502,625个样本,包括:文本+音频、文本+图像、文本+视频

  • 合成数据生成方法说明:

合成数据生成(SDG)用于提升数据质量、生成推理轨迹、重新标注以及扩充现有数据集。具体方法包括:利用视觉语言模型对图像和音频重新生成描述,基于现有媒体生成问答对,为复杂任务生成思考/推理链,对提示词进行改写以增加多样性,以及应用基于模型的质量过滤。

NVIDIA 来源合成数据集

数据集模态数量使用模型
GroundCUA文本+图像2,797,851gpt-oss-120b, Qwen3-VL-30B-A3B-Instruct
OpenImages文本+图像2,556,412Qwen3-VL-30B-A3B-Instruct
MMTrail文本+音频1,620,533Qwen3-omni-captioner, gpt-oss-120B
Localized Narratives文本+图像1,511,812Qwen3-VL-30B-A3B-Instruct
ALLaVA文本+图像1,414,130Qwen3-VL-30B-A3B-Instruct
VGG-Sound文本+音频1,371,167Qwen3-omni-captioner, gpt-oss-120B
PIXMO-CAP文本+图像1,308,838Qwen3-VL-30B-A3B-Instruct
TTS-Synthesized Nemotron-Nano-3 SFT Data文本+音频1,226,784NVIDIA Magpie TTS
MINT-1T文本+图像904,035Qwen3-VL-32B-Instruct, Gemini 3 Pro(用于过滤), Scene Text models (RTX) translate
ScaleCUA文本+图像889,010Qwen3-VL-30B-A3B-Instruct
AgentNet文本+图像878,986Kimi-K2.5
Conceptual Captions 3M-30b文本+图像867,065Qwen3-VL-30B-A3B-Thinking-FP8
MetaMathQA文本+图像860,656Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Mulberry-SFT COT文本+图像566,982GLM-4.1V-9B-Thinking, Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
CC for OCR文本+图像522,595SwinDocSegmenter, 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,104Qwen3-VL-235B-A22B-Instruct, Qwen3-VL-235B-A22B-Thinking, GPT-4o(用于过滤), Qwen3.5-122B-A10B
SwinDocSegmenter文本+图像207,200SwinDocSegmenter, DeepSeek OCR
CLEVR文本+图像, 文本+视频197,027Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
InternVL-Data文本+图像185,395Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Flickr30k Entities文本+图像154,760Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Metropolis and Lita文本+视频150,434Qwen3.5-122B-A10B
TextCaps文本+图像136,911Commercial VILA model, Qwen3-VL-30B-A3B-Instruct
Vision R1 Llava CoT文本+图像126,024GLM-4.1V-9B-Thinking
HC-STVG文本+视频124,902NVIDIA 使用 Qwen 模型(Qwen2.5-VL-72B-Instruct)重新标注
nvPDFtex文本+图像118,351gpt-oss-120b, Qwen3.5-122B-A10B
ChartQA文本+图像111,602Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤), Qwen2-VL-72B (NV)
ECD-10k-Images文本+图像110,697Qwen3.5-122B-A10B
SAMA-COCO文本+图像102,965gpt-oss-120B
VisualWebInstruct文本+图像97,746Earlier SDG, GLM-4.1V-9B-Thinking
Spatial文本+图像95,532Microsoft Florence-2-large
DoubtNut文本+图像94,919Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Cosmos Nemotron SFTv13.9文本+图像92,128Qwen3-VL-30B-A3B-Instruct, Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
CrossTask文本+视频76,495NVIDIA 使用 Qwen 模型(Qwen2.5-VL-72B-Instruct)重新标注
RefCOCO文本+图像69,850Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Mantis Instruct文本+图像66,975Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Visual7W文本+图像62,589Qwen3.5-122B-A10B
ScreenQA文本+图像62,186Qwen3.5-122B-A10B
VQAV2文本+图像54,899Qwen3.5-122B-A10B
TallyQA文本+图像50,073Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
KeenSight文本+图像49,849Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
GQA文本+图像42,182Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
AskFilo文本+图像41,807Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Raven文本+图像41,996gpt-oss-120b
DocVQA文本+图像35,759Qwen3.5-122B-A10B
TextVQA文本+图像34,602Commercial VILA model, Qwen3-VL-30B-A3B-Instruct
COCO文本+图像32,111Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
PlotQA文本+图像30,665Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Llava文本+视频30,250Qwen3-Omni-30B-A3B-Instruct, Qwen3-VL-32B-Instruct
NVCLIP文本+图像29,680Qwen2.5-72B-Instruct
Tapos文本+视频29,250Qwen2.5-VL-72B-Instruct
Vedantu Chemistry文本+音频26,338NVIDIA Magpie TTS
NV-CC-Img-Text-Dataset文本+图像24,998Qwen3-VL-30B-A3B-Instruct
DocLayNet文本+图像22,709Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤), gpt-oss-120b
Taloka Grounding文本+图像22,218Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Wikipedia OCR文本+图像21,440Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
InternVL2.5文本+图像20,770Qwen3-VL-235B-A22B-Instruct, Qwen3-VL-235B-A22B-Thinking, GPT-4o(用于过滤), Qwen3.5-122B-A10B
PromptPG文本+图像20,305Qwen2-VL-72B
PubTables文本+图像20,174gpt-oss-120b
InfoVQA文本+图像18,679Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Azure Tables文本+图像18,188gpt-oss-120b, Qwen3.5-122B-A10B
TabRecSet文本+图像17,437GPT-4o mini, Qwen3-VL-30B-A3B-Thinking-FP8, gpt-oss-120b, Qwen3.5-122B-A10B
CD Questions文本+音频, 文本+图像16,335NVIDIA Magpie TTS, Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Linguistic Data Consortium文本+图像15,499Qwen3.5-122B-A10B, GPT-4o mini, Qwen3-VL-30B-A3B-Thinking-FP8, gpt-oss-120b, Ask Kateryna
MapQA文本+图像12,480Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
SlideVQA文本+图像11,199Qwen3.5-122B-A10B
OCR Reason Finance文本+图像9,389Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
GeomVerse文本+图像9,298GLM-4.1V-9B-Thinking
NextQA文本+视频8,903Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
UniGeo文本+图像8,822Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
Vedantu文本+音频, 文本+图像8,750NVIDIA Magpie TTS, Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
GPQA文本+音频7,657NVIDIA Magpie TTS
SLAKE文本+图像7,294Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
OpenGVLab文本+图像7,269Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤), Qwen3-VL-235B-A22B-Instruct, Qwen3-VL-235B-A22B-Thinking, GPT-4o(用于过滤)
PerceptionTest文本+视频5,192Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
InvoicesQA文本+图像4,817Qwen3.5-122B-A10B
EgoProcel文本+视频4,660Qwen2.5-VL-72B-Instruct
SynthTabNet文本+图像4,364gpt-oss-120b
SerpAPI文本+图像3,784Qwen3.5-122B-A10B, Gemini 3 Flash Preview(用于过滤)
FinTabNet文本+图像3,852gpt-oss-120b
FastMath文本+图像3,718Qwen3-VL-235B-A22B-Instruct-FP8
ASR Data Derived Speech-to-Text Chat Data文本+音频3,608GPT-OSS 120B
Geometry3k文本+图像2,078Qwen3-VL-235B-A22B-Thinking-FP8
VQA-RAD文本+图像1,270Qwen3.5-122B-A10B
RQA文本+音频959NVIDIA Magpie TTS
HierText OCRQA Qwen文本+图像514Qwen2.5-VL-32B-Instruct

训练数据集:

数据模态

  • 音频
  • 图像
  • 文本
  • 视频

音频训练数据规模

  • 10,000 至 100 万小时
    (267,898,865 个含音频样本)

图像训练数据规模

  • 100 万至 10 亿张图像
    (70,143,901 个含图像样本)

文本训练数据规模

  • 10 亿至 10 万亿个标记
    (所有模态总计约 7170 亿个标记)

视频训练数据规模

  • 10,000 至 100 万小时
    (24,557,717 个含视频样本)

按数据集的数据收集方法

  • 混合:人工、自动化、合成

按数据集的标注方法

  • 混合:人工、自动化、合成

属性(数量、数据集描述、传感器): 1395 个数据集共包含 354,587,705 个数据项。训练数据涵盖五种模态组合:文本+音频(259,178,821 个样本)、文本+图像(70,143,901 个样本)、文本+视频(15,837,673 个样本)、文本+视频+音频(8,720,044 个样本)以及纯文本(707,187 个样本)。内容包括公开可用的学术数据集、许可的第三方数据、NVIDIA 内部收集数据以及合成生成的标注。数据主要为英文。未使用传感器衍生数据。

评估数据集:

基准分数:

任务多模态基准Nemotron 3 Nano OmniNemotron Nano VL V2提升百分比
视觉定位CVBench2D83.9578.36.73
文档OCRBenchV2 (EN)67.0454.818.26
计算机使用OSWorld47.411.176.58
图表推理Charxiv Reasoning63.641.335.06
多图像推理MMlongBench Doc57.53833.91
数学推理MathVista_MINI82.875.58.82
OCR 推理OCR_Reasoning54.1433.933.87
视频问答Video MME72.2--
视频+音频问答World Sense55.4--
视频+音频问答Daily Omni74.52--
语音指令遵循Voice interaction89.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 个百分点。

内存占用BF16FP8NVFP4
大小 (GB)61.532.820.9
有效位/权重 (bpw)16.008.54.98
基准BF16FP8NVFP4
MathVista_MINI71.9071.0571.30
Charxiv Reasoning49.1048.0547.95
MMlongBench Doc46.1045.8445.78
OCRBenchV2 (EN)65.8065.6365.77
CVBench2D84.2085.6285.27
Video MME70.8069.4069.60
Daily Omni74.5074.0674.23
World Sense55.2054.4054.60
MMAU74.6274.5674.34
Tedium Long (词错误率↓)3.113.123.04
HF-ASR (词错误率↓)5.955.975.95
平均值(9 个非 ASR)65.8065.4065.43
中位数(9 个非 ASR)70.8069.4069.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
测试硬件:

  • NVIDIA H100 SXM
  • NVIDIA H200 SXM
  • NVIDIA B200 SXM
  • NVIDIA A100 80GB SXM
  • NVIDIA GB200 NVL72
  • NVIDIA RTX PRO 6000 SE Blackwell
  • NVIDIA L40S PCIe 48GB
  • NVIDIA DGX Spark
  • NVIDIA Jetson Thor
  • NVIDIA RTX 5090

最佳实践

我们建议采用以下设置以达到最佳性能。

采样参数

我们根据模式和任务建议以下采样参数。

  • 用于长文档分析和多模态推理任务的思考模式:
    temperature=0.5-0.7、top_p=0.95、grace_period=1024、reasoning_budget=16384、max_token=20480 以及 max_model_len=210000
  • 用于一般任务的指令模式(非思考模式):
    temperature=0.2、top_k=1
  • 对于 ASR 任务,我们建议使用非思考模式,并设置 temperature=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}, 
}