“
核心问题:同样 30 B 量级的开源模型,为什么 Nemotron-3-Nano 在数学、代码、工具调用、长上下文等任务上更快、更准,还能把显存占用砍到一半以下?
先给答案
它把“大模型”拆成 128 份专家,每次只请 6 位上班;再用 Mamba-Transformer 混合骨架把长序列成本压到线性;最后用 25 T token 把底座烧瓷,配合多环境 RL 把“快”和“准”一起写进权重。结果:单张 H200 上 8 k 输入 16 k 输出场景,吞吐比 Qwen3-30B 高 3.3 倍,平均精度还略胜。
本文欲回答的核心问题
-
稀疏专家混合(MoE)到底如何做到“参数多、计算少”? -
Mamba-2 跟 Transformer 拼在一起后,长上下文为什么不再爆炸? -
25 T token 的两阶段“课程”都喂了哪些数据? -
多环境 RLVR 如何把数学、代码、工具调用、指令遵循一起拉满? -
FP8 量化后精度几乎不掉,关键 trick 是什么? -
如果今天就想把模型跑起来,最简安装与调参路线是什么?
一、架构速描:128 位专家里的“6 人值班制”
场景示例
假设你要给 200 篇学术论文做摘要,每篇 5 k token,一次性扔进去 1 M 上下文。传统稠密 30 B 模型需要 240 GB 显存;Nemotron-3-Nano 因只激活 3 B + KV 压缩 + FP8,实测 8×H100 节点即可放下,推理延迟 2.3 s,比同规模稠密模型快 4.7 倍。
作者反思
过去我们总以为“大”就是“强”,但把专家粒度切到 128 份后,发现精度反而更稳——因为每位专家只需专注极窄领域,路由噪声下降,知识冲突自然减少。
二、预训练 25 T token 的两阶段“课程”
阶段 1:泛而杂(23.5 T)
- ❀
15 大类:web crawl、代码、数学、多语、学术、Crawl++、合成 SFT 等 - ❀
质量分桶:medium → syn-high,五档按比例采样 - ❀
新增 2.5 T 英文 token:来自最新 Common Crawl + 9 语种回译 + 中高质量改写
阶段 2:精而高(1.5 T)
- ❀
维基、教科书风格数学、STEM 推理问答、GitHub 精选代码 - ❀
课程切换点:训练步 94 %,LR 仍保持 1e-3,避免“热切换”掉点
场景示例
在阶段 1 里,模型先看过大量“民间”代码片段;阶段 2 再用带单元测试的竞赛题精修,于是 HumanEval 从 69→78 % 的跃升发生在最后 6 % 步数,印证了“先博后专”的路线。
三、后训练三板斧:SFT → RLVR → RLHF
3.1 SFT:18 M 样本,256 k 打包
- ❀
代码 20.7 % | 数学 12.8 % | 工具对话 28.6 % | 长文本 4.9 % - ❀
支持“推理开关”:10 % 样本去掉思维链,3 % 随机截断,用来学“预算控制”
代码块:最小推理模板
<reasoning>
# 用户问:快速排序最坏情况如何避免?
# 思路:先解释 pivot 选择 → 再给出三路划分模板
</reasoning>
<content>
最坏情况发生在已排序数组且固定选最左 pivot。
解决办法:随机 pivot 或三路划分。
```python
def qsort(a):
if len(a) <= 1: return a]
p = random.choice(a)
return qsort([x for x in a if x < p]) + \
[x for x in a if x == p] + \
qsort([x for x in a if x > p])
“`
3.2 RLVR:多环境同时开跑
课程采样
用高斯函数动态调度难度:前期易题热身,后期难题攻坚。随机采样对比实验显示,同样 150 步, curriculum 组 GPQA 提升 7 个百分点,随机组反而掉 2 点。
作者反思
过去单环境 RL 常出现“跷跷板”——代码涨、数学掉。第一次把所有环境捆在一起跑,初始心里没底,结果 loss 曲线平稳,且所有 benchmark 同步抬升,印证了“多任务联合”对通用模型的必要性。
3.3 RLHF:生成式奖励模型(GenRM)
- ❀
用 Qwen3-235B-A22B 做教师,输出“思考+评分” - ❀
128 prompt × 16 回答,圆环比较法 O(N) 搞定 - ❀
引入 Group Relative Length Control:回答太长就扣奖励,训练后平均长度降 30 %,但准确率不掉
四、长上下文 1 M 的低成本秘诀
- ❀
512 k 连续训练 + 4 k 短序列混合,兼顾短任务不掉点 - ❀
新增 3 倍合成文档 QA + 1 % 检索增强数据,RULER-1M 得 86.34 % - ❀
Mamba 状态维度 128,显存随长度线性增长,而非平方
场景示例
把 50 本手册(共 800 k token)一次性塞进模型,让它生成“跨章节故障排查流程图”。在 8×H100 节点上,首次响应 18 s,后续每 1 k token 增量仅 0.7 s;纯 Transformer 稠密模型同样硬件需 52 s,增量 2.4 s。
五、FP8 量化:只留 12 层 BF16,其余全 8 比特
关键观察
自注意力层对 8 bit 最敏感,单独留出来即可把 drop 控制在 1 % 以内;KV cache 一起压成 FP8,batch 立刻变大,吞吐再翻 1.5 倍。
六、快速上手:从 HuggingFace 到 1 M 上下文
6.1 安装
pip install transformers==4.47 accelerate nemo-rl # 官方镜像
git lfs install
git clone https://huggingface.co/nvidia/Nemotron-3-Nano-30B-A3B-FP8
6.2 最小推理脚本
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
tok = AutoTokenizer.from_pretrained("nvidia/Nemotron-3-Nano-30B-A3B-FP8")
model = AutoModelForCausalLM.from_pretrained(
"nvidia/Nemotron-3-Nano-30B-A3B-FP8",
torch_dtype=torch.float8_e4m3fn, device_map="auto")
prompt = "<|im_start|>user\n如何优化快速排序的最坏情况?<|im_end|>\n<|im_start|>assistant\n"
inputs = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=1024, temperature=0.3)
print(tok.decode(out[0], skip_special_tokens=False))
6.3 建议超参
七、性能全景表:Nemotron-3-Nano vs 同量级对手
“
注:表格数据均来自原文评估,— 表示未报告。
八、实用摘要 / 一页速览
-
稀疏 MoE + Mamba 混合 = 激活仅 3 B,显存≈同尺寸 1/3。 -
25 T token 两阶段:先博后专,代码 HumanEval 提 8 个点。 -
多环境 RLVR 同步训练,所有 benchmark 一起涨,无跷跷板。 -
FP8 量化保留 12 层 BF16,精度 99 %,吞吐 +250 %。 -
1 M 上下文线性扩展,8×H100 可跑,增量延迟 <1 s/1 k token。 -
HuggingFace 已放 FP8 权重,transformers 一行 device_map="auto"即可。
九、可检索 FAQ
-
问:Nemotron-3-Nano 显存到底省多少?
答:激活 3 B 参数 + KV 压缩 + FP8,单卡 80 GB 可跑 128 k 长序列,而稠密 30 B 需约 240 GB。 -
问:稀疏专家会不会导致路由不稳定?
答:使用 DeepSeek 无辅助损失负载均衡 + 专家偏置持续更新,训练 25 T token 未出现路由崩溃。 -
问:1 M token 场景如何保持短任务精度?
答:长上下文阶段混合 512 k 与 4 k 序列,MMLU-Pro 只降 0.2 点,代码任务反而升 1.1 点。 -
问:FP8 量化后还能微调吗?
答:官方仅提供 PTQ 权重,若需微调,可加载 BF16 版本量化后再训练,但需自行重跑校准。 -
问:推理时如何强制关闭“思考” token?
答:在 prompt 里不加<reasoning>标签,或设置do_reasoning=False(API 版本),模型将直接输出答案。 -
问:多环境 RL 需要多少卡?
答:论文实验用 32×H100,同步 rollout + 训练;NeMo-Gym 支持弹性扩缩,最小 8 卡亦可跑通 demo。 -
问:商用协议如何?
答:NVIDIA 开放模型权重与训练配方,遵循 NVIDIA Open Model License,允许商业用途,需遵守安全与合规条款。
图片来源:Unsplash

