Разбираем, как в 2026 году дообучать LLM с помощью LoRA, QLoRA и полного fine-tuning. Сравнение методов, параметры, код и практические рекомендации.— Читать дальше «Fine-tuning LLM в 2026: гид по LoRA, QLoRA и полному дообучению»
В 2026 году дообучить 70-миллиардную языковую модель можно на одном игровом GPU. Ещё пять лет назад это звучало как фантастика, а сегодня — рутина для тысяч команд. Но главный вопрос уже не «как», а «стоит ли» и «каким методом».
В этой статье разберёмся, когда fine-tuning решает проблему, а когда проще обойтись промптами или RAG. Сравним LoRA, QLoRA и полное дообучение, посмотрим на цифры и напишем рабочий пайплайн на Python.
Fine-tuning — это донастройка уже предобученной модели под конкретную задачу. Вместо того чтобы учить трансформер с нуля на сотнях гигабайт текстов, мы берём готовую LLM и показываем ей тысячи или десятки тысяч примеров, которые важны именно нам: стиль ответов, формат JSON, медицинскую терминологию или правила поведения в чат-боте.
Важный нюанс: дообучение меняет поведение модели, а не добавляет свежих фактов. Если вам нужно, чтобы бот знал актуальные цены, документацию API или внутреннюю базу знаний — правильный путь это RAG и хороший системный промпт, а не бесконечная перетренировка весов.
Базовые модели 2026 года — GPT-5, Claude 4.5, Llama 3.3, Qwen 3, DeepSeek-V4 — научились следовать инструкциям, вызывать инструменты и выдавать структурированный вывод. Поэтому последовательность действий у большинства команд такая: сначала промптинг, потом RAG, и только потом fine-tuning.
Есть четыре ситуации, где дообучение действительно оправдано:
Главное правило: не пытайтесь впрыснуть в модель факты через дообучение. Исследования показывают, что RAG превосходит fine-tuning по фактической точности, а знания, зашитые в веса, быстро устаревают и приводят к галлюцинациям.
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 добавляет к 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:
Практический вывод: для подавляющего большинства задач полное дообучение не стоит 50–100-кратного роста вычислительных затрат. QLoRA на одном GPU даёт продакшен-качество.
Выбрать метод адаптации — только половина дела. Нужно ещё понять, как учить модель. В 2026 году доминируют три парадигмы.
Классический вариант: модель учится на парах «запрос → идеальный ответ». SFT лучше всего подходит для обучения формату, переноса стиля и работы со структурированными данными. Главное требование — качественный, размеченный датасет.
DPO стала рабочей лошадкой 2026 года. Вместо отдельной reward-модели, как в RLHF, она оптимизирует предпочтения напрямую: у нас есть пары «хороший ответ / плохой ответ», и модель учится выбирать лучший. Это дешевле, стабильнее и проще в настройке. DPO выбирайте для тона, alignment и управления отказами.
Reinforcement Fine-Tuning от OpenAI доступен для o-серии и других reasoning-моделей. Модель обучается не по эталонным ответам, а по пользовательской функции-оценщику. Это мощно для задач с верифицируемой наградой: генерация кода, математика, структурированная экстракция. Главный барьер — нужно сначала написать хороший grader.
Ниже — минимальный рабочий пример на Python с использованием Unsloth и Hugging Face TRL. Мы дообучим адаптеры для Llama 3.3 8B Instruct на собственном датасете инструкций.
# PyTorch + Hugging Face + PEFT + TRL + Unsloth
pip install torch transformers accelerate peft trl bitsandbytes unsloth datasets
# Проверьте, что GPU видна
nvidia-smi # Для 8B-модели желательно от 12 ГБ VRAM
import torch
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/llama-3.3-8b-instruct-bnb-4bit",
max_seq_length=4096,
dtype=torch.bfloat16,
load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
model,
r=16, # LoRA rank
target_modules=[ # Все линейные слои
"q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj",
],
lora_alpha=32, # alpha = 2 * rank
use_rslora=False,
loftq_config=None,
)
from datasets import load_dataset
dataset = load_dataset("json", data_files="my_training_data.jsonl")
def format_chat(example):
messages = [
{"role": "user", "content": example["instruction"]},
{"role": "assistant", "content": example["output"]},
]
example["text"] = tokenizer.apply_chat_template(
messages, tokenize=False
)
return example
dataset = dataset.map(format_chat)
from trl import SFTTrainer
from transformers import TrainingArguments
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset["train"],
dataset_text_field="text",
max_seq_length=4096,
args=TrainingArguments(
per_device_train_batch_size=2,
gradient_accumulation_steps=8,
learning_rate=2e-4,
num_train_epochs=2,
warmup_ratio=0.05,
logging_steps=10,
output_dir="./llama33-finetuned",
optim="adamw_8bit",
report_to="none",
),
)
trainer.train()
# Сохраняем только LoRA-адаптер (~16 МБ для rank 16)
model.save_pretrained("llama33-finetuned-lora")
# Опционально: сливаем адаптер с базовой моделью для быстрого инференса
from unsloth import FastLanguageModel
merged_model = FastLanguageModel.for_inference(model)
merged_model.save_pretrained("llama33-finetuned-merged")
Качество дообучения сильно зависит от нескольких ручек. Вот практические рекомендации на 2026 год.
Начинайте с rank 16 для большинства задач. Rank 8 хватает для простого обучения формату, rank 32–64 дают небольшой прирост на сложной доменной адаптации, но повышают риск переобучения. Очень высокие rank редко окупаются.
Для стандартного SFT с LoRA/QLoRA стартовая точка — 2e-4. Для DPO, GRPO и других reinforcement-методов снижайте до 5e-6. Полное дообучение требует ещё меньших скоростей: 1e-5–5e-6.
Всегда таргетируйте все семь линейных слоёв: четыре слоя внимания и три слоя MLP. Исключение модулей даёт минимальную экономию памяти и заметно портит качество.
Оптимум — 1–3 эпохи. Больше трёх эпох на инструкционных датасетах обычно ведёт к переобучению. Целевой эффективный batch size — 16–32 (batch size × gradient accumulation).
Экосистема дообучения выросла и во многом стандартизировалась.
Часто задаваемые вопросы
1
Какой rank выбрать для LoRA?
Начните с 16. Для простых задач форматирования хватит 8, для сложной доменной адаптации — 32. Высокие rank увеличивают VRAM и риск переобучения без пропорционального прироста качества.
2
Можно ли дообучить 70B-модель на одном GPU?
Да. С QLoRA и Unsloth Llama 3.3 70B помещается в ~48 ГБ VRAM. Это позволяет работать на одной NVIDIA A6000 или арендованной A100/H100 в облаке. Для 7–13B моделей подойдёт даже RTX 4090 с 24 ГБ.
3
В чём разница между LoRA и QLoRA?
QLoRA квантует замороженные веса базовой модели до 4 бит (NF4), а сами LoRA-адаптеры остаются в 16 бит. Это сокращает потребление памяти примерно в 4 раза при потере качества менее 1% на большинстве бенчмарков.
4
Когда использовать DPO вместо SFT?
DPO нужен, когда у вас есть пары «хороший ответ / плохой ответ» и вы хотите настроить тон, alignment или поведение отказов. SFT лучше для обучения формату и размеченных эталонных ответов.
5
Нужно ли полное дообучение в 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 — это не способ научить модель фактам, а способ научить её манере. Тот, кто понимает разницу, экономит десятки тысяч долларов на вычислениях.
Андрей КарпатыйИсследователь ИИ, ранее директор по ИИ в Tesla
Источник: LLM Fine-Tuning 2026: Complete LoRA, QLoRA & Full Fine-Tuning Guide — TechMag на Dev.to.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Будущее мошенничества уже здесь: как LLM превращают целевые атаки в массовый продукт | -2 | 7 | 25-06-2026 |
| 2 | ТОП-10 ИИ-сервисов для помощи с чертежами в 2026 году | 0 | 5 | 26-06-2026 |
| 3 | Нейросеть для генерации видео: ТОП-6 ИИ для создания видео в 2026 году | 0 | 8 | 03-07-2026 |
| 4 | Почему классический CI/CD не справляется с LLM (и какие release gates мы построили, чтобы это исправить) | 0 | 7 | 04-07-2026 |
| 5 | Нейросеть для генерации изображений: ТОП-7 ИИ генераторов картинок в 2026 | 0 | 7 | 03-07-2026 |
| 6 | VPS vs VDS vs виртуальный хостинг: что выбрать в 2026 году | 0 | 7 | 30-06-2026 |
| 7 | Как оживить фото нейросетью бесплатно: пошаговый гайд 2026 года | 5 | 7 | 03-07-2026 |
| 8 | Как ограничить расходы на OpenAI API, чтобы ИИ-агенты не сожгли бюджет | 0 | 8 | 04-07-2026 |
| 9 | Как написать отчёт по практике с помощью ИИ и готовых промптов? | 5 | 7 | 02-07-2026 |
| 10 | В чём реальная проблема ЛЛМ | -5 | 7 | 03-07-2026 |