🧩NVIDIA Nemotron 3 Nano - 如何运行指南

在你的设备上本地运行并微调 NVIDIA Nemotron 3 Nano!

NVIDIA 发布了 Nemotron-3-Nano-4B,一个 4B 的开放混合 MoE 模型,遵循 Nemotron-3-Super-120B-A12B 和 Nemotron-3-Nano-30B-A3B。Nemotron 系列旨在用于快速、准确的代码、数学和具代理性的工作负载。它们具有 1M 令牌上下文 窗口,并且在推理、对话和吞吐量基准测试中具有竞争力。

Nemotron-3-Nano-4B 在 5GB 的 RAM、显存或统一内存上运行。Nemotron-3-Nano-30A3B 在 24GB RAM 上运行。现在可以通过 Unslotharrow-up-right在本地对 Nemotron 3 进行微调。感谢 NVIDIA 在第一天就为 Unsloth 提供支持。

Nemotron-3-Nano-4BNemotron-3-Nano-30B-A3B微调 Nemotron 3

⚙️ 使用指南

NVIDIA 建议以下推理设置:

通用对话/指令(默认):

  • temperature = 1.0

  • top_p = 1.0

工具调用用例:

  • temperature = 0.6

  • top_p = 0.95

对于大多数本地使用,设置:

  • max_new_tokens = 32,768262,144 用于最大 1M 令牌的标准提示

  • 如有更多 RAM/显存,可为深度推理或长文本生成增加该值。

当我们使用下面内容时,会看到聊天模板格式:

tokenizer.apply_chat_template([
    {"role" : "user", "content" : "What is 1+1?"},
    {"role" : "assistant", "content" : "2"},
    {"role" : "user", "content" : "What is 2+2?"}
    ], add_generation_prompt = True, tokenize = False,
)
circle-check

Nemotron 3 聊天模板格式:

circle-info

Nemotron 3 使用 <think> 其令牌 ID 为 12,并使用 </think> 其令牌 ID 为 13 进行推理。使用 --special 来查看 llama.cpp 的令牌。你可能还需要 --verbose-prompt 来查看 <think> 因为它被置于前面。

🖥️ 运行 Nemotron-3-Nano-4B

根据你的使用场景需要使用不同设置。有些 GGUF 的最终大小相似,因为模型架构(例如 gpt-oss)具有不能被 128 整除的维度,因此某些部分不能量化为更低位数。

模型的 4 位版本需要约 ~3GB RAM。8 位需要 5GB。

Llama.cpp 教程(GGUF):

在 llama.cpp 中运行的说明(我们将使用 8 位以接近全精度):

1

获取最新的 llama.cppGitHub 这里arrow-up-right。你也可以按照下面的构建说明。若没有 GPU 或只想使用 CPU 推理,请将 -DGGML_CUDA=ON-DGGML_CUDA=OFF 更改为

2

你可以直接从 Hugging Face 拉取。你可以根据 RAM/显存将上下文增加到 1M。

按此用于 通用指令 用例:

按此用于 工具调用 用例:

3

通过以下命令下载模型(在安装 pip install huggingface_hub hf_transfer )之后。你可以选择 Q8_0 或其他量化版本。

4

然后以对话模式运行模型:

另外,根据需要调整 上下文窗口 确保你的硬件可以处理超过 256K 的上下文窗口。将其设置为 1M 可能会触发 CUDA OOM 并崩溃,这就是默认值为 262,144 的原因。

🖥️ 运行 Nemotron-3-Nano-30B-A3B

根据你的使用场景需要使用不同设置。有些 GGUF 的最终大小相似,因为模型架构(例如 gpt-oss)具有不能被 128 整除的维度,因此某些部分不能量化为更低位数。

模型的 4 位版本需要约 ~24GB RAM。8 位需要 36GB。

Llama.cpp 教程(GGUF):

在 llama.cpp 中运行的说明(注意我们将使用 4 位以适配大多数设备):

1

获取最新的 llama.cppGitHub 这里arrow-up-right。你也可以按照下面的构建说明。若没有 GPU 或只想使用 CPU 推理,请将 -DGGML_CUDA=ON-DGGML_CUDA=OFF 更改为 对于 Apple Mac / Metal 设备,设置 -DGGML_CUDA=OFF 然后像往常一样继续 - Metal 支持默认启用。

2

你可以直接从 Hugging Face 拉取。你可以根据 RAM/显存将上下文增加到 1M。

按此用于 通用指令 用例:

按此用于 工具调用 用例:

3

通过以下命令下载模型(在安装 pip install huggingface_hub hf_transfer )之后。你可以选择 UD-Q4_K_XL 或其他量化版本。

4

然后以对话模式运行模型:

另外,根据需要调整 上下文窗口 确保你的硬件可以处理超过 256K 的上下文窗口。将其设置为 1M 可能会触发 CUDA OOM 并崩溃,这就是默认值为 262,144 的原因。

circle-info

Nemotron 3 使用 <think> 其令牌 ID 为 12,并使用 </think> 其令牌 ID 为 13 进行推理。使用 --special 来查看 llama.cpp 的令牌。你可能还需要 --verbose-prompt 来查看 <think> 因为它被置于前面。

🦥 微调 Nemotron 3 与强化学习

Unsloth 现在支持对所有 Nemotron 模型进行微调,包括 Nemotron 3 Super 和 Nano。

4B 模型可在免费的 Colab GPU 上运行,但 30B 模型不适合。我们仍然为你提供了一个 80GB A100 的 Colab 笔记本供微调使用。Nemotron 3 Nano 的 16 位 LoRA 微调将使用大约 60GB 显存:

关于微调 MoE —— 可能不适合微调路由器层,所以我们默认禁用了它。如果你想保留其推理能力(可选),可以使用直接回答与链式思维示例的混合。在你的数据集中至少使用 75% 推理25% 非推理 来使模型保留其推理能力。

强化学习 + NeMo Gym

我们与开源的 NVIDIA NeMo Gymarrow-up-right 团队合作以推动 RL 环境的民主化。我们的合作使得许多感兴趣领域(包括数学、编程、工具使用等)能够进行单回合 rollout RL 训练,使用来自 NeMo Gym 的训练环境和数据集:

circle-check

🦙Llama-server 服务与部署

为了将 Nemotron 3 投入生产部署,我们使用 llama-server 在一个新的终端(例如通过 tmux)中,通过以下命令部署模型:

当你运行上述命令时,你将获得:

然后在新的终端中,在执行 pip install openai之后,执行:

这将打印出

基准测试

Nemotron-3-Nano-4B 在其同等规模模型中表现最佳,包括吞吐量方面。

Nemotron-3-Nano-30B-A3B 在所有基准测试中表现最佳,包括吞吐量。

最后更新于

这有帮助吗?