В эпоху генеративного искусственного интеллекта, когда модели становятся всё мощнее, возникает естественное желание адаптировать их под конкретные задачи. Однако настройка больших языковых моделей (LLM) долгое время оставалась прерогативой крупных корпораций с доступом к кластерам GPU и командам инженеров. Сегодня этот барьер рушится. Благодаря открытым весам моделей NVIDIA Nemotron 3 и платформам обучения как услуги (Training-as-a-Service), таким как Prime Intellect Lab, разработчики могут персонализировать модели прямо в браузере, не тратя недели на инфраструктуру.
В этой статье мы подробно разберем процесс кастомизации модели NVIDIA Nemotron 3 Nano с использованием метода обучения с подкреплением (Reinforcement Learning). Мы пройдем путь от базовой оценки до получения обученного LoRA-адаптера, который можно скачать и использовать. Весь процесс занимает около пяти минут настройки и несколько минут самого обучения. Это не просто теория — это рабочий пайплайн, который вы можете воспроизвести прямо сейчас.
01Почему кастомизация стала доступнее
Кастомизация — это процесс изменения обучаемых параметров модели, чтобы повысить вероятность успешного выполнения определенных задач. Раньше для этого требовалось глубокое понимание алгоритмов, наличие специализированного программного обеспечения и, самое главное, вычислительных ресурсов. Даже если у вас есть доступ к GPU, настройка окружения, управление памятью и отладка процессов обучения могут занять дни.
Семейство моделей NVIDIA Nemotron 3 (включая версии Nano, Super и Ultra) было выпущено с открытыми весами, данными и рецептами обучения. Это означает, что вы можете не только использовать модель, но и понять, как она была построена, и воспроизвести или улучшить этот процесс. Платформа Prime Intellect Lab берет на себя всю сложную инфраструктурную работу: хостинг среды выполнения, управление роутами (rollouts) и распределение вычислений. Вам остается только определить задачу и проанализировать результаты.
02Что такое RLVR и зачем нам Python Math
В данном руководстве мы используем метод Reinforcement Learning with Verifiable Rewards (RLVR). В отличие от обычного обучения с учителем, где модель просто копирует правильные ответы, RLVR позволяет модели учиться на основе обратной связи от среды. Мы предоставляем модели задачу, она пытается её решить, и если решение верно, она получает награду (reward). Если нет — штраф или нулевая награда.
Для демонстрации мы используем среду Python Math. Это стандартный «Hello World» для тестирования способности моделей к логическому мышлению и использованию инструментов. Задача модели — использовать библиотеки Python (numpy, sympy, scipy) для решения математических уравнений и выдавать ответ в специальном формате \boxed{}.
Пример промпта выглядит так:
# 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$?Среда ограничивает количество шагов (turns), которые модель может сделать. Если модель начинает бесконечно вызывать инструменты, не давая финального ответа, она получает сильный штраф. Это заставляет модель учиться быть более эффективной и точной.
03Подготовка окружения: первые пять минут
Прежде чем начать, убедитесь, что у вас есть:
- Среда разработки с установленным
curlи Python 3. - Аккаунт в Prime Intellect с настроенной оплатой (billing).
- Доступ в интернет для загрузки пакетов и взаимодействия с API.
Процесс установки занимает буквально минуту. Мы используем менеджер пакетов uv для быстрой установки CLI-инструментов Prime Intellect. Выполните следующие команды в терминале:
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 lab setup автоматически создает структуру папок и устанавливает необходимые инструменты верификации. Теперь, когда окружение готово, нужно зафиксировать версию среды выполнения, чтобы избежать конфликтов в будущем.
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Убедитесь, что в выводе присутствует модель nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 и указаны текущие цены на обучение и инференс. Это ваш ориентир для контроля расходов.
04Шаг 1: Базовая оценка (Baseline)
Прежде чем обучать модель, необходимо понять, как она справляется с задачей «из коробки». Это наша контрольная точка. Мы запустим оценку на 32 примерах из набора данных math.
Установите переменные окружения для конфигурации:
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Результаты базовой линии, скорее всего, будут скромными. В нашем тесте средняя награда составила 0.219. Это означает, что модель часто ошибается или не может сформировать корректный ответ в требуемом формате. Например, на вопрос If $2^8=4^x$, what is the value of $x$? модель могла выдать пустой ответ или зациклиться на вызове инструментов, исчерпав лимит в 5 ходов.


На графике распределения наград (см. рисунок ниже) видно, что большинство примеров получили награду 0, что свидетельствует о неудачном решении. Это нормальная ситуация для базовой модели, которая не была специализирована на математических вычислениях с использованием кода.
05Шаг 2: Обучение с подкреплением
Теперь, когда мы знаем, с чем работаем, приступим к обучению. Мы создадим конфигурационный файл 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 }Этот файл задает параметры обучения:
- max_steps = 100: Модель будет обновлять свои веса 100 раз.
- rollouts_per_example = 8: Для каждого примера задачи модель делает 8 попыток, что позволяет алгоритму сравнивать результаты и выбирать лучший путь.
- lora_alpha = 16: Параметр, контролирующий масштаб адаптации LoRA.
Запустите обучение:
prime train configs/rl/nemotron-3-nano-math-python-100step.tomlПосле подтверждения CLI выдаст ID запуска и ссылку на дашборд. В терминале вы сможете отслеживать прогресс:
export RUN_ID=""
prime train logs "$RUN_ID" --follow
prime train progress "$RUN_ID"
prime train distributions "$RUN_ID" --type rewards На дашборде вы увидите кривую обучения. Изначально награда может быть низкой, но по мере прохождения шагов модель начинает находить более эффективные стратегии решения задач. Важно следить не только за общей кривой, но и за отдельными роутами (rollouts), чтобы убедиться, что модель действительно учится решать задачи, а не просто находит обходные пути.
06Шаг 3: Оценка результатов и деплой
После завершения обучения Prime Intellect Lab автоматически создает LoRA-адаптер. Проверьте статус деплоя:
prime deployments list
prime train checkpoints "$RUN_ID" --status READYКак только статус станет READY, скопируйте ID адаптера и разверните его:
export ADAPTER_ID=""
export ADAPTED_MODEL="$NANO:$ADAPTER_ID"
prime deployments create "$ADAPTER_ID" --plain Теперь запустите ту же команду оценки, что и на этапе базовой линии, но укажите новый идентификатор модели $ADAPTED_MODEL. Это критически важно: все параметры окружения и выборки должны остаться неизменными, чтобы сравнение было честным.
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Результаты будут впечатляющими. Средняя награда выросла с 0.219 до 0.906. Точность на тестовой выборке из 32 примеров увеличилась с 21.9% (7 из 32) до 90.6% (29 из 32). Это абсолютный прирост в 68.75 процентных пунктов.
Посмотрите, как модель теперь решает ту же задачу, что и раньше:
# 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}
\]Модель корректно использует библиотеку sympy, строит уравнение, решает его и выдает ответ в требуемом формате. При этом общее стоимость обучения составила менее 5 долларов США, что делает этот метод невероятно экономичным.

07Что это значит на практике
Этот пример демонстрирует фундаментальный сдвиг в разработке AI. Раньше для создания специализированного AI-агента, способного решать математические задачи с помощью кода, требовалась команда инженеров, месяцы работы и бюджет в десятки тысяч долларов. Сегодня любой разработчик с доступом к интернету и аккаунтом в облачной платформе может повторить этот процесс за несколько минут.
Ключевые выводы:
- Демократизация доступа: Платформы типа Prime Intellect Lab устраняют барьеры входа, позволяя сосредоточиться на логике задачи, а не на управлении GPU.
- Воспроизводимость: Благодаря открытым весам и рецептам NVIDIA Nemotron 3, вы можете не только использовать модель, но и понимать, почему она работает, и улучшать её.
- Экономическая эффективность: Обучение с подкреплением для узкой задачи обходится в копейки, что делает итеративную разработку и тестирование гипотез рентабельными.
Этот пайплайн применим не только к модели Nano, но и к более крупным версиям Nemotron 3 Super и Ultra. Вы можете адаптировать его для других задач, просто изменив среду выполнения и промпты. Открытый мир AI теперь доступен каждому, кто готов экспериментировать.
Чтобы очистить ресурсы после обучения, удалите деплой:
prime deployments delete "$ADAPTER_ID" --plainТеперь вы вооружены знаниями и инструментами для собственной кастомизации. Попробуйте запустить этот процесс и посмотрите, как ваша модель превращается из общего помощника в узкоспециализированного эксперта.
Источник: NVIDIA Developer ↗
