英伟达又发新模型了——NVIDIA Nemotron 3 Nano Omni 30B-A3B-Reasoning

老黄这次很狠:30B 总参数、3B 激活的 MoE,视频 + 音频 + 图像 + 文本全吃,256K 上下文,还自带推理链

最关键的是——它的开源协议是真·开源(NVIDIA Open Model Agreement),允许商用,权重数据集训练配方都开放

Unsloth 一夜之间就把 GGUF 跑通了,4-bit 25GB 内存就能跑

简介

先把家底亮一下

项目

参数

总参数 / 激活参数

31B / 3B

架构

Mamba2-Transformer 混合 MoE

视觉编码器

C-RADIO v4-H

语音编码器

Parakeet

LLM 主干

Nemotron-3-Nano-30B-A3B

上下文

最长 256K tokens

输入

视频 (mp4, ≤2 分钟)、音频 (wav/mp3, ≤1 小时)、图像、文本

输出

文本(支持 JSON、CoT 推理、tool calling、词级时间戳)

量化

官方提供 BF16 / FP8 / NVFP4 三档

License

NVIDIA Open Model Agreement(可商用)

这个组合最有意思的地方是Mamba2 + Transformer 混合,再叠 MoE,单次推理只激活 3B,所以同样的卡能扛更高并发——官方给出的数据是比"另一家开源 Omni 模型"(暗指 Qwen3-Omni-30B-A3B)在视频任务上9.2 倍吞吐,多文档任务上7.4 倍吞吐

Pareto 曲线:多文档与视频场景的系统吞吐对比
打开网易新闻 查看精彩图片
Pareto 曲线:多文档与视频场景的系统吞吐对比

为什么能差这么多?官方给的解法叫Efficient Video Sampling (EVS)+ 3D 卷积时空感知,再加上视频帧剪枝(--video-pruning-rate 0.5),让一段 1080p 视频可以以 1FPS / 128 帧采样,720p 可以 2FPS / 256 帧——本质上是用结构化稀疏把"看视频"的算力账省下来了

定位:多模态感知子代理

vLLM 团队博客里的描述很到位:把它当成 Agent 系统里的"眼睛和耳朵",专门负责屏幕、文档、音视频流的感知,再把结构化理解喂给下游的编排和执行 Agent。它不是要替你写代码、跑工具,它是要成为 Agent 系统里"那个看得到听得见的家伙"——这跟 Qwen3-Omni 想"全都干"的路线是不一样的

典型场景官方也给了:

  • 客服:Doordash 投递地点 OCR 验证、得来速点单确认

  • M&E 媒体娱乐:视频/语音密集字幕、检索、摘要

  • 文档智能:合同、SOW/MSA、科研、财务文档

  • GUI 自动化:事件管理、Agentic 搜索、浏览器/邮件 Agent

测评数据

NVIDIA 给的口径是"同尺寸里最强的 Omni 模型",并且在六个公开榜单上都拿了第一

Nemotron 3 Nano Omni 横扫六大多模态榜单
打开网易新闻 查看精彩图片
Nemotron 3 Nano Omni 横扫六大多模态榜单

六个榜单分别是:

  • MMlongbench-Doc(长文档理解)

  • OCRBenchV2(OCR 综合)

  • WorldSense(视频常识)

  • DailyOmni(日常多模态)

  • VoiceBench(语音理解)

  • MediaPerf(多模态吞吐 + 成本)

跟自家上一代 Nemotron Nano VL V2 对比,全面上涨,视觉、视频、OCR、音频四条线都有提升

相比 Nemotron Nano VL V2 的精度提升
打开网易新闻 查看精彩图片
相比 Nemotron Nano VL V2 的精度提升

Unsloth 那边也跑了一份对比,他们的结论更直白——全面碾压 Qwen3-Omni-30B-A3B

Unsloth 给出的横向 benchmark
打开网易新闻 查看精彩图片
Unsloth 给出的横向 benchmark

我个人的态度:榜单数据看看就行,真正决定你用不用的,是后面这套部署链路顺不顺手——这才是我重点写的部分

关于开源协议(NVIDIA Open Model Agreement)

顺便说一下 License,因为这次老黄给的协议比 Llama 那一票"看似开源"的协议清爽得多。我把官方原文核心点提炼了一下(原文链接):

  • 可商用:永久、全球、免版税、不可撤销

  • 可改可分发:允许做衍生模型并以源/二进制形式发布

  • 输出归你:NVIDIA 不主张你用模型生成内容的所有权

  • ⚠️ 分发时要附带 License 副本,保留版权和归属声明

  • ⚠️ 如果你拿这个协议去告 NVIDIA 侵权,授权立刻终止

  • ⚠️ 不能用 NVIDIA 商标做品牌背书(描述来源除外)

对中小团队和个人开发者来说,这就是**"拿来就能用"**级别的协议,比那些"7 亿月活以上要单独申请"的"伪开源"友好太多

Unsloth GGUF 火速到位:本地部署详细步骤

这次 Unsloth 真的快,Day Zero 就和 NVIDIA 联动出了 GGUF。模型仓库在这:

❝ https://huggingface.co/unsloth/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning-GGUF

资源占用:消费级显卡很轻松!害得是 Unsloth!

打开网易新闻 查看精彩图片

❝ ⚠️ 一个大坑:不要用 CUDA 13.2,会输出乱码,NVIDIA 在修。建议 12.9 或 13.0方式一:Unsloth Studio(最省事)

Unsloth 自己出了一个 Web UI,叫 Unsloth Studio,可以本地跑 GGUF、对比模型、聊天、传图传音频

Unsloth Studio 界面
打开网易新闻 查看精彩图片
Unsloth Studio 界面

MacOS / Linux / WSL 一键安装:

curl -fsSL https://unsloth.ai/main/install.sh | sh
source unsloth_studio/bin/activate
unsloth studio -H 0.0.0.0 -p 8888

Windows PowerShell:

irm https://unsloth.ai/install.ps1 | iex
& .\unsloth_studio\Scripts\unsloth.exe studio -H 0.0.0.0 -p 8888

然后浏览器打开http://localhost:8888,搜 Nemotron-3-Nano-Omni,选你要的量化版下载就行

在 Studio 中搜索并下载模型 方式二:llama.cpp 命令行(更可控)
打开网易新闻 查看精彩图片
在 Studio 中搜索并下载模型 方式二:llama.cpp 命令行(更可控)

先编译 llama.cpp(CUDA 版):

apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
-DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first \
--target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
❝ Apple Silicon 把 -DGGML_CUDA=ON 改成 OFF,Metal 默认开

纯文本对话(NVIDIA 推荐temp=1.0, top-p=1.0):

./llama.cpp/llama-cli \
-hf unsloth/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning-GGUF:UD-Q4_K_XL \
--temp 1.0 --top-p 1.0

图片 + 音频混合输入(需要llama-mtmd-cli):

./llama.cpp/llama-mtmd-cli \
-hf unsloth/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning-GGUF:UD-Q4_K_XL \
--image screenshot.png \
--audio meeting.wav \
-p "Summarize what is shown and said. Return key actions as bullet points." \
--temp 1.0 --top-p 1.0

视频按帧采样(llama.cpp 暂不直吃视频,曲线救国先抽帧):

mkdir -p frames
ffmpeg -i demo.mp4 -vf "fps=1/2,scale=1280:-1" frames/frame_%04d.png

FRAMES=$(python - <<'PY'
from pathlib import Path
frames = sorted(Path("frames").glob("*.png"))[:16]
print(",".join(str(x) for x in frames))
PY
)

./llama.cpp/llama-mtmd-cli \
-hf unsloth/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning-GGUF:UD-Q4_K_XL \
--image "$FRAMES" \
-p "Analyze these sampled video frames. Summarize the sequence of events." \
--temp 1.0 --top-p 1.0

起 OpenAI 兼容服务(推荐这种,方便接业务):

./llama.cpp/llama-server \
-hf unsloth/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning-GGUF:UD-Q4_K_XL \
--alias "unsloth/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning" \
--prio 3 --temp 1.0 --top-p 1.0 --port 8001

Python 客户端调用:

from openai import OpenAI

client = OpenAI(
base_url="http://127.0.0.1:8001/v1",
api_key="sk-no-key-required",
)

completion = client.chat.completions.create(
model="unsloth/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning",
messages=[{"role": "user", "content": "What is 2+2?"}],
)
print(completion.choices[0].message.content)
❝ ⚠️ Ollama 用户注意:当前 Ollama 还跑不了它的多模态部分,因为 mmproj 视觉文件是分开的,Ollama 还没适配。要玩多模态请走 llama.cpp 系

工具调用场景把temp=0.6, top-p=0.95即可

官方部署:vLLM 0.20.0(生产级)

官方推荐的生产部署是vLLM 0.20.0(必须这个版本,别上下浮动)。两个镜像选一个:

  • CUDA 13.0:vllm/vllm-openai:v0.20.0

  • CUDA 12.9:vllm/vllm-openai:v0.20.0-cu129

pip install vllm[audio]==0.20.0
# 或
docker pull vllm/vllm-openai:v0.20.0
❝ 只要用到音频(包括视频里抽音频 use_audio_in_video: true),就必须装 vllm[audio]

起服务(单卡 B200/H200/H100,推荐配置):

vllm serve nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16 \
--served-model-name nemotron \
--host 0.0.0.0 --port 5000 \
--tensor-parallel-size 1 \
--max-model-len 131072 \
--trust-remote-code \
--video-pruning-rate 0.5 \
--media-io-kwargs '{"video": {"num_frames": 512, "fps": 1}}' \
--reasoning-parser nemotron_v3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder

跑 NVFP4 / FP8 时,加上--kv-cache-dtype fp8进一步省显存

几个平台坑(官方明示)

平台

需要追加的参数

原因

RTX Pro 6000

--moe-backend triton

FlashInfer + RTX Pro 当前有 bug

NVFP4 + TP>1

--moe-backend flashinfer_cutlass

TRTLLM_GEN MoE 内核 bug

DGX Spark (ARM64)

--gpu-memory-utilization 0.70--max-model-len 32768--max-num-seqs 8

统一 LPDDR5X 内存(128GB CPU/GPU 共享),需让出空间

调用示例(思考模式 + 视频):

from openai import OpenAI
from pathlib import Path

client = OpenAI(base_url="http://localhost:5000/v1", api_key="")
video_url = Path("media/demo.mp4").resolve().as_uri()

resp = client.chat.completions.create(
model="nemotron",
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": 16384 + 1024,
"chat_template_kwargs": {
"enable_thinking": True,
"reasoning_budget": 16384,
},
"mm_processor_kwargs": {"use_audio_in_video": False},
},
)
print(resp.choices[0].message.reasoning, "\n---\n", resp.choices[0].message.content)

采样参数官方推荐

模式

temperature

top_p

top_k

max_tokens

reasoning_budget

Thinking

0.6

0.95

Instruct

0.2

1

1024

支持的 GPU

  • Blackwell:B200、RTX Pro 6000 SE、DGX Spark、Jetson Thor、RTX 5090

  • Hopper:H100、H200

  • Ampere:A100 80GB

  • Lovelace:L40S

除了 vLLM,SGLang也已经支持(BF16 变体,FP8/NVFP4 待跟进),TensorRT-LLMTensorRT Edge-LLM(Jetson Thor)也都有 cookbook

一些个人观察

聊聊我的态度,不全说好话:

我看好的地方

  • 协议是真开放——商用零摩擦,对国内中小厂、个人开发者就是白嫖级别的福利

  • 3B 激活的 MoE + 视频帧剪枝这套组合,是把"持续感知"这个 Agent 真痛点直接打中了,9 倍吞吐不是噱头,是给永远在线的 Agent 准备的

  • 256K 上下文 + 词级时间戳的转写 + tool calling,几乎可以一个模型把会议助理、视频检索、屏幕代理三件事一起干

  • Unsloth Day Zero GGUF,25GB 内存就能跑 4-bit,意味着一台普通游戏本就能本地起 Agent,这是 Qwen3-Omni 没做到的

我泼冷水的地方

  • 只支持英文——中文能力官方明确没承诺,国内业务场景需要自己评估

  • vLLM 必须 0.20.0,版本锁得很死,老镜像别想直接升

  • CUDA 13.2 输出乱码,老黄家自己的 CUDA 还有这种 bug

  • Ollama 暂不支持多模态,想一键ollama run的朋友再等等

  • 视频 ≤2 分钟,长视频还是得切片喂

适合谁

  • 想做 GUI Agent / 浏览器 Agent / 屏幕监控类应用 → 极力推荐

  • 文档智能(合同/财务/科研 OCR + 推理)→ MMlongbench-Doc 和 OCRBenchV2 第一,闭眼上

  • 短视频/会议纪要/语音转写 + 提炼 → 一把梭

  • 中文为主的 toC 场景 → 再等等,或者拿这个做底座微调

我自己接下来会拿它做两件事:一是接到本地的录屏 → 操作回放分析流程里看看;二是把会议视频丢进去做"看完一段视频自动产出 todo + 时间戳"的工作流

制作不易,如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个,谢谢你看我的文章,我们下篇再见!