Вы потратили неделю на промпт-инжиниринг, модель всё ещё путает формат ответа, а RAG не помогает — потому что проблема не в знаниях, а в поведении. Знакомая ситуация? Именно здесь на сцену выходит fine-tuning — дообучение языковой модели на ваших данных. Но это мощный и дорогой инструмент, и применять его нужно точно по назначению.

В этом руководстве разберём: когда fine-tuning действительно нужен, какой метод выбрать, как подготовить данные и какие инструменты использовать в 2026 году.

Fine-tuning, RAG или промпт-инжиниринг — что выбрать

Прежде чем бросаться дообучать модель, стоит понять, решает ли fine-tuning именно вашу проблему. Существует три основных подхода к адаптации LLM, и каждый закрывает свой тип задач.

ℹ Простое правило выбора
Если проблема в коммуникации — начните с промпт-инжиниринга. Если в знаниях — подключите RAG. Если в поведении модели — рассмотрите fine-tuning.
КритерийПромпт-инжинирингRAGFine-tuning
Что решаетФормат, стиль, простые инструкцииДоступ к актуальным даннымГлубокая специализация поведения
Время внедренияЧасы — дниДни — неделиНедели — месяцы
СтоимостьМинимальная$70–1000/мес (инфраструктура)Обучение + повышенная стоимость инференса
Нужны данныеНетДокументы, базы знанийРазмеченный датасет
ОбновляемостьМгновенноПри обновлении индексаТребует переобучения

Самые производительные продакшен-системы в 2026 году комбинируют все три подхода: промпт-инжиниринг для базовых инструкций, RAG для фактов, fine-tuning для поведения.


graph TD
    A[Проблема с LLM] --> B{Модель не понимает задачу?}
    B -->|Да| C[Промпт-инжиниринг]
    B -->|Нет| D{Не хватает знаний?}
    D -->|Да| E[RAG]
    D -->|Нет| F{Нужно изменить поведение?}
    F -->|Да| G[Fine-tuning]
    F -->|Нет| H[Комбинация подходов]
    C --> I{Решено?}
    I -->|Нет| D
    E --> J{Решено?}
    J -->|Нет| F

Когда fine-tuning действительно оправдан

Fine-tuning — не универсальное решение. Вот конкретные сценарии, где он даёт ощутимый результат:

1. Специализированный стиль и тон. Если модель должна отвечать как врач, юрист или техподдержка вашей компании — и промпт не справляется с консистентностью на масштабе.

2. Строгий формат вывода. Модель должна всегда возвращать JSON определённой схемы, заполнять шаблоны или следовать жёсткому протоколу ответа.

3. Доменная терминология. Медицина, право, финансы — области, где модель должна не просто знать термины (это RAG), а правильно их применять в контексте.

4. Снижение стоимости инференса. Дообученная маленькая модель (7–13B параметров) может заменить GPT-4 на узкой задаче, сократив расходы в десятки раз.

5. Уменьшение латентности. Fine-tuned модель выдаёт нужный результат без длинных системных промптов и few-shot примеров — быстрее и дешевле.

⚠ Когда fine-tuning НЕ нужен
— Модель не знает актуальных фактов → используйте RAG
— Модель не следует инструкциям → улучшите промпт
— Нужна одноразовая адаптация → few-shot примеры в промпте
— У вас менее 100 качественных примеров → данных недостаточно

Методы fine-tuning: от полного обучения до QLoRA

Полное fine-tuning

Обновляет все параметры модели. Даёт максимальное качество, но требует колоссальных ресурсов: для модели на 7 миллиардов параметров нужно 100–120 ГБ VRAM. Это несколько GPU уровня A100 или H100. В 2026 году используется редко — для большинства задач PEFT-методы дают сопоставимый результат при доле затрат.

LoRA (Low-Rank Adaptation)

LoRA — основной метод дообучения в 2025–2026 годах. Вместо обновления всех весов модели, LoRA внедряет небольшие обучаемые матрицы низкого ранга в определённые слои. Остальные параметры замораживаются.

from peft import LoraConfig, get_peft_model

lora_config = LoraConfig(
    r=16,                          # ранг адаптации
    lora_alpha=32,                 # масштабирующий коэффициент
    target_modules="all-linear",   # какие слои адаптировать
    lora_dropout=0.05,
    task_type="CAUSAL_LM"
)

model = get_peft_model(base_model, lora_config)
model.print_trainable_parameters()
# Обучаемых параметров: ~0.5% от общего числа

QLoRA (Quantized LoRA)

QLoRA комбинирует LoRA с 4-битной квантизацией базовой модели. Результат: модель на 70B параметров помещается на одну GPU с 24 ГБ памяти (например, RTX 4090). Потеря качества — около 5–10% по сравнению с полным fine-tuning, что для большинства задач приемлемо.

DoRA (Weight-Decomposed LoRA)

Новый метод, набирающий популярность в 2026 году. DoRA разделяет веса на величину и направление, обучая их раздельно. На практике показывает результаты ближе к полному fine-tuning при затратах LoRA.

МетодVRAM (7B модель)Обучаемых параметровКачествоСтоимость оборудования
Полное fine-tuning100–120 ГБ100%Эталон~$50 000 (H100)
LoRA16–24 ГБ0.5–2%90–95%~$1 500 (RTX 4090)
QLoRA6–12 ГБ0.5–2%88–93%~$500 (RTX 4070)
DoRA16–24 ГБ0.5–2%92–97%~$1 500 (RTX 4090)
💡 Рекомендация на 2026 год
Начинайте с конфигурации: r=16, DoRA, target_modules=“all-linear”, learning rate 2e-4 с cosine warmup. Это оптимальный баланс для большинства задач. Увеличивайте ранг до 32–64 только при значительном доменном сдвиге.

Подготовка данных — ключевой этап

Качество данных важнее их количества. 500 отлично размеченных примеров дадут лучший результат, чем 10 000 шумных.

Формат данных

Стандартный формат — пары «инструкция → ответ» (instruction-response pairs):

{
  "instruction": "Напиши краткое описание товара для карточки маркетплейса",
  "input": "Беспроводные наушники, ANC, 30 часов работы, Bluetooth 5.3",
  "output": "Беспроводные наушники с активным шумоподавлением. До 30 часов без подзарядки. Bluetooth 5.3 для стабильного соединения. Идеальны для музыки, звонков и работы."
}

Чек-лист подготовки датасета

  1. Единая схема. Каждый пример следует одному формату — модель учится паттерну.
  2. Дедупликация. Удалите идентичные и почти идентичные примеры — дубликаты ведут к переобучению.
  3. Качество разметки. Если используете аннотаторов — внедрите перекрёстную проверку (минимум 2 разметчика на пример).
  4. Баланс классов. Если задача классификации — убедитесь, что примеры распределены равномерно.
  5. Валидационная выборка. Отложите 10–20% данных для оценки, причём из другого распределения, не только random split.

Синтетические данные

Современный подход — генерировать часть обучающих данных через сильную LLM (GPT-4, Claude). Это снижает стоимость разметки в разы. Но есть нюанс:

Синтетические данные работают лучше всего в связке с реальными. Человеческие примеры задают стандарт качества и тон, а LLM-генерация масштабирует датасет.


graph LR
    A[Сбор реальных примеров
50-200 шт] --> B[Генерация синтетических
через сильную LLM] B --> C[Человеческая проверка
и фильтрация] C --> D[Дедупликация
и очистка] D --> E[Разделение на
train / val / test] E --> F[Готовый датасет
500-5000 примеров]

Инструменты для fine-tuning в 2026 году

Экосистема инструментов зрелая и разнообразная. Выбор зависит от вашего уровня и задачи.

Для быстрого старта

Unsloth (53.9K звёзд на GitHub) — оптимизированные ядра для ускорения обучения в 2–5 раз при снижении потребления VRAM до 80%. Идеален для работы на одной GPU. Бесплатная версия поддерживает только single-GPU режим.

LLaMA-Factory (68.4K звёзд) — поставляется с веб-интерфейсом LlamaBoard, позволяющим настроить и запустить обучение из браузера. Отлично подходит для экспериментов без написания кода.

Для продакшена

TRL (17.6K звёзд) — официальная библиотека Hugging Face для RLHF и alignment. Каноническое решение для обучения с подкреплением от обратной связи.

Axolotl (11.4K звёзд) — гибкий фреймворк с конфигурацией через YAML. Поддерживает мультимодальные модели (LLaMA-Vision, Qwen2-VL, Pixtral).

PEFT — библиотека от Hugging Face, реализующая LoRA, QLoRA, DoRA и другие PEFT-методы. Интегрируется со всеми вышеперечисленными инструментами.

ИнструментЛучший дляКривая обученияMulti-GPU
UnslothМаксимальная скорость, 1 GPUНизкаяНет (бесплатная версия)
LLaMA-FactoryЭксперименты без кодаМинимальнаяДа
TRLRLHF, alignmentСредняяДа
AxolotlПродакшен, мультимодальностьСредняяДа

Облачные платформы

Если нет своего GPU, fine-tuning можно запустить через API провайдеров:

  • OpenAI Fine-tuning API — дообучение GPT-моделей через загрузку JSONL-файла. Самый простой вход, но привязка к вендору.
  • Replicate / Modal / Lambda — аренда GPU с предустановленным окружением для обучения open-source моделей.
  • Google Vertex AI, AWS SageMaker — enterprise-решения с полным MLOps-циклом.

Практический пример: дообучение через QLoRA

Рассмотрим типичный пайплайн дообучения модели Llama 3 через QLoRA с использованием Unsloth:

from unsloth import FastLanguageModel
import torch

# 1. Загрузка модели с 4-bit квантизацией
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/Llama-3.3-70B-Instruct-bnb-4bit",
    max_seq_length=2048,
    load_in_4bit=True,
)

# 2. Добавление LoRA-адаптеров
model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    target_modules=["q_proj", "k_proj", "v_proj",
                     "o_proj", "gate_proj", "up_proj", "down_proj"],
    lora_alpha=16,
    lora_dropout=0,
    use_gradient_checkpointing="unsloth",  # экономия VRAM
)

# 3. Подготовка данных
from datasets import load_dataset
dataset = load_dataset("json", data_files="training_data.jsonl")

# 4. Настройка тренера
from trl import SFTTrainer
from transformers import TrainingArguments

trainer = SFTTrainer(
    model=model,
    train_dataset=dataset["train"],
    args=TrainingArguments(
        per_device_train_batch_size=2,
        gradient_accumulation_steps=4,
        warmup_steps=10,
        num_train_epochs=3,
        learning_rate=2e-4,
        fp16=not torch.cuda.is_bf16_supported(),
        bf16=torch.cuda.is_bf16_supported(),
        output_dir="outputs",
    ),
)

# 5. Запуск обучения
trainer.train()

# 6. Сохранение адаптера (не всей модели!)
model.save_pretrained("my-finetuned-adapter")
📝 Что получаем
Сохранённый адаптер занимает 50–200 МБ вместо десятков гигабайт полной модели. При инференсе адаптер загружается поверх базовой модели, модифицируя её поведение без дублирования весов.

Заключение

Fine-tuning — мощный инструмент, но не молоток для всех гвоздей. Вот ключевые выводы:

  1. Начинайте с простого. Промпт-инжиниринг → RAG → fine-tuning. Переходите к следующему этапу, только когда предыдущий не решает задачу.
  2. Данные важнее метода. 500 чистых примеров > 10 000 шумных. Инвестируйте в качество датасета.
  3. QLoRA — ваш друг. Позволяет дообучить модель на 70B параметров на потребительской GPU. В 2026 году нет причин начинать с полного fine-tuning.
  4. Комбинируйте подходы. Лучшие продакшен-системы используют fine-tuning для поведения и RAG для фактов одновременно.
  5. Оценивайте на реальных задачах. Не только held-out split — тестируйте на примерах из другого распределения, приближённого к продакшену.

Fine-tuning перестал быть привилегией компаний с серверными стойками. С QLoRA, Unsloth и открытыми моделями вроде Llama 3 любой разработчик может адаптировать LLM под свою задачу за вечер. Главное — точно определить, что именно вы хотите изменить в поведении модели, и собрать для этого правильные данные.