Fine-tuning
fine-tuning — дообучение готовой модели под задачу
Fine-tuning продолжает обучение готовой модели на данных конкретной задачи. Так можно закрепить формат, стиль, терминологию или способ принимать решения. Полное дообучение меняет большой набор весов, а адаптерные методы вроде LoRA и QLoRA — только небольшую добавку к ним. Новые и часто меняющиеся факты обычно удобнее подключать через RAG.
Коротко
Fine-tuning — дополнительное обучение уже подготовленной модели. Вместо старта со случайных весов берут базу с общими способностями и показывают ей примеры нужного поведения. Результат зависит от качества и разнообразия данных не меньше, чем от метода обновления параметров.
Что меняется в модели
Во время fine-tuning модель делает предсказание, получает loss и обновляет параметры через backpropagation — так же, как при обычном training. Разница в исходной точке и масштабе задачи: базовая модель уже знает общие закономерности, а дообучение смещает её в нужную область.
Для языковой модели это может быть:
- устойчивый формат ответа;
- терминология компании;
- классификация обращений;
- стиль диалога;
- выполнение узкой инструкции.
Для визуальной модели — персонаж, материал, предмет, стиль съёмки или тип композиции.
Полное дообучение и адаптеры
Full fine-tuning
Меняется большой набор исходных параметров. Такой подход даёт больше свободы, но требует больше памяти, вычислений и контроля, чтобы модель не потеряла полезные способности базы.
LoRA
Базовые веса остаются неизменными, а к выбранным слоям добавляются небольшие обучаемые матрицы. После обучения адаптер можно хранить и подключать отдельно. Его размер зависит от rank, числа затронутых слоёв и архитектуры.
QLoRA
База хранится в пониженной точности, а адаптер обучается поверх неё. Это уменьшает требования к памяти, но не делает любой запуск одинаково дешёвым: важны длина последовательности, batch, optimizer и поддержка операций на устройстве.
Другие PEFT-методы
Parameter-Efficient Fine-Tuning — общее название способов менять небольшую часть поведения модели. Конкретные форматы различаются, и адаптер от одной архитектуры нельзя автоматически переносить на другую.
Когда fine-tuning подходит
Он особенно полезен, если одна и та же закономерность повторяется во множестве запросов:
- ответы должны иметь стабильную структуру;
- модель путает близкие классы;
- нужен узнаваемый визуальный персонаж;
- длинная инструкция постоянно занимает контекст;
- есть качественные пары «вход → желаемый ответ»;
- результат можно измерить на независимом наборе.
Если задача возникает один раз, дешевле начать с промпта. Если знания часто меняются, удобнее поиск или RAG. Если нужна новая функция приложения, fine-tuning не заменит обычный код и инструменты.
Fine-tuning, RAG и prompt engineering
| Задача | Подход |
|---|---|
| Объяснить формат и критерии одного ответа | Prompt |
| Подтянуть актуальные документы и цитаты | RAG |
| Закрепить повторяющийся стиль или поведение | Fine-tuning |
| Выполнить действие во внешней системе | Tool calling |
Эти методы можно сочетать. Дообученная модель может получать свежие документы через RAG и вызывать инструменты по строгой схеме.
Данные важнее объёма как такового
Полезный датасет показывает не только идеальные случаи. В нём нужны:
- типичные запросы;
- сложные границы между классами;
- примеры корректного отказа;
- разные формулировки одного намерения;
- нежелательные ответы и критерий, почему они плохи;
- данные, похожие на реальную эксплуатацию.
Дубликаты создают иллюзию большого корпуса и усиливают случайные детали. Противоречивые ответы учат модель колебаться. Секреты и персональные данные могут запомниться, поэтому права и очистка проверяются до обучения.
Как готовят эксперимент
- Описывают поведение, которое должно измениться.
- Собирают baseline без дообучения.
- Разделяют данные по источникам или сущностям, чтобы избежать утечки.
- Выбирают небольшой набор настроек.
- Сохраняют промежуточные checkpoint.
- Сравнивают их на одной независимой выборке.
- Проверяют, не ухудшились ли базовые способности.
Это не жёсткий ритуал, а способ понять причину результата. Если одновременно сменить данные, prompt, базу и параметры, улучшение нельзя будет объяснить.
Что проверять у языковой модели
- выполнение инструкции;
- формат и парсинг;
- точность классификации;
- устойчивость к новым формулировкам;
- поведение на запросах вне области;
- фактическую аккуратность;
- сохранение нужных общих способностей;
- безопасность на нежелательных сценариях.
Средняя метрика может скрыть редкую, но дорогую ошибку. Для важных классов полезен отдельный разбор false positive и false negative.
Что проверять у визуального адаптера
Один красивый кадр мало говорит о качестве. Контрольная сетка меняет:
- ракурс и крупность;
- свет и фон;
- одежду и окружение;
- выражение лица;
- стиль и композицию;
- слова, которые не должны вызывать адаптер.
Хорошая LoRA передаёт нужное свойство и оставляет модели свободу. Переобученный адаптер тянет один фон, позу или одежду во все сцены.
Основные риски
Catastrophic forgetting
Модель слишком сильно смещается и теряет часть прежних навыков. Риск снижают меньшим шагом, смешиванием данных, адаптерным методом и проверкой регрессий.
Переобучение
На train-примерах результат прекрасен, а новая формулировка ломает поведение. Здесь помогают независимые данные и разнообразие, а не просто больше эпох.
Запоминание чувствительных данных
Модель может воспроизвести редкий фрагмент. Секреты лучше не включать в датасет, а персональные данные обрабатывать по понятным правилам удаления и доступа.
Смещение целей
Модель оптимизирует то, что показано в примерах. Если оценщики поощряли длинные уверенные ответы, fine-tuning может усилить многословие и самоуверенность вместо пользы.
Стоимость и время
Они определяются не словом fine-tuning, а конкретной связкой:
- размер и архитектура базы;
- число обучаемых параметров;
- длина и объём данных;
- batch и gradient accumulation;
- точность вычислений;
- оборудование и backend;
- число экспериментов и проверок.
Поэтому оценку бюджета делают на небольшом пробном запуске и масштабируют по измеренному расходу.
Частые ошибки
- Дообучать ради свежих фактов. Весам трудно обеспечить точное и быстрое обновление базы знаний.
- Не сохранять baseline. Потом непонятно, помогло ли обучение вообще.
- Смешивать test с подбором настроек. Финальная оценка становится оптимистичной.
- Считать больше данных автоматически лучшими. Шум и противоречия тоже обучаются.
- Использовать несовместимый адаптер. Архитектура, слои и текстовый энкодер должны совпадать.
- Проверять только среднее качество. Редкие опасные ошибки остаются незаметны.
Частые вопросы
Fine-tuning добавляет модели новые знания? Он может закрепить информацию из датасета, но не даёт надёжной обновляемой базы фактов. Для документов с версиями и источниками лучше подходит retrieval.
Сколько примеров нужно? Универсального числа нет. Однородный формат может освоиться на компактном чистом наборе, а широкий домен потребует намного больше разнообразия. Полезнее строить кривую качества по мере добавления данных.
Можно ли объединять несколько LoRA? Да, если их поддерживает один pipeline и они совместимы с базой. Адаптеры могут конфликтовать, поэтому сочетание проверяют отдельно и не трактуют коэффициент как буквальный процент свойства.
Нужно ли дообучать самую большую модель? Нет. Компактная база может лучше подходить по задержке, стоимости и развёртыванию. Выбор делают по контрольной задаче и ограничениям системы.
Главное
Fine-tuning закрепляет повторяющееся поведение в параметрах модели. Он полезен для формата, стиля и специализации, но не заменяет свежие источники, инструменты и программную логику. Надёжный результат начинается с понятной цели, чистых данных, baseline и независимой проверки того, что модель приобрела нужное, не потеряв важное старое.