Fine-tuning LLM: как работает дообучение языковых моделей с LoRA и квантизацией 4-bit — разбор механики и подводных камней

Представьте: у вас есть 24 ГБ видеопамяти и желание научить открытую языковую модель отвечать в стиле вашей компании. Полный fine-tuning модели на 7 миллиардов параметров потребует примерно 112 ГБ VRAM — вчетверо больше, чем есть. Именно здесь на сцену выходят LoRA и QLoRA: методы, которые позволяют дообучить модель на одной GPU, не покупая кластер. Но за простотой кроются нюансы, из-за которых обучение разваливается или результат не оправдывает ожиданий.

В этой статье разберём, как устроены низкоранговые адаптеры, зачем нужна квантизация 4-bit, сколько памяти реально требуется, какие гиперпараметры на что влияют и когда дообучение вообще не нужно.

Почему fine-tuning — это не просто «запустить train»

Дообучение (fine-tuning) — это продолжение обучения предобученной модели на ваших данных, чтобы она лучше решала узкую задачу: отвечала в определённом стиле, следовала формату, знала предметную область. В отличие от промпт-инжиниринга, где вы подбираете инструкции, fine-tuning меняет веса модели. Это даёт более устойчивое поведение, но требует данных, вычислений и понимания, что именно вы меняете.

Ключевая проблема — масштаб. Модель на 7B параметров в fp16 занимает около 14 ГБ. Для полного fine-tuning нужно хранить веса, градиенты и состояния оптимизатора (обычно AdamW). Градиенты — ещё 14 ГБ, состояния оптимизатора — в два раза больше весов (для AdamW хранятся моменты первого и второго порядка). Итого примерно 14 + 14 + 28 = 56 ГБ плюс активации, которые зависят от размера батча и длины последовательности. На практике для 7B модели с батчем 1 и длиной 512 может потребоваться 60–80 ГБ. Поэтому полный fine-tuning на одной потребительской GPU — редкость.

LoRA: низкоранговые адаптеры

LoRA (Low-Rank Adaptation) предлагает элегантный обходной путь. Вместо того чтобы обновлять все веса матрицы W (размером d×k), мы замораживаем её и добавляем две маленькие матрицы A (d×r) и B (r×k), где r — ранг, обычно 8, 16 или 32. Прямой проход: h = Wx + BAx. Обучаются только A и B. Количество параметров падает с dk до r(d+k). Для d=k=4096 и r=16 это 131 тысяча вместо 16,7 миллиона — в 128 раз меньше.

На практике это означает, что для 7B модели с r=16 обучаемых параметров будет около 4–8 миллионов (в зависимости от того, к каким слоям применять адаптеры). Память под градиенты и оптимизатор для них мизерная. Основная память уходит на замороженные веса в fp16 (14 ГБ) и активации. Такой подход позволяет дообучать 7B модель на GPU с 24 ГБ (например, RTX 4090) при небольшом батче.

Гиперпараметры: rank, alpha, learning rate

  • Rank (r) — главный параметр. Больше rank — больше ёмкость адаптера, но и риск переобучения. Для стилевых задач часто хватает r=8–16, для сложных предметных — 32–64. Слишком маленький rank (r=4) может не выучить нужное; слишком большой — теряет смысл LoRA (приближается к полному fine-tuning по числу параметров).
  • Alpha — масштабирующий коэффициент: ΔW = (alpha/r) * BA. Обычно alpha ставят равным r или 2r. Если alpha слишком велик, адаптер доминирует и модель теряет базовые знания; если слишком мал — обучение идёт медленно.
  • Learning rate — для LoRA обычно выше, чем при полном fine-tuning: 1e-4 – 3e-4. Слишком высокий приводит к разрушению адаптера, слишком низкий — к недообучению.

QLoRA: квантизация 4-bit для ещё большей экономии

QLoRA идёт дальше: замораживает базовые веса в 4-битном формате (NF4 — NormalFloat4), а адаптеры LoRA обучает в 16-bit. Это снижает память под веса с 14 ГБ до примерно 3,5–4 ГБ для 7B модели. Дополнительно используется double quantization (квантование констант квантизации) и paged optimizers для управления пиками памяти.

В результате QLoRA позволяет дообучать 7B модель на GPU с 8–12 ГБ VRAM (например, RTX 3060 12GB или даже 8GB с маленьким батчем). Для 13B модели потребуется около 10–12 ГБ, для 70B — уже 48+ ГБ, но всё равно это в разы меньше полного fine-tuning.

Однако квантизация вносит шум: 4-bit представление теряет точность. На практике это может немного снизить качество итоговой модели по сравнению с LoRA на fp16, но для многих задач разница незаметна. Важно: квантизуются только замороженные веса, адаптеры обучаются в полной точности, поэтому градиенты не страдают от квантизации.

Ключевое различие LoRA экономит память за счёт уменьшения числа обучаемых параметров, но базовые веса остаются в fp16. QLoRA дополнительно сжимает базовые веса в 4-bit, что даёт выигрыш по памяти в 3–4 раза, но может немного снизить качество. Выбор зависит от доступной VRAM.

Сколько VRAM реально нужно

Оценки для 7B модели (приблизительно, с батчем 1 и длиной 512):

Метод Память под веса Общая VRAM (с градиентами и активациями)
Полный fine-tuning (fp16) 14 ГБ 60–80 ГБ
LoRA (fp16) 14 ГБ 18–24 ГБ
QLoRA (4-bit) 3,5–4 ГБ 6–10 ГБ

Цифры ориентировочные: активации растут с длиной последовательности и размером батча. Для длины 1024 память может увеличиться на 20–30%.

Где метод уступает полному fine-tuning

LoRA и QLoRA — не серебряная пуля. Они могут не справиться, если:

  • Задача требует глубокого изменения знаний (например, обучение новому языку или значительной перестройке предметной области). Низкий rank ограничивает выразительность.
  • Данных очень много и они разнообразны — полный fine-tuning может дать лучший результат за счёт настройки всех весов.
  • Критична максимальная точность — квантизация в QLoRA вносит шум, и в задачах с жёсткими требованиями (медицина, финансы) лучше использовать LoRA на fp16 или полный fine-tuning.

Также важно: LoRA-адаптеры можно объединять с базовой моделью (merge) для инференса, но при этом теряется возможность быстро переключаться между разными адаптерами.

На каких данных обучение разваливается

Частые причины провала:

  1. Мало данных или они однообразны. Если у вас 50 примеров одного типа, модель переобучится и будет отвечать шаблонно. Для стилевых задач нужно хотя бы несколько сотен разнообразных примеров.
  2. Неправильный формат. Модель ожидает определённый шаблон (например, "### Вопрос: ... ### Ответ: ..."). Если в обучении формат один, а на инференсе другой, качество падает.
  3. Дисбаланс классов. В задачах классификации или извлечения сущностей перекос в сторону одного класса приведёт к смещению предсказаний.
  4. Шумные метки. Ошибки в разметке модель выучит и будет воспроизводить.
Что проверить первым Перед запуском обучения убедитесь, что ваши данные отформатированы так же, как будут подаваться на вход модели при инференсе. Проверьте на небольшом сабсете, что модель хотя бы копирует стиль. Если нет — проблема в данных или в слишком маленьком rank.

Альтернативы: RAG и промпт-инжиниринг

Fine-tuning — не всегда лучший выбор. Если задача — дать модели доступ к внешним знаниям (документам, базе данных), часто эффективнее RAG (Retrieval-Augmented Generation): вы подгружаете релевантные фрагменты в промпт. Это дешевле, быстрее и не требует обучения. Промпт-инжиниринг с few-shot примерами может решить задачу стиля без изменения весов.

Trade-off: fine-tuning даёт устойчивое поведение и не требует передачи длинного контекста, но стоит денег и времени. RAG проще обновлять, но зависит от качества поиска. Промпт-инжиниринг — самый быстрый старт, но ограничен длиной контекста и может быть нестабильным.

Пути освоения

Самостоятельное изучение: статьи, документация Hugging Face PEFT, туториалы. Плюс — бесплатно, минус — нет обратной связи, легко упустить важные детали (например, как правильно настроить evaluation или деплой). Время — месяцы проб и ошибок.

Курсы: структурированный путь с разбором практических кейсов. На asibiont.com курс Fine-tuning LLM покрывает LoRA, QLoRA, подготовку датасетов, гиперпараметры, evaluation и деплой, включая RLHF и DPO. Обучение персонализировано под ваш уровень, есть обратная связь через AI-чат. Это экономит время, но требует финансовых вложений.

Практика на реальных проектах: лучший способ закрепить, но без наставника можно застрять на этапе отладки.

Кому подходит, а кому нет

Fine-tuning (и особенно LoRA/QLoRA) подходит, если вы хотите кастомизировать открытую модель под узкую задачу и у вас есть GPU (хотя бы 8–12 ГБ) и немного данных. Не подходит, если задача решается промптом или RAG, если нет размеченных данных или если требуется максимальная точность на критичных данных — тогда лучше рассмотреть полный fine-tuning или другие подходы.

Если вы готовы разобраться в механике и избежать типичных ошибок, курс Fine-tuning LLM даёт структурированный путь: от подготовки данных до деплоя. Начать можно на странице курса.

← Все статьи

Спросить AI по этой статье

Задайте вопрос по этой статье — ASI Biont ответит, опираясь на её текст.

Читайте также

Ораторское искусство и харизма: как перестать бояться вопросов после выступления (практический гайд)

27 октября 2026

Сколько часов учить испанский до DELE 2026: разбор нормативов, статистики и гибридной подготовки с AI-репетитором

27 октября 2026

Налоговый вычет в 2026: как вернуть деньги за обучение, лечение и квартиру и не потерять их на документах

27 октября 2026

QA Automation Engineer: 5 мифов, которые стоят новичкам месяцев (и как их избежать)

11 ноября 2026

Расторжение договора с фитнес-клубом или салоном красоты и возврат денег: разбор условий, сроков и претензий в 2026 году

27 октября 2026

Full-Stack AI Engineer: как RAG-пайплайны, векторные базы данных и развертывание LLM на самом деле работают в продакшене

28 октября 2026

CIPM / CIPP/E — Управление конфиденциальностью и GDPR (IAPP): как статистика правоприменения GDPR превращает риск несоответствия требованиям в статью бюджета

28 октября 2026

Сверка актов вручную или промптом: где LLM экономит бухгалтеру часы, а где создаёт риски

12 ноября 2026

Профессия: HR-специалист от подбора до HR-стратегии — полный путь в HR: подбор, адаптация, оценка, развитие, мотивация, HR-аналитика, трудовое право и AI-инструменты в рекрутменте

28 октября 2026