Fine-tuning

fine-tuning — дообучение готовой модели под узкую задачу

Раздел
Обучение
Обновлено
18.05.26

Fine-tuning (тонкая настройка) — дообучение готовой модели на узком наборе данных под конкретную задачу. Полное обучение с нуля стоит миллионы и занимает месяцы; fine-tuning делается за часы на одной GPU и стоит десятки долларов. Современные методы (LoRA, QLoRA) обучают не всю модель, а лёгкий адаптер на 1–5% параметров — без потери качества базовой модели. Это главный инструмент, чтобы приспособить открытую модель под свой домен, стиль или формат.

Коротко

Коротко. Fine-tuning — это короткое дообучение уже готовой модели на новых данных. Базовая модель остаётся той же, меняются только её веса в нужную сторону: модель учится отвечать в определённом стиле, разбираться в узком домене, генерировать в конкретном формате. Современные приёмы (LoRA, QLoRA) обновляют 1–5% параметров и работают на одной GPU за часы.

Что это такое

Сентябрь 2023-го. Юридическая фирма хочет AI-помощника по своим документам. GPT-4 в общем виде отвечает прилично, но путается в специфической терминологии и стилевых нормах. Команда пробует fine-tuning: подаёт 5 000 пар «вопрос юриста → корректный ответ из их базы». Через 4 часа модель отвечает в нужном тоне, использует правильную терминологию и угадывает стиль договоров фирмы.

Это и есть основная идея fine-tuning. Модель уже знает «всё про мир» из pre-training. Fine-tuning — это второй слой: «и вот ещё конкретно под мою задачу». Кратко, целенаправленно, без переписывания всех весов.

Раньше fine-tuning значил «полное обновление всех параметров модели». Это дорого и рискованно: можно «потерять» исходные знания. Современные методы (PEFT — Parameter-Efficient Fine-Tuning, в первую очередь LoRA и QLoRA) обновляют только маленький адаптер, не трогая основную модель. Базовая «память» сохраняется, новые навыки добавляются.

К 2026-му fine-tuning — это огромная индустрия. Hugging Face полон открытых fine-tuned моделей: «medical-llama», «legal-mistral», «code-qwen», «character-LoRA-portrait-realism». На каждое решение «общая модель + конкретный домен/стиль» — есть свой fine-tune.

Как это работает

Базовый процесс fine-tuning'а:

  1. Выбор базовой модели. Должна подходить по архитектуре и размеру. Для русского текста — qwen, yi, mistral. Для генерации картинок — SDXL, Flux. Для кода — DeepSeek Coder, Qwen Coder.
  2. Подготовка данных. Обычно нужно от 500 до 50 000 примеров в нужном формате. Качество важнее количества: 1 000 чисто размеченных лучше, чем 100 000 шумных.
  3. Выбор метода. Full fine-tuning, LoRA или QLoRA — зависит от размера модели и доступного железа.
  4. Запуск обучения. Скрипт на PyTorch или через Axolotl, Unsloth, LLaMA-Factory. Часы или сутки в зависимости от модели.
  5. Валидация. Сравнение на тестовом наборе с базовой моделью.
  6. Слияние или раздельная загрузка. Адаптер можно «впечь» обратно в модель (full merge) или подгружать отдельно при инференсе (как LoRA в Stable Diffusion).

Три основных способа:

Метод Какие веса обучаются Память Качество
Full fine-tuning Все 100% Полная (как при training) Максимум
LoRA 0.5–5% (адаптер) ~30% от полной 90–98% от full
QLoRA LoRA + 4-bit квантизация базы ~10–15% от полной 85–95% от full

LoRA (Low-Rank Adaptation). Добавляет к каждому слою маленькую матрицу-обходник. На обучении меняется только она. На инференсе можно подключать или отключать как обычный плагин. Файл — обычно 50–200 МБ против гигабайтов базовой модели.

QLoRA. То же что LoRA, но базовая модель загружается в 4-битной квантизации. Обучение Llama 70B становится возможным на одной A100 или даже на двух 4090.

Пример на практике

3D-художница хочет, чтобы Flux рисовал её персонажа в любых позах для игры. Картинок персонажа у неё — 25 штук с разных ракурсов.

Полный fine-tuning Flux Dev (12B параметров) дома невозможен — нужны десятки тысяч долларов на кластер. Решение — LoRA-fine-tuning.

Шаги:

  1. Подготовка датасета. 25 фотографий, каждая с подписью: <character_anya> standing in armor, full body, <character_anya> close-up portrait, etc. Уникальный токен <character_anya> нужен, чтобы модель связала его конкретно с этим персонажем, а не с чем-то знакомым.
  2. Конфигурация: LoRA rank 16, alpha 32, learning rate 1e-4, 1500 шагов, AdamW. Запуск через kohya-ss SD-Scripts или ComfyUI с LoRA Trainer node.
  3. Обучение. На RTX 3060 12 GB — 45 минут. На RTX 4090 — 12 минут.
  4. Результат: файл anya_v1.safetensors весом 144 МБ. Хранится отдельно от базы Flux.
  5. Использование: в ComfyUI на ноде Load LoRA указать файл, поставить strength 0.7. Промпт <character_anya> standing on a beach with crashing waves — и Аня в позе на пляже.

Что не вошло:

  • Текст внутри LoRA — она «выучила» только внешний вид.
  • Дополнительные позы — добавьте новые картинки и переобучите.
  • Объекты вне 25 кадров — Flux дополнит из общего знания.

Этот же подход — для LLM. Например, fine-tune Llama 3 8B на собственном корпусе постов вашего блога. После 2 часов обучения через QLoRA модель начнёт писать в вашем стиле — короче, конкретнее, с характерными конструкциями.

С чем часто путают

  • Fine-tuning и Training с нуля — training с нуля строит модель из случайных весов. Fine-tuning продолжает с обученных. Разница в стоимости — 100–1000×.
  • Fine-tuning и RAG — fine-tuning меняет модель. RAG не меняет ничего, добавляет внешний контекст. Часто комбинируют: RAG для фактов, fine-tuning для стиля.
  • Fine-tuning и Prompt Engineeringprompting не меняет параметры. Fine-tuning меняет. Стоимость и время отличаются на порядки.
  • Fine-tuning и LoRA — LoRA это разновидность fine-tuning'а (PEFT). «Сделать LoRA» обычно значит «сделать fine-tuning через LoRA».
  • Full fine-tuning и continued pre-training — continued pre-training продолжает обучение на похожих данных, чтобы расширить знания модели. Fine-tuning адаптирует поведение под узкую задачу. Граница размытая.

Частые ошибки и заблуждения

  • «Fine-tuning делает модель умнее». Нет. Он адаптирует уже обученную модель к конкретному формату/стилю. Базовые способности не растут.
  • «Можно научить модель свежим фактам через fine-tuning». На малых данных — почти нет. Модель помнит факты из pre-training лучше, чем из 1 000 fine-tune'овых примеров. Лучше через RAG.
  • «LoRA всегда хуже full fine-tuning». Часто LoRA даёт 95% качества full при затратах 5%. На многих задачах разница неощутима. Полный fine-tune нужен в edge cases.
  • «Чем больше fine-tune-датасет, тем лучше». Не всегда. На грязных или несбалансированных данных fine-tune ухудшает базовую модель. Стандартный риск — catastrophic forgetting.
  • «После fine-tuning модель забывает английский». Нечасто, но может случиться при сильном fine-tuning'е на узком наборе. Решения: смешивать новые данные с общими, использовать LoRA (которая не трогает базу), малый learning rate.

Связанные термины

  • Training — общий процесс обучения; fine-tuning — его краткая фаза поверх готовой модели.
  • LoRA — самый популярный PEFT-метод; используется для image gen и LLM.
  • QLoRA — LoRA + квантизация базы; для крупных моделей на потребительском железе.
  • PEFT — Parameter-Efficient Fine-Tuning; зонтичный термин для LoRA, adapters, prefix-tuning.
  • Instruction tuning — fine-tuning на парах «инструкция → правильный ответ» для общего следования инструкциям.
  • RLHF / DPO — fine-tuning на предпочтениях людей; следующий этап после instruction tuning.
  • RAG — альтернатива для добавления знаний без обучения.
  • Trigger word — уникальный токен в LoRA для активации обученного концепта.

Частые вопросы

Сколько примеров нужно для fine-tuning? Зависит от задачи. Для стиля или формата — 500–2000. Для специализации в домене — 5K–50K. Для серьёзного instruction-tuning — миллионы. Малое количество чистых данных лучше, чем большое количество шумных.

На каком железе можно fine-tune'ить Llama 3 8B? QLoRA + 4-bit квантизация: одна RTX 3090 24 GB или 4090. LoRA в FP16: 2× A100. Full fine-tuning 8B: 4–8× A100.

Сколько стоит облачный fine-tuning? OpenAI fine-tuning GPT-4o-mini: $25 за 1M обучающих токенов. Together AI / Replicate Llama 70B QLoRA: $20–100 за прогон. Локально на своей GPU — стоимость электричества.

Можно ли fine-tune'ить закрытые модели? OpenAI и Anthropic дают API для fine-tuning'а некоторых своих моделей. Результат — кастомизированная версия, доступная только вам, через тот же API. Глубокий контроль — только с открытыми весами.

LoRA можно «склеить» с базой обратно? Да, операция «merge». После этого получается обычная модель без отдельного LoRA-файла. Удобно для распространения, но теряется возможность отключить адаптер. Для гибкости лучше хранить отдельно.

Главное

Fine-tuning — это способ сделать общую модель «своей». Раньше это требовало больших ресурсов; сейчас, с появлением LoRA и QLoRA, доступно на одной видеокарте за несколько часов. Главное помнить: fine-tuning меняет поведение модели, а не её базовые знания. Если нужны новые факты — это RAG. Если нужен стиль, формат или специализация — это fine-tuning. Понимая разделение, проще выбрать правильный инструмент и не тратить часы обучения там, где помог бы лучший промпт.