Nova Forge и катастрофическое забывание: смешивание данных для LLM | AiManual
AiManual Logo Ai / Manual.
08 Мар 2026 Гайд

Nova Forge vs. Катастрофическое забывание: как смешивание данных сохраняет интеллект LLM при fine-tuning

Как сервис AWS Nova Forge и метод смешивания данных предотвращают потерю знаний при fine-tuning LLM. Сравнение PEFT и full-rank SFT.

Ваша LLM после дообучения глупеет? Это катастрофа

Вы потратили недели на сбор датасета по медицинским документам. Запустили fine-tuning на Llama 3.1. Результат? Модель блестяще отвечает на вопросы о диагнозах, но забыла, как складывать два числа. Поздравляю, вы столкнулись с катастрофическим забыванием - проклятием всех, кто кастомизирует большие языковые модели.

Это не баг. Это фундаментальная проблема нейросетей: при обучении на новых данных веса модели перезаписываются, стирая старые знания. Как будто после курса французского вы забываете родной язык.

Катастрофическое забывание особенно опасно для корпоративных LLM. Представьте: вы обучили модель на внутренних отчетах, а она перестала понимать базовый английский. Прощай, инвестиция в несколько миллионов рублей.

Nova Forge: не просто сервис, а философия сохранения интеллекта

В марте 2026 года AWS анонсировала Nova Forge - сервис для управляемого fine-tuning с одной ключевой фичей: он не дает моделям тупеть. Внутри не магия, а продуманная методология смешивания данных (data mixing).

Nova Forge автоматически подмешивает общие данные (типа GSM8K для математики, Squad для понимания контекста) к вашим специализированным датасетам. Пропорция? 70% ваших данных, 30% общих. Именно такая смесь сохраняет общий интеллект модели, пока она учится новому.

💡
Смешивание данных работает потому, что заставляет модель постоянно активировать нейроны, отвечающие за общие знания. Это как зарядка для мозга LLM - без нее мышцы атрофируются.

PEFT или full-rank SFT? Неправильный вопрос

Вечные дебаты: использовать ли Parameter-Efficient Fine-Tuning (LoRA, QLoRA) или полное обновление весов? На 2026 год ответ: зависит от задачи, но смешивание данных критично для обоих подходов.

Метод Риск забывания Спасение через смешивание
Full-rank SFT Высокий. Все веса меняются. Обязательно. Без этого модель деградирует за 1-2 эпохи.
PEFT (LoRA) Средний. Меняются только адаптеры. Все равно нужно. Адаптеры тоже могут перекрыть важные веса.
QLoRA (4-bit) Низкий, но есть. Рекомендуется для сложных задач.

Мой опыт: если у вас меньше 10,000 примеров - берите QLoRA. Больше - можно full-rank, но только со смешиванием. Nova Forge использует гибрид: full-rank для верхних слоев, PEFT для нижних. Умно.

Как смешивать данные руками: пошаговый план без Nova Forge

Nova Forge - удобно, но дорого. Если хотите сделать сами, вот рецепт. Работает с любыми моделями 2026 года: от DeepSeek-R1 до Gemini 2.5 Pro.

1 Соберите два датасета

Первый - ваши специализированные данные (допустим, юридические документы). Второй - общие данные для поддержания интеллекта. Где взять второе? Варианты:

  • OpenAssistant Conversations (диалоги)
  • GSM8K (математические задачи)
  • Кусок The Pile или C4 (общий текст)
  • Собственные логи чата модели до дообучения

Размер общего датасета: 20-30% от вашего специализированного. Меньше - бесполезно. Больше - будете учить общее, а не специфику.

2 Перемешайте на уровне батчей

Не делайте 70% ваших данных, потом 30% общих. Перемешивайте в каждом батче. Вот код на PyTorch:

from torch.utils.data import DataLoader, ConcatDataset

# Ваши датасеты
specialized_dataset = YourLegalDataset()
general_dataset = GeneralIntelligenceDataset()

# Соединяем и перемешиваем
combined_dataset = ConcatDataset([specialized_dataset, general_dataset])
dataloader = DataLoader(combined_dataset, batch_size=16, shuffle=True)

# Каждый батч будет содержать случайную смесь

3 Настройте лосс-функцию

Здесь хак: взвешивайте лосс для общих данных сильнее. Почему? Потому что модель и так хорошо их знает, и малейшее отклонение - сигнал забывания.

def custom_loss(output, target, is_general_data):
    base_loss = F.cross_entropy(output, target)
    if is_general_data:
        # Усиливаем лосс для общих данных в 1.5 раза
        return base_loss * 1.5
    return base_loss

4 Контролируйте забывание в реальном времени

Не ждите конца обучения. После каждой эпохи тестируйте модель на простых задачах: арифметика, логика, общие знания. Если качество падает более чем на 5% - увеличьте долю общих данных.

Инструмент для мониторинга: Hugging Face Accelerate + WandB. Настройте дашборд с двумя кривыми: специализированные метрики и общие метрики. Они должны расти вместе.

Типичные ошибки, которые сведут на нет все усилия

  1. Смешивание только в начале обучения. Как будто выпили витамины раз в год и ждете эффекта. Смешивать нужно постоянно.
  2. Использовать только текстовые общие данные для кодогенерации. Если дообучаете CodeLlama, смешивайте с общими кодоваями (например, из CodeSearchNet).
  3. Игнорировать лоботомические слои. В моделях 2025-2026 годов есть слои, которые при дообучении "убивают" здравый смысл. Их нужно зафризить первыми.
  4. Слишком высокий learning rate. Для смешанных данных LR должен быть на 30% ниже обычного. Иначе модель "перепрыгнет" в область, где забывает все.

Стоит ли использовать Nova Forge или делать самому?

Если у вас команда из 1-2 человек и нет времени на эксперименты - Nova Forge сэкономит месяцы. Сервис стоит от $5000 в месяц, но считайте это страховкой от катастрофического забывания.

Если есть инженеры и вы любите контроль - делайте сами. Купите две RTX 4090 и настройте pipeline. Мой выбор: Unsloth для эффективного обучения плюс собственная логика смешивания.

💡
Самый дешевый способ проверить смешивание: возьмите TinyLlama (1.1B параметров) и два маленьких датасета. Обучите без смешивания - увидите забывание. Затем с смешиванием - разница будет очевидна за 2 часа.

Что будет дальше? Прогноз на 2027 год

Катастрофическое забывание останется проблемой, но появятся новые методы. Уже сейчас в Entropy-Adaptive Finetuning используется адаптивное смешивание на основе энтропии предсказаний. Чем увереннее модель в общих знаниях, тем меньше ей нужно напоминаний.

Мой прогноз: через год мы будем использовать не статическое смешивание 70/30, а динамическое. Модель сама будет запрашивать, какие знания она начинает забывать. Это превратит fine-tuning из грубой силы в диалог с ИИ.

А пока - смешивайте данные. Как повар смешивает специи. Слишком много специализации - и блюдо несъедобно. Слишком много общего - и оно безвкусно. Найдите свой баланс.

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