智能体/生成式 AI

借助 Prime Intellect Lab,只需几分钟即可开始自定义 NVIDIA Nemotron 3 Nano

自定义使开发者能够采用通用模型,并根据用例、领域、语言等对其进行定制。

然而,定制化也带来了一些挑战。它需要基础设施、技术专业知识和特定于工作流程的软件,以及 GPU 等资源和有效使用这些资源的能力。这还取决于专业领域知识:我应该使用什么算法?我应该使用什么环境?如何知道模型是否真正学习了?

定制可能令人望而生畏。

通过将 NVIDIA Nemotron 3 系列 (包括 NanoSuperUltra) 等开放模型与提供训练即服务的 Prime Intellect Lab 等平台相结合,完整的定制循环变得更加容易。在本教程中,您将使用 Prime Intellect Lab 通过托管强化学习自定义 NVIDIA Nemotron 3 Nano,并生成可下载的 LoRA 适配器。

本地设置大约需要五分钟。

在本博客的最后,您将学到两件事:

  • 定制比以往更容易实现。
  • 开始使用开放模型比以往更容易。

您将构建的内容

我们将按照本教程的简单流程:使用 Nemotron 3 Nano 对基准进行训练和重新评估,并为我们的任务生成自定义模型。为了展示如何轻松地开始使用我们可以使用的强大自定义工具,我们将使用一个标准的“hello world”示例:Python Math。

本教程适用于 Nemotron 3 Super 和 Nemotron 3 Ultra。本视频还将带您了解更复杂的编码任务,这是本教程配套 Notebook 的一部分:

视频 1. 本教程将介绍完整的定制工作流:在数学 – python 环境中对 Nemotron 3 Nano 进行基准测试,使用可验证奖励的强化学习训练 LoRA 适配器,部署 LoRA 并比较结果

定制意味着什么

自定义是指采用模型并更改或调整其可训练参数,使其更有可能成功完成您希望其成功完成的任务类型。

有很多方法可以做到这一点。根据问题的不同,您可以使用监督式微调、参数高效微调、偏好优化、强化学习或多种技术组合。有关更广泛的处理方法,请参阅“选择大语言模型自定义技术”帖子。

本教程重点介绍 Python 数学环境中具有可验证奖励 (RLVR) 的强化学习。环境的基本理念很简单:使用 Python 工具 ( Python、numpysympyscipy) 进行一些数学计算。以下是提示的示例:

# System: 

Use Python for all calculations. Give your answer inside \boxed{}.

In addition to the Python standard library, you have access to: numpy sympy scipy.

# User: 

If $2^8=4^x$, what is the value of $x$?

> 注意:环境默认设置为 100 圈。在此实验中,我们每次发布时都会设置 5 个回合的助手。直接响应是一个回合,因此具有最终响应的工具调用是 5 个回合中的 2 个回合。如果模型反复调用工具而未生成最终响应,这种情况会受到很大的惩罚。

如需深入了解智能体强化学习,请参阅“掌握智能体技术:AI 智能体强化学习”博文。

开放性的重要性

开放权重是方程的重要组成部分,但它们不是整个方程。数据、评估代码和训练方法还决定了您可以理解、复制和部署的内容。

NVIDIA Nemotron 3 系列随开放模型资源 (包括权重、数据和方法) 一起发布。您可以探索 NVIDIA Nemotron 开发者资源,阅读 深入了解 NVIDIA Nemotron 3,并查看 NVIDIA Nemotron 资源库

这些资源有助于更好地了解 Nemotron 的构建和后训练方式、所使用的数据和环境的类型,以及您自己的定制应该有何不同。

预备知识

在本教程中,您需要:

  • 使用 curl 和受支持的 Python 3 安装的开发环境。
  • Prime Intellect 账户,可访问配置的托管培训和计费。
  • Prime CLI、环境包、托管模型和适配器部署的互联网访问权限。
  • 大约 5-15 分钟。 

Prime Intellect 负责托管的部署、训练和推理基础架构;您无需管理本地 GPU 集群。

注意:模型的供货情况和定价会随着时间的推移而变化。将实时 CLI 目录视为事实来源,而不是从静态文章中复制标识符或价格。

只需三步即可定制 Nemotron 3 Nano

我们来了解一下定制您自己的 Nemotron 3 Nano 所需的简单步骤。

第 1 步:获取基准

首先,安装 Prime CLI、验证并创建 Prime Intellect Lab 工作空间:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.13
uv tool install --python 3.13 --force "prime==0.6.17"

uv --version
prime --version

prime login
mkdir -p nemotron-customization
cd nemotron-customization
prime lab setup
uv run python --version

Prime Intellect Lab 创建工作空间结构并安装验证器工具。接下来是运行时间更长的评估和训练步骤。

使用前请检查环境:

prime env info primeintellect/math-python --version 0.1.10
prime env inspect primeintellect/math-python@0.1.10 README.md

在工作空间中固定确切的环境包:

uv add "math_python==0.1.10" \
  --index https://hub.primeintellect.ai/primeintellect/simple/
uv lock --check

现在,查看实时托管培训目录:

prime train models
prime inference models

Checkpoint:仅当输出包含 nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 并显示当前训练、输入和输出价格时继续。 

使用以下命令获取任务的快速基准,以便我们显示模型在训练后是否得到改进:

export NANO="nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16"
export MATH_EVAL_ARGS='{"dataset_name":"math","dataset_split":"test","num_train_examples":-1,"max_turns":5,"sandbox_client_max_workers":8}'
export MATH_SAMPLING='{"max_tokens":2048,"temperature":1.0,"extra_body":{"chat_template_kwargs":{"enable_thinking":false}}}'

prime eval run math-python \
  --provider prime \
  --model "$NANO" \
  --num-examples 32 \
  --rollouts-per-example 1 \
  --max-concurrent 8 \
  --env-args "$MATH_EVAL_ARGS" \
  --sampling-args "$MATH_SAMPLING" \
  --timeout 300 \
  --max-retries 2 \
  --save-results \
  --disable-tui \
  --abbreviated-summary

您的结果应与以下内容相似,这表明模型一开始表现不佳,准确度较低。

...
--- All ---
Rewards:
reward: avg - 0.219, std - 0.413...

以下是基准模型提示失败的示例,在该示例中,模型无法生成盒式响应,因为它在调用不支持的工具时耗尽了 5 轮的时间:

# System: 

Use Python for all calculations. Give your answer inside \boxed{}.

In addition to the Python standard library, you have access to: numpy sympy scipy.

# User: 

If $2^8=4^x$, what is the value of $x$?

# Assistant:


[[EMPTY RESPONSE]]

图 1 是此初始评估的奖励分布示例。奖励是二进制的:1 表示模型产生了正确的响应,0 表示模型产生了错误或缺失的响应。

第 2 步:使用 Nemotron 3 Nano 完成学业

要开始自定义 Nemotron 3 Nano,我们要做的第一件事是创建 configs/rl/nemotron-3-nano-math-python-100step.toml

name = "nemotron-3-nano-math-python-100step"
model = "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16"
loss = "rl"
max_steps = 100

batch_size = 32
rollouts_per_example = 8
max_inflight_rollouts = 32
learning_rate = 2e-5
lora_alpha = 16

[sampling]
max_tokens = 2048
temperature = 1.0
enable_thinking = false

[adapters]
interval = 0
keep_last = 1

[[env]]
id = "primeintellect/math-python@0.1.10"
args = { dataset_name = "math", dataset_split = "train", num_train_examples = -1, max_turns = 5 }

此配置概述了我们希望如何训练模型。训练器会对每个选定的任务进行八次尝试采样,并在每个部署组内为其提供比较信号。四个组构成了 32 个批量,并限制了为这次小规模运行同时组装的部署数量。 

启动运行:

prime train configs/rl/nemotron-3-nano-math-python-100step.toml

Prime 会在请求确认之前打印解析后的配置、当前价格和环境操作状态。确认后,CLI 将返回运行 ID 和控制面板 URL。评估和训练将在该时间点之后继续进行。

Checkpoint:保存运行 ID。启动输出应显示确切的 Nano 模型、固定的数学 Python 环境、实时定价以及成功的环境操作检查。

控制面板上会显示奖励曲线、奖励分配情况和单次发布情况。CLI 会显示相同的证据:

export RUN_ID="<run-id>"
export STEP="<step>"

prime train logs "$RUN_ID" --follow
prime train progress "$RUN_ID"
prime train distributions "$RUN_ID" --type rewards
prime train usage "$RUN_ID" --watch
prime train rollouts "$RUN_ID" --step "$STEP"
prime train checkpoints "$RUN_ID"

试验时,从微小的变化开始。如果每次尝试都获得相同的分数,则训练器几乎没有信号可以处理。接下来,查看高、中、低奖励发布,并询问分数是否真正反映了更好的数学问题解决能力。最后,查看令牌使用和截断等因素,以确保配置不会干扰训练信号。

如果奖励曲线告诉我们模型获得的奖励是多是少,则发布内容有助于说明原因。

第 3 步:查看 Nemotron 3 Nano 学习了多少

训练奖励就像衡量模型在家庭作业中的表现一样。在您进行测试之前,这不是真的。

运行成功后,Prime Intellect Lab 会上传最终的 LoRA 适配器。确认训练构件已准备就绪,然后检查其部署状态:

prime deployments list

当前未启用的 Ready 适配器可显示为 NOT_DEPLOYED。请求部署后,其服务状态通过 DEPLOYING 移动到 DEPLOYED

Checkpoint:仅在最终适配器存在并准备好部署后才继续。在没有可用适配器的情况下完成训练过程并非本教程所承诺的神器。

您可以从训练控制面板下载适配器。要通过托管推理进行查询,请部署:

prime deployments list
prime train checkpoints "$RUN_ID" --status READY

export ADAPTER_ID="<adapter-id>"
export ADAPTED_MODEL="$NANO:$ADAPTER_ID"

prime deployments create "$ADAPTER_ID" --plain
COLUMNS=300 NO_COLOR=1 prime deployments list --plain

部署可创建计费推理端点。状态为 DEPLOYED 后,模型标识符会将 Nano 与适配器 ID 相结合:

nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16:<adapter-id>

现在重复基准命令,仅更改模型标识符保持环境、任务数量、部署数量、采样设置和奖励不变。如果更改的时间比模型多,则比较难以解读。

# Continue only after the adapter reports DEPLOYED.
prime eval run math-python \
  --provider prime \
  --model "$ADAPTED_MODEL" \
  --num-examples 32 \
  --rollouts-per-example 1 \
  --max-concurrent 8 \
  --env-args "$MATH_EVAL_ARGS" \
  --sampling-args "$MATH_SAMPLING" \
  --timeout 300 \
  --max-retries 2 \
  --save-results \
  --disable-tui \
  --abbreviated-summary

您的结果应包含以下内容,这些内容展示了上面使用的相同评估配置,显示了在同一示例集中,与基准模型相比,平均奖励有所增加。此结果显示,我们的模型已学会有效地更好地完成任务:

...
--- All ---
Rewards:
reward: avg - 0.906, std - 0.291
...

这是初始模型无法正确求解的相同提示:

# System: 
Use Python for all calculations. Give your answer inside \boxed{}.

In addition to the Python standard library, you have access to: numpy sympy scipy.
# User: 

If $2^8=4^x$, what is the value of $x$?

# Assistant Tool Turn:

sp.solve(sp.Eq(2**8, 4**x), x)
...# Assistant:

We can rewrite the equation using the same base.

\[
2^8 = 4^x \quad\Longrightarrow\quad 2^8 = (2^2)^x = 2^{2x}.
\]

Since the bases are equal, the exponents must be equal:

\[
8 = 2x \;\Longrightarrow\; x = \frac{8}{2}=4.
\]

\[
\boxed{4}
\]

图 3 显示了我们之前看到的同一组评估提示上的奖励分布,您可以看到,模型可以得到更多正确的奖励:

在同样的 32 个阻碍问题上,准确率从 21.9% (7 月 32 日) 提高到 90.6% (29 月 32 日) ,绝对提升了 68.75 个百分点。在基准测试和最终测试结果不同的 24 个提示词中,有 23 个得到了改进,1 个得到了改进。此外,Nemotron 3 Nano 在总花费不到 5 美元的情况下也能更好地完成这项任务。

要删除适配器部署,您可以发出以下命令进行清理:

prime deployments delete "$ADAPTER_ID" --plain

请参阅 Prime Intellect 指南,了解如何部署 LoRA 适配器以进行部署状态的推理,以及与 OpenAI 兼容的推理示例。

使用 Prime Intellect Lab 训练更大的模型:

现在我们已经介绍了如何使用 Prime Intellect Lab 对 Nemotron 3 Nano 进行简短训练的示例,您可能会问自己:“如果我想训练更大的模型,该怎么办?难点多了吗?”答案是:一点也不。借助托管训练的便利性,我们可以简单地修改模型标识符,并使用以下命令运行完全相同的工作流:

训练 Nemotron 3 Super

再次运行实时目录检查:

prime train models

确认供货情况和当前定价,然后将模型系列替换为:

model = "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16"

遵循相同的实验原则:先设定基准,检查奖励变化情况,在未改变的设置下进行训练和重新测试。

训练 Nemotron 3 Ultra

Nemotron 3 Ultra 是该系列中的高容量选项,Prime Intellect 支持 NVIDIA Blackwell 基础架构上的托管强化学习。使用以下命令验证您是否有权访问 Ultra 的托管训练: 

prime train models

如果您看到它,请将模型行替换为: 

model = "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4"

开始自定义 Nemotron 3

定制是指如何为我们的用例定制 AI。如果不进行定制,我们只能处理模型开箱即用的任何行为,而且当低成本模型可以适应我们所需的任务时,我们可能会过度购买具有更广泛功能的模型。

NVIDIA Nemotron 3 等开放模型与 Prime Intellect Lab 等托管训练平台相结合,使这一过程更容易启动。最有价值的不仅仅是提供可用的权重或管理基础架构。整个改进循环都可以被检查和重复。

访问 Nemotron 开发者页面,获取入门资源。在 build.nvidia.com 上探索 Hugging Face 上的开放 Nemotron 模型和数据集以及 Blueprints

NVIDIA 论坛Discord 上的 Nemotron 频道上与 Nemotron 直播教程和开发者社区互动。

通过订阅 NVIDIA 新闻 并在 LinkedInXDiscordYouTube 上关注 NVIDIA AI,及时了解 NVIDIA Nemotron 的最新动态。

标签