Start Customizing NVIDIA Nemotron 3 Nano with Prime Intellect Lab in Minutes NVIDIA and Prime Intellect Lab have partnered to enable developers to customize the NVIDIA Nemotron 3 Nano 30B-A3B model using reinforcement learning with verifiable rewards on the Python Math environment, with a local setup taking about five minutes. The tutorial demonstrates how to produce a downloadable LoRA adapter via Prime Intellect Lab's training-as-a-service platform, making model customization more accessible for tasks such as Python math problem-solving. Customization is what enables developers to take a general model and tailor it to use cases, domains, languages, and more. However, customization comes with a few challenges. It requires infrastructure https://www.nvidia.com/en-us/glossary/ai-infrastructure/ , technical expertise, and software specific to the workflow, as well as resources such as GPUs and the ability to use them effectively. It also depends on specialized https://www.nvidia.com/en-us/glossary/specialized-ai/ domain knowledge: What algorithm should I use? What environment should I use? How do I know whether the model actually learned? Customization can appear daunting. With open models such as the NVIDIA Nemotron 3 https://developer.nvidia.com/topics/ai/nemotron?ncid=pa-srch-goog-599191& bt=797127771541& bk=nemotron%203%20nano& bm=p& bn=g& bg=194751055082&gad source=1&gad campaignid=23551395576&gclid=Cj0KCQjwsMLSBhD9ARIsAIpUTDrOXKpC2yGt-53cC0B7meYuoOhLdAZd2Ull7iBAMGF1NCzuYRkdkqkaAo6DEALw wcB family—including Nano https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 , Super https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4 , and Ultra https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4 —combined with platforms such as Prime Intellect Lab that offer training as a service, the complete customization loop is much more accessible. In this tutorial, you’ll use Prime Intellect Lab to customize NVIDIA Nemotron 3 Nano with hosted reinforcement learning https://www.nvidia.com/en-us/glossary/reinforcement-learning/ and produce a downloadable LoRA adapter. The local setup takes about five minutes—that’s all. By the end of this blog, you’ll learn two things: - Customization is more accessible than ever. - Getting started with open models is easier than ever. What you’ll build We’re going to follow a simple flow for this tutorial: Baseline, train, and reevaluate—all using Nemotron 3 Nano—and resulting in a customized model for our task. To show how easy it is to get started with the robust customization tools we have at our disposal, we’ll be using a standard “hello world” example: Python Math. This tutorial applies to Nemotron 3 Super and Nemotron 3 Ultra. The video will also walk you through the more involved coding task that’s part of a companion notebook to this tutorial: What customization means Customization means taking a model and changing or adapting its trainable parameters so that it becomes more likely to do the kinds of tasks you want it to do successfully. There are many ways to do this. Depending on the problem, you might use supervised fine-tuning, parameter-efficient fine-tuning, preference optimization, reinforcement learning, or a combination of techniques. For a broader treatment, see the Selecting Large Language Model Customization Techniques https://developer.nvidia.com/blog/mastering-agentic-techniques-ai-agent-reinforcement-learning/ rag prompting sft and rl when to use what post. This tutorial focuses on reinforcement learning with verifiable rewards RLVR on the Python Math environment https://app.primeintellect.ai/dashboard/environments/primeintellect/math-python . The basic idea of the environment is simple: Use Python tools Python, numpy , sympy and scipy to do some math. Here’s an example of a prompt: 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$? NOTE: The environment has a default of 100 turns. For this experiment, we cap each rollout at five assistant turns. A direct response is one turn, and so a tool call with the final response is two of the 5 turns. This penalizes the model heavily for repeatedly calling tools without producing a final response. For a deeper introduction to reinforcement learning for agents https://www.nvidia.com/en-us/glossary/ai-agents/ , see the post Mastering Agentic Techniques: AI Agent Reinforcement Learning https://developer.nvidia.com/blog/mastering-agentic-techniques-ai-agent-reinforcement-learning/ . Why openness matters Open weights are an important part of the equation, but they aren’t the entire equation. Data, evaluation code, and training recipes also determine what you can understand, reproduce, and deploy. The NVIDIA Nemotron 3 family is published with open model resources, including weights, data, and recipes. You can explore the NVIDIA Nemotron developer resources https://developer.nvidia.com/topics/ai/nemotron , read Inside NVIDIA Nemotron 3 https://developer.nvidia.com/blog/inside-nvidia-nemotron-3-techniques-tools-and-data-that-make-it-efficient-and-accurate/ , and inspect the NVIDIA Nemotron repository https://github.com/NVIDIA-NeMo/Nemotron . These resources give a better view into how Nemotron was built and post-trained, the kinds of data and environments that were used, and where your own customization should differ. Prerequisites For this tutorial, you’ll need: - A development environment with curl and a supported Python 3 installation. - A Prime Intellect account with access to Hosted Training and billing configured. - Internet access for the Prime CLI, environment package, hosted model, and adapter deployment. - About 5-15 minutes. Prime Intellect handles the hosted rollout, training, and inference infrastructure; you don’t need to manage a local GPU cluster. Note: Model availability and pricing change over time. Treat the live CLI catalog as the source of truth rather than copying an identifier or price from a static article. Customize Nemotron 3 Nano in three steps Let’s get into the simple steps required to customize your very own Nemotron 3 Nano. Step 1: Get a Baseline First, install the Prime CLI, authenticate, and create a Prime Intellect Lab workspace: 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 creates the workspace structure and installs the verifiers tooling. The longer-running evaluation and training steps come next. Inspect the environment before using it: prime env info primeintellect/math-python --version 0.1.10 prime env inspect primeintellect/math-python@0.1.10 README.md Pin the exact environment package in the workspace: uv add "math python==0.1.10" \ --index https://hub.primeintellect.ai/primeintellect/simple/ uv lock --check Now check the live hosted training catalog: prime train models prime inference models Checkpoint: Continue only if the output contains nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 and shows the current training, input, and output prices. Use the following command to grab a quick baseline on our task so we can show if the model improved after training: 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 Your results should look similar to the following, which showcases that the model starts off doing rather poorly and has a fairly low accuracy. ... --- All --- Rewards: reward: avg - 0.219, std - 0.413 ... This is an example of a failing prompt for our baseline model, in which the model fails to produce a boxed response because it exhausted five turns calling unsupported tools: 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 Figure 1 is an example of our reward distribution on this initial evaluation. The reward is binary: 1 means the model produced a correct response, and 0 means the model produced an incorrect or missing response. Step 2: Take Nemotron 3 Nano to school To get started on customizing Nemotron 3 Nano, the first thing we’ll do is create 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 } This config outlines how we want to train our model. The trainer samples eight attempts for each selected task, giving it a comparative signal inside each rollout group. Four groups form a batch of 32, and caps the number of rollouts being assembled concurrently for this small run. Launch the run: prime train configs/rl/nemotron-3-nano-math-python-100step.toml Prime prints the parsed configuration, current price, and environment action status before asking for confirmation. After you confirm, the CLI returns a run ID and a dashboard URL. Evaluation and training continue after that point. Checkpoint: Save the run ID. The launch output should show the exact Nano model, the pinned Math Python environment, live pricing, and a successful environment action check. The dashboard shows reward curves, reward distributions, and individual rollouts. The CLI exposes the same evidence: export RUN ID="