Training
training — процесс подбора параметров модели на данных
Training, или обучение модели, — процесс настройки её параметров на примерах. Модель делает предсказание, функция потерь измеряет ошибку, а оптимизатор меняет веса. Цель — улучшить работу и на новых примерах, а не только на обучающей выборке. Удаётся ли это, показывает отдельная проверка.
Коротко
Training превращает архитектуру с первоначальными параметрами в модель, которая научилась решать задачу по данным. При градиентном обучении система сравнивает результат с целью, вычисляет градиенты и обновляет веса. Здесь разберём именно этот распространённый способ обучения нейросетей. Качество обучения проверяют не по памяти модели, а по тому, как она работает на новых примерах.
Что именно обучается
Архитектура задаёт устройство модели: слои, связи и порядок вычислений. Параметры — числа внутри этой конструкции. При обучении с нуля начальные параметры ещё не описывают нужную закономерность. При дообучении модель уже обладает какими-то способностями.
Например, классификатор получает изображение и выдаёт вероятности классов. Если правильный ответ отличается от предсказания, функция потерь превращает расхождение в число. Затем обратное распространение ошибки вычисляет градиенты: как изменится функция потерь при небольшом изменении параметров. Оптимизатор использует этот сигнал для обновления весов.
Один шаг обучения
данные → предсказание → функция потерь → градиенты → обновление весов
↑ │
└──────────────── следующая порция данных ───────────────────┘
Внутри цикла происходит пять вещей:
- Порция данных (batch) поступает в модель.
- Прямой проход строит предсказание.
- Функция потерь (loss) оценивает расхождение с целью.
- Обратный проход вычисляет градиенты.
- Оптимизатор обновляет параметры с выбранным темпом обучения (learning rate).
Обычно обучение складывается из множества обновлений. Слишком большой шаг может резко ухудшить результат, поэтому его размер — отдельная настройка.
Данные делят на части
Если проверять модель на тех же примерах, по которым она настраивалась, легко принять запоминание за способность обобщать. Поэтому данные обычно разделяют:
- train — для обновления параметров;
- validation — для выбора настроек и момента остановки;
- test — для итоговой независимой проверки.
Граница должна учитывать природу данных. Случайное перемешивание кадров одного видео между train и test создаст утечку: соседние кадры почти одинаковы. Для временных рядов, пользователей и документов часто нужен разрез по времени, источнику или сущности.
Основные способы обучения
Обучение с учителем
У каждого примера есть целевой ответ: класс, число, перевод, маска объекта или другая разметка. Модель учится воспроизводить эту связь.
Обучение без ручной разметки: self-supervised learning
Цель строится из самого материала. Языковая модель предсказывает продолжение текста, а визуальная — скрытую часть изображения или добавленный шум. Так можно использовать большой массив данных без ручной разметки каждого примера.
Обучение на предпочтениях
Система получает сравнения вариантов или другой сигнал качества. Этот этап помогает настроить поведение, но наследует вкусы, ошибки и перекосы оценщиков.
Обучение с подкреплением
Агент действует в среде и получает награду. Здесь особенно важны формулировка цели и ограничения: система может найти формально выгодный, но нежелательный способ набрать очки.
Pretraining и fine-tuning
Pretraining даёт общие способности на широком корпусе. Fine-tuning продолжает обучение на более узких данных: формате ответов, профессиональном домене, стиле или новом классе изображений.
Граница не всегда строгая, но практический вопрос один: какие свойства модель должна приобрести и какие исходные способности нельзя потерять. Маленький адаптер вроде LoRA меняет меньше параметров, полный fine-tune — больше. Ни один вариант не гарантирует качество без подходящей выборки и проверки.
Почему loss недостаточно
Loss нужен оптимизатору, но он измеряет только выбранную математическую цель. Низкое значение не гарантирует, что ответ:
- фактически верен;
- полезен человеку;
- устойчив к новым формулировкам;
- справедлив для разных групп;
- безопасен в реальном процессе;
- выглядит естественно.
Поэтому рядом с loss используют метрики задачи, ручную оценку, тесты на крайних случаях и отдельный набор реальных сценариев.
Overfitting и underfitting
Underfitting возникает, когда модель не выучила даже основные закономерности: плохо работает и на train, и на новых данных.
Overfitting, или переобучение, — подгонка под особенности обучающих примеров, которая мешает обобщению. Но не всякое ухудшение на новых данных означает переобучение: возможно, изменились сами условия задачи.
Выбор решения зависит от причины. Могут помочь:
- более чистые и разнообразные данные;
- подходящая сложность модели;
- регуляризация;
- ранняя остановка;
- проверка на действительно независимых примерах;
- анализ ошибок, а не только средней метрики.
Что определяет стоимость обучения
Универсального времени и бюджета нет. На расход влияют:
- число обучаемых параметров;
- объём и длина примеров;
- batch size и число проходов;
- разрешение изображений или длительность последовательностей;
- точность чисел и способ распределения вычислений;
- скорость хранения, сети и обмена между ускорителями;
- число экспериментов, которые не попадут в финальную модель.
Поэтому фраза «обучение занимает несколько часов» имеет смысл только вместе с моделью, данными, оборудованием и критерием готовности.
Обучение LoRA в визуальном workflow
ComfyUI чаще используют для инференса и проверки визуальной модели. Само обучение LoRA может проходить в отдельном инструменте, а готовый адаптер затем подключается к workflow.
Удобный цикл выглядит так:
- подготовить и описать изображения;
- отделить проверочную часть;
- обучить несколько контрольных точек;
- прогнать одинаковую сетку промптов;
- выбрать вариант, который сохраняет и нужный образ, и гибкость базы.
Один удачный портрет не доказывает, что адаптер устойчив. Полезнее сравнить разные ракурсы, свет, одежду, композицию и нежелательные сочетания. Подготовка такой выборки разобрана в гайде по фотографиям персонажа, а навязчивое повторение фона и позы — в статье о переобучении.
Воспроизводимость
Чтобы результат можно было понять и повторить, сохраняют:
- версию кода и зависимостей;
- идентификатор базовой модели;
- состав и версию данных;
- параметры запуска;
- seed, если он влияет на эксперимент;
- метрики и примеры на каждом этапе;
- причину выбора финального checkpoint.
Без этих записей трудно понять, за счёт чего получилась хорошая метрика, и воспроизвести эксперимент.
Частые ошибки
- Смешивать train и test. Итоговая метрика перестаёт быть независимой.
- Следить только за training loss. Он может улучшаться, пока качество на новых данных уже падает.
- Не проверять данные глазами. Модель может усвоить ошибочную разметку и слишком часто повторяющиеся примеры вместе с полезными закономерностями.
- Считать больше эпох автоматическим улучшением. Дополнительные проходы могут усилить переобучение.
- Менять много параметров одновременно. Потом трудно понять, что именно помогло.
- Выбирать checkpoint по одному красивому примеру. Нужна одинаковая контрольная выборка.
Частые вопросы
Модель запоминает все обучающие данные? Она сжимает закономерности в параметры, но отдельные редкие или часто повторяющиеся фрагменты действительно может воспроизвести. Риск проверяют специальными тестами и контролем данных.
Чем epoch отличается от step? Step часто означает одно обновление параметров. При накоплении градиентов оно может включать несколько небольших порций данных; точное значение счётчика зависит от программы. Epoch — условный проход по всей обучающей выборке. При потоковых данных удобнее считать обновления.
Можно ли обучать без GPU? Небольшие модели можно обучать на CPU и других ускорителях. Для крупных задач выбирают оборудование, которое поддерживает нужные операции и вмещает параметры, промежуточные вычисления и текущую порцию данных. Само наличие GPU не определяет качество.
Когда обучение стоит остановить? Когда дальнейшие шаги перестают улучшать независимые метрики или начинают ухудшать важные сценарии. Критерий остановки задают до финального выбора, чтобы не подгонять решение под test-набор.
Главное
При обучении модель получает примеры, функция потерь измеряет ошибку, градиенты показывают направление изменения, а оптимизатор обновляет параметры. На независимых данных проверяют, помогает ли это решать новые задачи. Более долгое обучение не обязательно даёт лучший результат: важны качество и разделение данных, понятная цель и проверка на новых случаях.