Fine-tuning LLM в 2026: гид по LoRA, QLoRA и полному дообучению
Как дообучать большие языковые модели на одном GPU, когда выбирать SFT, DPO или RFT и какие гиперпараметры действительно влияют на результат.
В 2026 году дообучить 70-миллиардную языковую модель можно на одном игровом GPU. Ещё пять лет назад это звучало как фантастика, а сегодня — рутина для тысяч команд. Но главный вопрос уже не «как», а «стоит ли» и «каким методом».
В этой статье разберёмся, когда fine-tuning решает проблему, а когда проще обойтись промптами или RAG. Сравним LoRA, QLoRA и полное дообучение, посмотрим на цифры и напишем рабочий пайплайн на Python.
Что такое fine-tuning и зачем он нужен
Fine-tuning — это донастройка уже предобученной модели под конкретную задачу. Вместо того чтобы учить трансформер с нуля на сотнях гигабайт текстов, мы берём готовую LLM и показываем ей тысячи или десятки тысяч примеров, которые важны именно нам: стиль ответов, формат JSON, медицинскую терминологию или правила поведения в чат-боте.
Важный нюанс: дообучение меняет поведение модели, а не добавляет свежих фактов. Если вам нужно, чтобы бот знал актуальные цены, документацию API или внутреннюю базу знаний — правильный путь это RAG и хороший системный промпт, а не бесконечная перетренировка весов.
Когда fine-tuning — правильный выбор
Базовые модели 2026 года — GPT-5, Claude 4.5, Llama 3.3, Qwen 3, DeepSeek-V4 — научились следовать инструкциям, вызывать инструменты и выдавать структурированный вывод. Поэтому последовательность действий у большинства команд такая: сначала промптинг, потом RAG, и только потом fine-tuning.
Есть четыре ситуации, где дообучение действительно оправдано:
- Надёжность структурированного вывода. Если модель постоянно ломает JSON-схему или забывает поля, fine-tuning закрепляет правильный формат.
- Доменная лексика. Медицинские, юридические или научные термины, которые базовая модель «не осмеливается» использовать, можно вшить через SFT.
- Тон и политика отказов. Когда системные инструкции конфликтуют с базовой alignment-моделью, целевое дообучение перестраивает поведение точнее, чем промпты.
- Дистилляция и сжатие. Можно перенести способности большой модели на маленькую, чтобы удешевить инференс в продакшене.
Главное правило: не пытайтесь впрыснуть в модель факты через дообучение. Исследования показывают, что RAG превосходит fine-tuning по фактической точности, а знания, зашитые в веса, быстро устаревают и приводят к галлюцинациям.
Ключевые выводы
- LoRA и QLoRA в 2026 году покрывают большинство задач; полное дообучение нужно редко.
- QLoRA позволяет дообучать 70B-модель на одном GPU с 48 ГБ VRAM, уменьшая потребление памяти примерно в 4 раза.
- Fine-tuning меняет поведение, а не факты: знания добавляйте через RAG, стиль и формат — через SFT/DPO.
- Оптимальная стартовая точка: LoRA rank 16, все линейные слои, learning rate 2e-4, 1–3 эпохи.
- Unsloth ускоряет QLoRA в 2–5 раз и снижает потребление VRAM примерно на 70% по сравнению с ванильным TRL.
LoRA: низкоранговая адаптация
Low-Rank Adaptation (LoRA), предложенная в 2021 году, изменила правила игры. Вместо обновления всех весов модели LoRA добавляет к каждому линейному слою две маленькие обучаемые матрицы A и B. Обучается лишь 0,1–1% параметров, а остальная часть модели заморожена.
Формула обновления выглядит так:
Ŵ = W + (α / rank) × A × B
Здесь W — замороженные предобученные веса, A и B — адаптерные матрицы, rank задаёт размер скрытого представления, а alpha масштабирует вклад адаптации. Например, LoRA rank 16 на Llama 3.3 70B обучает около 420 миллионов параметров — менее 1% от общего числа — при качестве, близком к полному дообучению.
QLoRA: дообучение на потребительском железе
QLoRA добавляет к LoRA 4-битную квантизацию замороженных весов в формате NF4 (Normal Float 4). Сами адаптеры остаются в FP16/BF16, поэтому точные градиенты не теряются. Эта комбинация, предложенная Dettmers и соавторами в 2023 году, позволяет разместить 70-миллиардную модель на одной RTX 4090 или A6000.
Качество при этом остаётся очень близким к обычному LoRA: разница на большинстве бенчмарков укладывается в доли процента. Для разработчиков в России и СНГ это особенно ценно: не нужен кластер A100, достаточно одной мощной локальной карты или аренды GPU у облачного провайдера.
Сравнение методов: цифры
По данным команд Unsloth, Hugging Face и мета-анализу FinLoRA, разрыв между параметро-эффективными методами и полным дообучением в 2026 году стал минимальным. Вот типичные цифры для Llama 3.3 70B:
- MMLU: QLoRA отстаёт от LoRA менее чем на 0,3%, а оба метода в пределах 1% от полного fine-tuning.
- HumanEval (код): полное дообучение лидирует на 2–3%, но LoRA догоняет, если таргетировать все семь линейных слоёв: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj.
- GSM8K (математика): при rank ≥ 32 различий между методами практически нет.
- MT-Bench / AlpacaEval: QLoRA и LoRA в пределах 0,5% от полного дообучения.
Практический вывод: для подавляющего большинства задач полное дообучение не стоит 50–100-кратного роста вычислительных затрат. QLoRA на одном GPU даёт продакшен-качество.
SFT, DPO и RFT: три подхода к обучению
Выбрать метод адаптации — только половина дела. Нужно ещё понять, как учить модель. В 2026 году доминируют три парадигмы.
Supervised Fine-Tuning (SFT)
Классический вариант: модель учится на парах «запрос → идеальный ответ». SFT лучше всего подходит для обучения формату, переноса стиля и работы со структурированными данными. Главное требование — качественный, размеченный датасет.
Direct Preference Optimization (DPO)
DPO стала рабочей лошадкой 2026 года. Вместо отдельной reward-модели, как в RLHF, она оптимизирует предпочтения напрямую: у нас есть пары «хороший ответ / плохой ответ», и модель учится выбирать лучший. Это дешевле, стабильнее и проще в настройке. DPO выбирайте для тона, alignment и управления отказами.
Reinforcement Fine-Tuning (RFT)
Reinforcement Fine-Tuning от OpenAI доступен для o-серии и других reasoning-моделей. Модель обучается не по эталонным ответам, а по пользовательской функции-оценщику. Это мощно для задач с верифицируемой наградой: генерация кода, математика, структурированная экстракция. Главный барьер — нужно сначала написать хороший grader.
Пошаговый гайд: дообучаем Llama 3.3 с QLoRA
Ниже — минимальный рабочий пример на Python с использованием Unsloth и Hugging Face TRL. Мы дообучим адаптеры для Llama 3.3 8B Instruct на собственном датасете инструкций.
Шаг 1. Установка зависимостей
Шаг 2. Загружаем базовую модель в 4 бита
Шаг 3. Настраиваем LoRA-адаптеры
Шаг 4. Готовим датасет
Шаг 5. Запускаем обучение
Шаг 6. Сохраняем и при необходимости сливаем адаптер
Гиперпараметры: что влияет на результат
Качество дообучения сильно зависит от нескольких ручек. Вот практические рекомендации на 2026 год.
LoRA rank
Начинайте с rank 16 для большинства задач. Rank 8 хватает для простого обучения формату, rank 32–64 дают небольшой прирост на сложной доменной адаптации, но повышают риск переобучения. Очень высокие rank редко окупаются.
Learning rate
Для стандартного SFT с LoRA/QLoRA стартовая точка — 2e-4. Для DPO, GRPO и других reinforcement-методов снижайте до 5e-6. Полное дообучение требует ещё меньших скоростей: 1e-5–5e-6.
Target modules
Всегда таргетируйте все семь линейных слоёв: четыре слоя внимания и три слоя MLP. Исключение модулей даёт минимальную экономию памяти и заметно портит качество.
Эпохи и batch size
Оптимум — 1–3 эпохи. Больше трёх эпох на инструкционных датасетах обычно ведёт к переобучению. Целевой эффективный batch size — 16–32 (batch size × gradient accumulation).
Стек инструментов в 2026 году
Экосистема дообучения выросла и во многом стандартизировалась.
- Hugging Face PEFT + TRL. Де-факто стандарт: SFTTrainer, DPOTrainer, ORPOTrainer. Работает с любой моделью из Hub.
- Unsloth. 2–5× быстрее и на ~70% меньше VRAM для QLoRA. Must-have для одно-GPU сетапов.
- Axolotl. YAML-конфиги для мульти-GPU пайплайнов на кластерах A100/H100.
- Torchtune. Нативная библиотека от PyTorch с компонентным подходом. Легче TRL, но требует больше ручной работы.
- LM Studio / Ollama. Для быстрой локальной проверки дообученной модели.
Типичные ошибки и как их избежать
- Дообучение без evals. Если вы не можете измерить, стала ли новая контрольная точка лучше предыдущей, у вас не проблема дообучения — у вас проблема оценки. Пишите метрики до тренировки.
- Катастрофическое забывание. Узкий датасет может «выбить» общие способности модели. Добавляйте 10–20% общих инструкционных данных, используйте низкий learning rate и rank ≤ 32.
- Переобучение на шум. Если loss стремится к нулю, а eval падает — модель запоминает артефакты. Проверьте датасет на дубликаты и противоречия, добавьте LoRA dropout 0.1.
- Устаревание знаний. Факты, зашитые в веса, стареют вместе с датасетом. Для изменяющихся данных используйте RAG, а fine-tuning оставьте для стабильного поведения.
Часто задаваемые вопросы
Какой rank выбрать для LoRA?
Начните с 16. Для простых задач форматирования хватит 8, для сложной доменной адаптации — 32. Высокие rank увеличивают VRAM и риск переобучения без пропорционального прироста качества.
Можно ли дообучить 70B-модель на одном GPU?
Да. С QLoRA и Unsloth Llama 3.3 70B помещается в ~48 ГБ VRAM. Это позволяет работать на одной NVIDIA A6000 или арендованной A100/H100 в облаке. Для 7–13B моделей подойдёт даже RTX 4090 с 24 ГБ.
В чём разница между LoRA и QLoRA?
QLoRA квантует замороженные веса базовой модели до 4 бит (NF4), а сами LoRA-адаптеры остаются в 16 бит. Это сокращает потребление памяти примерно в 4 раза при потере качества менее 1% на большинстве бенчмарков.
Когда использовать DPO вместо SFT?
DPO нужен, когда у вас есть пары «хороший ответ / плохой ответ» и вы хотите настроить тон, alignment или поведение отказов. SFT лучше для обучения формату и размеченных эталонных ответов.
Нужно ли полное дообучение в 2026 году?
Редко. Полное дообучение даёт прирост 0,5–2% при 50–100-кратном росте затрат. Смысл есть только в крупных R&D-проектах с собственной GPU-инфраструктурой, где важен каждый дол процента.
Выводы
Fine-tuning LLM в 2026 году стал доступным инструментом: QLoRA + Unsloth превращают дообучение 70-миллиардной модели из инфраструктурного проекта в задачу на один вечер. Но техническая возможность не отменяет стратегии: большинство команд всё ещё получают больше пользы от хорошего промпта и RAG.
Золотое правило остаётся неизменным: дообучение меняет поведение, а не факты. Начинайте с QLoRA, rank 16, всех линейных слоёв, learning rate 2e-4 и 1–3 эпох. Пишите evals до тренировки, смешивайте доменные данные с общими инструкциями и не пытайтесь заменить RAG бесконечным дообучением.
Fine-tuning — это не способ научить модель фактам, а способ научить её манере. Тот, кто понимает разницу, экономит десятки тысяч долларов на вычислениях.
Источник: LLM Fine-Tuning 2026: Complete LoRA, QLoRA & Full Fine-Tuning Guide — TechMag на Dev.to.