- Дата публикации
Как Amazon учит многошаговых ИИ‑агентов на Nova через SageMaker HyperPod: полный гайд по инфраструктуре
Что нового
Amazon запустила готовую инфраструктуру для обучения многошаговых (multi‑turn) RL‑агентов на моделях Amazon Nova с помощью Amazon SageMaker HyperPod и SDK Nova Forge. Это не просто ещё один туториал по RLHF, а рабочий конвейер для сложных агентных сценариев.
Ключевые новшества:
- Многошаговое RL «из коробки» для Nova: обучение не одной реплики ответа, а целой последовательности действий агента — с учётом инструментов, ошибок и восстановления.
- Полностью управляемый, событийный пайплайн:
- вы загружаете
.jsonlфайл в S3 в префиксtraining-data/; - Amazon EventBridge запускает AWS Step Functions;
- Step Functions поднимает вычислительные ресурсы и стартует обучение.
- вы загружаете
- Двухфазная инфраструктура:
- один раз разворачиваются «долгоживущие» ресурсы (VPC, EKS/HyperPod, ECS, S3, IAM, Step Functions);
- под каждый запуск обучения создаются временные ресурсы (Lambda, SQS, DynamoDB, Fargate‑таски), которые Nova Forge управляет сама.
- Поддержка нескольких моделей Nova: можно тренировать
NOVA_MICRO,NOVA_LITE,NOVA_LITE_2иNOVA_PRO. В примере используетсяNOVA_LITE_2. - Готовая среда Wordle: в качестве демо‑задачи модель учится играть в Wordle. Это шаблон, который легко заменить на свой агент (например, для работы с API или CRM).
- Автоматическая маршрутизация вознаграждений: Nova Forge SDK поднимает прокси‑слой, SQS‑очереди и DynamoDB для трекинга диалогов и доставки reward‑сигналов между моделью и средой.
- Поддержка GRPO (Group Relative Policy Optimization): обучение идёт с использованием GRPO‑обновлений весов.
- Две схемы обучения:
RFT_MULTITURN_FULL(полное дообучение) иRFT_MULTITURN_LORA(LoRA‑адаптация), переключаются параметром. - Масштабируемость на P5‑GPU:
- рекомендуемый минимум — 10 экземпляров
ml.p5.48xlarge; - для продакшена — 12–14 экземпляров;
- поддерживается также
ml.p5en.48xlarge; - по умолчанию — 4 generation replicas на vLLM.
- рекомендуемый минимум — 10 экземпляров
- Прозрачная стоимость:
- минимальная конфигурация: 10× ml.p5.48xlarge — примерно $786/час;
- продакшн‑конфигурация: 12× ml.p5.48xlarge — примерно $1 180/час;
- плюс мелкие расходы на EKS control plane ($0,10/час), NAT (~$0,045/час), Fargate (~$0,15–0,30/час), S3, Lambda, SQS, DynamoDB.
Amazon параллельно предлагает и полностью серверный вариант multi‑turn RL в SageMaker AI, но описываемая инфраструктура — для тех, кому нужен полный контроль над средой, оркестрацией и инстансами.
Как это работает
Общая схема
Сборка выглядит как типичный MLOps‑конвейер для RL‑агентов, только почти всё уже за вас запрограммировано:
- Вы загружаете датасет в S3 в префикс
training-data/. - Amazon EventBridge ловит событие
PutObjectи вызывает Lambda‑функциюS3TriggerFn. - Lambda объединяет путь к файлу с параметрами из
cdk.jsonи запускает AWS Step Functions. - Step Functions:
- поднимает/конфигурирует SageMaker HyperPod (через EKS);
- разворачивает reward‑среду на ECS Fargate;
- инициирует Nova Forge SDK, который создаёт сервисные ресурсы (Lambda, SQS, DynamoDB);
- запускает тренировочный джоб.
- Модель Nova генерирует ответы через vLLM‑реплики на HyperPod.
- Ответы идут через Nova Forge в reward‑окружение на Fargate, там оцениваются и превращаются в reward‑сигналы.
- Reward‑сигналы возвращаются на тренинг‑под, который делает GRPO‑обновления весов.
- После окончания запуска временные ресурсы можно удалить, чтобы не платить за простой.
Три вычислительных слоя
1. Amazon SageMaker HyperPod (EKS)
- Основное место, где живёт модель и идёт обучение.
- Запускаются:
- training primary pod;
- worker pods;
- vLLM‑реплики генерации (по умолчанию 4) на
ml.p5.48xlarge.
- Здесь считаются градиенты и применяются GRPO‑обновления.
2. Amazon ECS на AWS Fargate
- Здесь крутится reward‑окружение:
- встроенная среда
wordle; - либо ваш Bring Your Own Orchestrator (BYOO) под
custom-environments/.
- встроенная среда
- Fargate‑таски принимают ответы модели через SQS, считают reward по вашей схеме и отправляют его обратно.
3. Amazon Nova Forge SDK
- Поднимает прокси‑слой между моделью и средой:
- Lambda для проксирования диалогов;
- SQS FIFO‑очереди для запросов и ответов;
- DynamoDB для хранения состояния диалогов между ходами.
- Сам управляет своим CloudFormation‑стеком и жизненным циклом этих ресурсов.
Двухфазное развёртывание
Фаза 1: один раз через AWS CDK
Команда cdk deploy разворачивает фундамент:
- VPC;
- EKS‑кластер и интеграцию с SageMaker HyperPod;
- HyperPod Restricted Instance Group с нужным числом
ml.p5.48xlarge; - ECS‑кластер под Fargate;
- S3‑бакет для данных;
- IAM‑роли и политики;
- Step Functions пайплайн;
- SNS‑топик для алертов;
- Lambda‑функции и их контейнерные образы (через Docker и CodeBuild).
По времени:
- EKS‑кластер — ~15 минут;
- установка Helm‑чарта HyperPod через CodeBuild — ~5 минут;
- создание HyperPod‑кластера — ~15–25 минут (зависит от доступности P5);
- сборка Lambda‑образов — ~5 минут.
Итого: 30–40 минут до готовой инфраструктуры.
Фаза 2: каждый запуск обучения
Когда вы кладёте .jsonl в training-data/, EventBridge запускает Step Functions, а Nova Forge SDK разворачивает свой стек:
- Lambda‑функции для проксирования диалогов;
- SQS FIFO‑очереди для маршрутизации сообщений;
- DynamoDB‑таблицу для состояния;
- Fargate‑таски с reward‑воркерами.
После завершения обучения эти ресурсы можно снести, чтобы не платить за простаивающие таски и очереди.
Формат данных и процесс обучения
Данные — это .jsonl, где каждая строка описывает одну игру Wordle:
{"id": "wordle_train_001", "metadata": {"prompt": "Guess the 5-letter word", "answer": "crane"}}
{"id": "wordle_train_002", "metadata": {"prompt": "Guess the 5-letter word", "answer": "slate"}}
{"id": "wordle_train_003", "metadata": {"prompt": "Guess the 5-letter word", "answer": "plumb"}}
id— уникальный идентификатор примера.metadata.prompt— начальный промпт, который видит модель.metadata.answer— правильный ответ, по нему среда считает reward.
Каждый пример превращается в многошаговый диалог:
- Модель делает предположение.
- Среда отвечает фидбеком (как в Wordle — какие буквы угаданы).
- Модель корректирует ответ.
- Цикл продолжается, пока задача не решена или не закончились ходы.
По метрикам Amazon ожидает, что в Wordle‑среде модель сойдётся за 50–100 шагов обучения. Средний reward растёт с ≈0 до 0,6–0,8, когда модель учится сужать пространство ответов по фидбеку.
Ключевые параметры инфраструктуры и обучения
Параметры задаются в cdk.json и при желании переопределяются через cdk deploy -c ....
Инфраструктура:
project_tag— префикс для имён ресурсов (часть имени EKS‑кластера, HyperPod‑кластера, тегов S3).sdk_resource_prefix— префикс для ресурсов, которые создаёт Nova Forge SDK (его CloudFormation‑стеки, Lambda, SQS).instance_type— по умолчаниюml.p5.48xlarge(можноml.p5en.48xlarge).instance_count— по умолчанию 10.nova_model—NOVA_MICRO,NOVA_LITE,NOVA_LITE_2,NOVA_PRO(в примереNOVA_LITE_2).vf_env_id—wordleили ваш кастомный env.use_custom_env/custom_env_id— включение BYOO‑окружения изcustom-environments/.reward_cpu/reward_memory— по умолчанию2048CPU и4096 MiBRAM на Fargate‑таск.eks_kubernetes_version—1.32.
Тренинг:
training_method—RFT_MULTITURN_FULLилиRFT_MULTITURN_LORA.max_steps— число шагов обучения (по умолчанию 10, но для Wordle рекомендуют 50–100 для сходимости).generation_replicas— число vLLM‑реплик (по умолчанию 4).global_batch_size— глобальный размер батча (по умолчанию 64).
Переопределение при деплое:
cdk deploy -c instance_count=1 -c max_steps=20
Что это значит для вас
Для кого это вообще нужно
Этот стек нужен не тем, кто просто хочет «поболтать» с LLM, а тем, кто строит агентов, которые:
- делают несколько шагов подряд;
- ходят в базы данных и внешние API;
- проверяют данные перед действием;
- умеют откатываться и восстанавливаться после ошибок.
Классический RLHF оптимизирует одну реплику в вакууме. Multi‑turn RL, который реализует Nova Forge, оптимизирует целую сессию. Это важно, если вы хотите, чтобы агент:
- проверял ввод пользователя перед критичным действием;
- не ломал воркфлоу из‑за одного сбоя API;
- корректно обрабатывал сложные сценарии с ветвлениями.
Где это полезно
Примеры сценариев, где такой стек даёт смысл:
- Корпоративные агенты:
- ассистент, который сам собирает данные из нескольких внутренних сервисов, сверяет результаты и выдаёт итоговый отчёт;
- бота, который оформляет заявки, проверяет лимиты, согласует с несколькими системами и только потом завершает операцию.
- Автоматизация поддержки:
- агент, который ведёт диалог, ходит в CRM, биллинг, лог‑хранилища, и корректно отрабатывает ретраи при ошибках API;
- сценарии, где важно не «красиво ответить», а довести кейс до решения.
- Сложные аналитические пайплайны:
- агент, который сам собирает данные, строит промежуточные гипотезы, перепроверяет их и только потом формирует выводы;
- ML‑оркестратор, который запускает джобы, мониторит их и при сбоях корректирует план.
- Игровые и симуляционные среды:
- обучение агентов в абстрактных задачах вроде Wordle, а потом перенос принципов на реальные бизнес‑среды.
Где это избыточно
Эта инфраструктура не нужна, если вы:
- просто делаете чат‑бота без сложных действий и инструментов;
- хотите один‑два раза дообучить модель на своём датасете с SFT или RAG;
- не готовы платить сотни долларов в час за P5‑кластер;
- не хотите управлять AWS‑инфраструктурой (VPC, EKS, IAM и т.д.).
Тогда проще использовать:
- обычный SFT на SageMaker;
- готовые серверные multi‑turn RL возможности SageMaker AI (без собственного HyperPod);
- сторонние платформы RLHF как сервис.
Ограничения и доступность
- Вам нужен аккаунт AWS с правами на создание VPC, EKS, SageMaker HyperPod, IAM, Step Functions.
- Нужна подписка на Amazon Nova Forge, чтобы получить доступ к SDK и training API.
- Нужна квота минимум на 10×
ml.p5.48xlarge(илиml.p5en.48xlarge). Для продакшена рекомендуют 12–14 инстансов. - Инфраструктура стоит дорого: при работе кластера счёт идёт на $786–$1 180 в час только за HyperPod.
Если у вас нет доступа к P5‑инстансам или вы работаете из региона, где Nova Forge недоступна, — этот стек вы не развернёте. Для России это часто означает необходимость зарубежного аккаунта AWS и соответствия требованиям Amazon.
Практический совет по использованию
- Если вы строите критичный для бизнеса агента, который автоматизирует реальные процессы, и у вас уже есть серьёзный AWS‑футпринт, эта инфраструктура оправдана.
- Если вы хотите поэкспериментировать с multi‑turn RL, начните с минимальной конфигурации (1–2 инстанса для теста, короткие запуски, LoRA‑режим), а Wordle используйте как sanity‑check.
- Обязательно:
- автоматизируйте очистку ресурсов (
./cleanup.sh); - следите за CloudWatch метриками reward и очередями SQS;
- заранее продумайте, как вы будете логировать и дебажить своё кастомное окружение.
- автоматизируйте очистку ресурсов (
Место на рынке
Amazon здесь решает конкретную боль: обучение многошаговых агентов, которые живут внутри AWS и используют Nova. Это не конкурирует напрямую с GPT‑4o или Claude 3.5 Sonnet как «моделями общего назначения». Это инфраструктура для тех, кто уже выбрал Nova и AWS как основную платформу.
Что можно сказать по позиционированию:
- По цене это тяжёлый enterprise‑уровень: десятки P5‑инстансов за сотни долларов в час. Это сопоставимо с крупными кластерами под обучение GPT‑класса моделей, а не с «поиграться вечером».
- По контролю над инфраструктурой стек ближе к «собственному кластеру RLHF», чем к managed‑API вроде OpenAI или Anthropic. Вы контролируете VPC, EKS, HyperPod, ECS, IAM.
- По функции это альтернатива самосборным решениям на базе Ray/RLlib, Kubernetes и своих очередей, но заточенная под Nova и глубоко интегрированная с SageMaker.
Прямые сравнения с конкретными RL‑решениями других вендоров в исходных данных нет, поэтому ориентируйтесь на то, насколько глубоко вы уже в AWS‑экосистеме и Nova.
Установка
Предварительные требования
Перед развёртыванием у вас должно быть:
- Подписка на Amazon Nova Forge.
- Квота на SageMaker HyperPod: минимум 10×
ml.p5.48xlarge(илиml.p5en.48xlarge), для продакшена — 12–14. - CDK‑окружение: выполните
cdk bootstrapдо первого деплоя. - Python 3.12+ для CDK‑приложения и AWS Lambda.
- AWS CDK v2:
npm install -g aws-cdk
- AWS CLI v2, настроенный с правами на создание VPC, EKS, SageMaker HyperPod, IAM, Step Functions.
- Docker для сборки контейнеров Lambda с Nova Forge SDK.
Amazon честно предупреждает: при работе 10–12 ml.p5.48xlarge эта инфраструктура стоит $786–$1 180 в час. Если вы не тренируете — стек лучше снести.
Клонирование и установка зависимостей
git clone https://github.com/aws-samples/nova-multi-turn-rl-infra.git
cd nova-multi-turn-rl-infra
pip install -r requirements.txt
Конфигурация CDK
Отредактируйте cdk.json в секции context. Два обязательных параметра:
project_tag— уникальный префикс для имён ресурсов (например,my-nova-rl).sdk_resource_prefix— префикс для ресурсов Nova Forge SDK (например,nrl-myproject).
Ключевые параметры (фрагменты значений уже выше):
instance_typeinstance_countnova_modelvf_env_iduse_custom_env/custom_env_idreward_cpu/reward_memoryeks_kubernetes_versiontraining_methodmax_stepsgeneration_replicasglobal_batch_size
Переопределение при деплое:
cdk deploy -c instance_count=1 -c max_steps=20
Деплой инфраструктуры
Один раз разворачиваем базовый стек:
cdk deploy --require-approval never
Через 30–40 минут у вас будет готовая инфраструктура: VPC, EKS/HyperPod, ECS, S3, IAM, Step Functions, Lambda и SNS.
Как запустить обучение
Подготовка данных
Создайте файл training-data.jsonl в формате:
{"id": "wordle_train_001", "metadata": {"prompt": "Guess the 5-letter word", "answer": "crane"}}
{"id": "wordle_train_002", "metadata": {"prompt": "Guess the 5-letter word", "answer": "slate"}}
{"id": "wordle_train_003", "metadata": {"prompt": "Guess the 5-letter word", "answer": "plumb"}}
Убедитесь, что id уникален для каждой строки.
Автоматический запуск через S3
Получите имя бакета из CloudFormation outputs:
# Get the bucket name from CDK outputs
BUCKET=$(aws cloudformation describe-stacks --stack-name NovaMultiTurnRlStack \
--query "Stacks[0].Outputs[?OutputKey=='TrainingBucketName'].OutputValue" --output text)
# Upload: pipeline starts automatically
aws s3 cp training-data.jsonl s3://$BUCKET/training-data/training-data.jsonl
Когда файл попадает в training-data/, EventBridge ловит событие и вызывает S3TriggerFn. Функция собирает event для Step Functions, который дальше запускает пайплайн из пяти стадий. Прогресс можно смотреть в консоли Step Functions: вход/выход каждого шага, время, ретраи.
Ручной запуск для отладки
Если вы хотите менять параметры без повторной загрузки файлов, используйте скрипт setup.sh:
# Override training parameters for a quick test run
./scripts/setup.sh \
--data-path s3://$BUCKET/training-data/training-data.jsonl \
--max-steps 5 \
--global-batch-size 32 \
--training-method RFT_MULTITURN_LORA
Это удобно для экспериментов с числом шагов, размером батча и режимом обучения (Full vs LoRA) без правки cdk.json и полного redeploy.
Мониторинг и отладка
Пайплайн и логи
- Step Functions — главный дашборд. Каждый запуск показывает шаги, входные и выходные данные, время и историю ретраев.
- Каждый шаг пишет логи в отдельный CloudWatch Log Group.
Ориентировочные времена шагов:
- настройка инфраструктуры — 2–3 минуты;
- развёртывание reward‑воркеров — 1–2 минуты;
- валидация данных — <1 минуты;
- отправка тренинг‑джоба — 3–5 минут.
Очереди SQS в норме должны работать без устойчивого бэклога.
Алерты о сбоях
SNS‑топик (зашифрованный через KMS) шлёт уведомления при падении исполнения Step Functions. Подписка по email:
# Get the topic ARN from CDK outputs
TOPIC_ARN=$(aws cloudformation describe-stacks --stack-name NovaMultiTurnRlStack \
--query "Stacks[0].Outputs[?OutputKey=='AlertTopicArn'].OutputValue" --output text)
# Subscribe and confirm via email
aws sns subscribe \
--topic-arn $TOPIC_ARN \
--protocol email \
--notification-endpoint your-team@example.com
Если триггер от S3 не сработал
Проверьте dead-letter очередь для EventBridge→Lambda:
DLQ_URL=$(aws cloudformation describe-stacks --stack-name NovaMultiTurnRlStack \
--query "Stacks[0].Outputs[?OutputKey=='TriggerDlqUrl'].OutputValue" --output text)
aws sqs receive-message --queue-url $DLQ_URL --max-number-of-messages 5
Частые причины:
- неверное имя файла (ожидается расширение
.jsonl); - проблемы с IAM‑правами;
- лимиты по concurrency для Lambda.
Если обучение «зависло»
Чаще всего проблема в маршрутизации сообщений между моделью и reward‑средой. Nova Forge SDK даёт диагностический хелпер для SQS:
from rft_infra import check_all_queues
# Returns message counts (in-flight, available, delayed) for all FIFO queues
check_all_queues()
Если растёт бэклог в request‑очереди, а response‑очередь пустая — reward‑воркеры не обрабатывают запросы. Если наоборот — модель не читает ответы. Это помогает быстро локализовать проблему.
Здоровье HyperPod
Проверьте статус подов в кластере:
kubectl get pods -n kubeflow
- Все поды должны быть
RunningилиCompleted. Pending— не хватает ресурсов в Restricted Instance Group.CrashLoopBackOff— контейнер падает, смотрите логи:
kubectl logs <pod-name> -n kubeflow
Метрики обучения
В CloudWatch смотрите reward‑метрики по шагам. Для Wordle нормальная картина — рост среднего reward до 0,6–0,8 за 50–100 шагов.
Управление стоимостью и очистка
Полная очистка
Скрипт cleanup.sh останавливает:
- активные Step Functions исполнения;
- ECS‑таски;
- CloudFormation‑стек Nova Forge SDK;
- CDK‑стек.
Полное удаление:
./cleanup.sh
Если хотите сохранить данные в S3 (но продолжать платить за хранение):
./cleanup.sh --retain-data
Важно: не оставляйте HyperPod и NAT Gateway висеть без дела — счёт быстро вырастет.
Как снизить расходы
Amazon предлагает два подхода:
- Scale to zero:
- собрать кластер с одним инстансом и политиками авто‑масштабирования до нуля в простое;
- это уменьшает idle‑расходы.
- Планирование типов инстансов:
- использовать более дешёвые инстансы на этапах подготовки;
- переключаться на
ml.p5.48xlargeилиml.p5en.48xlarge, когда стартует основная нагрузка обучения.
Если вы запускаете эксперименты, держите сессии короткими, а кластер — минимальным.
Что дальше
Если вы хотите попробовать этот стек в бою:
- Клонируйте репозиторий:
aws-samples/nova-multi-turn-rl-infra. - Прочитайте документацию по Amazon SageMaker HyperPod.
- Ознакомьтесь с возможностями и ценами Amazon Nova.
- Настройте свой пайплайн с помощью AWS Step Functions Developer Guide.
- Замените Wordle‑окружение на своего агента: интеграцию с внутренними API, базами данных или бизнес‑процессами.
Если вы уже живёте в AWS и планируете серьёзных агентов на Nova, этот стек даёт готовый каркас для обучения многошагового поведения без ручной сборки всей оркестрации.