Кастомизация Nova LLM в AWS: SFT, RFT, DPO, борьба с забыванием | Гайд 2026 | AiManual
AiManual Logo Ai / Manual.
29 Мар 2026 Гайд

Полный гайд по кастомизации Nova-моделей в AWS: от SFT до RFT и борьбы с катастрофическим забыванием

Пошаговый гайд по тонкой настройке Nova-моделей в AWS на 29.03.2026. Как сделать Supervised и Reinforcement Fine-Tuning без катастрофического забывания с помощь

Забудьте про универсальных ботов. Пора делать специалиста

Вы берете мощную LLM вроде Nova 2, кормите ее тысячами тикетов из Jira, чтобы она понимала ваш workflow. А через неделю она путает Python с пайтоном-змеей и забывает, как решать простые уравнения. Знакомо? Это катастрофическое забывание — главная причина, почему 70% проектов по кастомизации моделей проваливаются. Модель так усердно учится новому, что стирает фундамент.

До 2025 года это была черная магия. Теперь — инженерная задача. AWS выпустила Nova Forge SDK, который превращает тонкую настройку из адского кошмара в управляемый конвейер. Особенно в связке с SageMaker AI Training Jobs. Я прошел этот путь от провала к успеху и покажу, как настроить модель для ответов на StackOverflow, не превратив ее в узкого идиота.

Актуальность на 29.03.2026: гайд использует Nova Forge SDK v2.3, SageMaker со встроенной поддержкой Direct Preference Optimization (DPO) и фреймворк борьбы с забыванием через смешанные датасеты — тот самый, что описан в нашем разборе. Если вы используете старые версии — готовьтесь к боли.

Почему ваша модель глупеет после дообучения? Механика забывания

Катастрофическое забывание — это не баг, а фундаментальное свойство нейросетей. Представьте, что модель — это библиотека. Вы приходите и в отдел «Программирование» ставите новые книги только про ваш корпоративный код. Старые тома по алгоритмам и структурам данных выкидываете на улицу, чтобы освободить место. Библиотека становится специализированной, но бесполезной для кого-либо еще.

В весах модели происходит то же самое. Градиенты от вашего узкого датасета (вопросы-ответы по коду) агрессивно перезаписывают общие представления, выученные на триллионах токенов. Решение — смешанное обучение. Вы подмешиваете в новый датасет немного «общих знаний» из оригинального претренинга. Так модель учится новому, но регулярно вспоминает старое. Nova Forge делает это автоматически.

Инструментарий 2026: Nova Forge SDK и SageMaker AI Jobs

Забудьте про скрипты на коленке. Современный пайплайн выглядит так:

  • Nova Forge SDK: Фреймворк от AWS, который стандартизирует процесс SFT (Supervised Fine-Tuning) и RFT (Reinforcement Fine Tuning). Его главный трюк — встроенные стратегии предотвращения забывания через data mixing. Вы просто указываете процент общего датасета для подмешивания.
  • Amazon SageMaker AI Training Jobs: Инфраструктура для обучения. В 2026 году они избавились от головной боли с ролями IAM и конфигурацией кластеров. Как пишут в блоге, теперь все шаблоны лежат в S3, а метрики GPU мониторятся из коробки.
  • PEFT/LoRA: Параметрически эффективная настройка. Не трогаем все 70B параметров модели Nova 2, а дообучаем только малые адаптеры. Это в разы дешевле и снижает риск забывания.

Настройка всей этой связки раньше отнимала дни. Сейчас — часы. Главное — не наступить на грабли, о которых я расскажу в конце.

1Собираем и готовим датасет: не StackOverflow, а его дух

Мы сделаем модель — эксперта по программированию. Берем дамп StackOverflow (публично доступен), но не все 20 млн вопросов. Нам нужны clean data: вопросы с высоким рейтингом, принятым ответом и метками Python, AWS, SQL.

Формат для SFT в Nova Forge — JSONL, где каждая строка:

{
  "instruction": "How to filter a list in Python?",
  "context": "",
  "response": "You can use list comprehension: [x for x in original_list if x > 5]..."
}
💡
Секрет в балансе. Если 100% данных — код, модель забудет естественный язык. Добавьте 10-15% общих диалогов (например, из датасета OpenHermes) в тренировочный микс. Nova Forge сделает это за вас через параметр base_data_mix_ratio.

2Настраиваем окружение SageMaker и запускаем SFT Job

Здесь многие обламываются. Не нужно вручную поднимать инстансы с GPU. Используем высокоуровневый API SageMaker Training Jobs.

from sagemaker.jumpstart.estimator import JumpStartEstimator
from nova_forge.sft import SFTTrainerConfig

# Конфигурация SFT тренера от Nova Forge
sft_config = SFTTrainerConfig(
    model_id="amazon.nova2-70b-instruct",  # Актуальная модель на 2026
    dataset_path="s3://my-bucket/stackoverflow-train/",
    base_data_mix_ratio=0.15,  # Подмешиваем 15% общих данных
    lora_rank=64,
    learning_rate=2e-4,
    num_train_epochs=3
)

# Используем предопределенный образ SageMaker для Nova Forge
estimator = JumpStartEstimator(
    model_id="nova-forge-sft-v2-3",
    instance_type="ml.p4d.24xlarge",  # или ml.g6.48xlarge для H200
    role=execution_role,
    environment={"CONFIG": sft_config.to_json()}
)

estimator.fit()

SageMaker сам выделит кластер, скачает образ с Docker Hub, запустит обучение и загрузит артефакты (адаптеры LoRA) в S3. Мониторить можно через встроенные метрики GPU — больше не надо парсить CloudWatch.

3Reinforcement Fine Tuning (RFT) с Direct Preference Optimization

SFT научила модель давать технически правильные ответы. RFT сделает их полезными, краткими и дружелюбными. Для этого нужен датасет предпочтений: пары «хороший ответ / плохой ответ» на один вопрос.

Собираем его, используя саму модель: генерируем 4 варианта ответа на вопрос, затем аннотаторы (или другая LLM-судья) ранжируют их. Формат для DPO в Nova Forge:

{
  "prompt": "Explain Python decorators",
  "chosen": "Decorators are functions that modify...",
  "rejected": "In Python, decorators are a thing that does stuff..."
}

Запуск RFT Job почти идентичен SFT, но используем конфиг RTFTrainerConfig и указываем путь к датасету предпочтений. Критически важно использовать ту же базовую модель и те же адаптеры LoRA, что и после SFT. Иначе вы начнете с нуля.

Ошибка новичка №1: запускать RFT на сырой базовой модели, а не на выходе SFT. Вы будете учить модель с нуля быть вежливой, но она забывает код. Все этапы — цепочка: Базовая модель -> SFT -> RFT.

4Развертывание и проверка на забывание

Артефакты обучения — это файлы адаптеров LoRA (часто всего несколько гигабайт). Развернуть кастомизированную модель в продакшн можно через KServe в Kubernetes или родной Amazon Bedrock. Для Bedrock нужно загрузить адаптеры в S3 и создать собственную модель (Custom Model), указав базовый идентификатор Nova 2.

Как проверить, что модель не забыла основы? Создайте оценочный датасет из трех частей:

  1. Специализация: 50 сложных вопросов по коду из вашей domain.
  2. Общие знания: 30 вопросов на логику, математику, эрудицию (например, «Сколько планет в Солнечной системе?»).
  3. Стиль: 20 промптов на проверку тона и формата ответов.

Прогоните эту оценку на базовой модели, после SFT и после RFT. Если результаты по части 2 упали больше чем на 15% — ваша стратегия смешивания данных дала сбой. Возвращайтесь к шагу 1 и увеличьте base_data_mix_ratio.

Грабли, на которых вы точно споткнетесь (и как их обойти)

  • Экономия на данных для смешивания. Нельзя взять случайные тексты из Википедии. Нужен качественный, диалоговый датасет, стилистически близкий к целевой задаче. Иначе модель начнет «заикаться».
  • Слишком высокий learning rate. В погоне за скоростью выставляют LR 1e-3. Адаптеры LoRA переобучаются за одну эпоху и грубо перезаписывают веса. Держитесь диапазона 1e-5 — 5e-5 для RFT.
  • Игнорирование оценки во время обучения. В SageMaker можно задать оценочный датасет и критерий ранней остановки. Не полагайтесь только на финальную оценку. Смотрите на потерю (loss) на валидации — если она скачет, забывание уже началось.
  • Попытка сделать все на одном GPU. Модель Nova 2 70B даже с LoRA требует памяти. Используйте инстансы с tensor parallelism (например, ml.p4d.24xlarge). Иначе упретесь в OOM и потратите день на отладку.
💡
Главный лайфхак 2026 года: после успешного пайплайна зафризуйте адаптеры LoRA и базовую модель в единый контейнер. Упакуйте его в SageMaker Model Registry. Так вы получите воспроизводимый артефакт, который можно развернуть одним кликом, без танцев с подключением адаптеров к базовой модели в рантайме. Об этом мало кто говорит, но это экономит кучу времени.

Что дальше? Fine-Tuning как сервис

Тренд, который я вижу: скоро исчезнет need вручную собирать датасеты и писать конфиги. AWS движется к тому, чтобы Fine-Tuning был такой же кнопкой, как и запуск инференса. Вы загружаете сырые данные (PDF, диалоги), а система сама их чистит, сегментирует, создает пары для DPO и запускает оптимальный пайплайн. Проблема катастрофического забывания будет решаться автоматическим подбором коэффициента смешивания на основе непрерывной оценки.

Пока этого нет, ваш лучший друг — это Nova Forge SDK и понимание, что кастомизация LLM это не «дообучить и забыть», а цикличный процесс обучения и валидации. Начните с малого датасета, проверьте гипотезу, и только потом масштабируйтесь. И не бойтесь, если с первого раза модель будет путать Java с JavaScript. Так и задумано.

Подписаться на канал