Fine-tuning
fine-tuning — дообучение готовой модели под узкую задачу
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'а:
- Выбор базовой модели. Должна подходить по архитектуре и размеру. Для русского текста — qwen, yi, mistral. Для генерации картинок — SDXL, Flux. Для кода — DeepSeek Coder, Qwen Coder.
- Подготовка данных. Обычно нужно от 500 до 50 000 примеров в нужном формате. Качество важнее количества: 1 000 чисто размеченных лучше, чем 100 000 шумных.
- Выбор метода. Full fine-tuning, LoRA или QLoRA — зависит от размера модели и доступного железа.
- Запуск обучения. Скрипт на PyTorch или через Axolotl, Unsloth, LLaMA-Factory. Часы или сутки в зависимости от модели.
- Валидация. Сравнение на тестовом наборе с базовой моделью.
- Слияние или раздельная загрузка. Адаптер можно «впечь» обратно в модель (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.
Шаги:
- Подготовка датасета. 25 фотографий, каждая с подписью:
<character_anya> standing in armor, full body,<character_anya> close-up portrait, etc. Уникальный токен<character_anya>нужен, чтобы модель связала его конкретно с этим персонажем, а не с чем-то знакомым. - Конфигурация: LoRA rank 16, alpha 32, learning rate 1e-4, 1500 шагов, AdamW. Запуск через kohya-ss SD-Scripts или ComfyUI с LoRA Trainer node.
- Обучение. На RTX 3060 12 GB — 45 минут. На RTX 4090 — 12 минут.
- Результат: файл
anya_v1.safetensorsвесом 144 МБ. Хранится отдельно от базы Flux. - Использование: в 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 Engineering — prompting не меняет параметры. 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. Понимая разделение, проще выбрать правильный инструмент и не тратить часы обучения там, где помог бы лучший промпт.