Вы взяли Llama 3.1 или Qwen 2.5, запустили на своём сервере, поигрались с промптами — и всё равно модель отвечает не так, как надо. То тон не тот, то формат плавает, то в предметной области откровенно «плавает». Что делать?

Большинство сразу тянется к fine-tuning — тонкой настройке. Но это не всегда правильный ответ. В 2026 году у разработчиков есть три основных инструмента адаптации LLM: промпт-инжиниринг, RAG и fine-tuning. И задача — понять, когда именно нужен последний, как его запустить с минимальными затратами и чего ждать на выходе.

Что такое fine-tuning и зачем он вообще нужен

Тонкая настройка — это продолжение обучения уже готовой модели на небольшом специализированном наборе данных. Базовая модель уже «знает язык» и общие закономерности; fine-tuning учит её делать что-то конкретное — и делать это именно так, как нужно вам.

Ключевое слово здесь — поведение. Fine-tuning меняет не то, что знает модель, а то, как она реагирует: стиль ответа, следование формату, тон, способность работать в узкой доменной области.

Fine-tuning — это не про добавление знаний. Это про формирование устойчивых поведенческих паттернов.

Разберём, когда он реально нужен, а когда достаточно более простых инструментов.

Три инструмента адаптации: выбираем правильный

Прежде чем тратить недели на сбор датасета и дни на обучение, стоит честно ответить: нужен ли вам fine-tuning вообще?

ПодходЧто меняетСтоимостьВремяКогда использовать
Промпт-инжинирингФормат вывода, акценты$0ЧасыЗадача хорошо решается через инструкцию
RAGДобавляет актуальные знания$70–1000/месДниНужны свежие данные, документы, база знаний
Fine-tuningИзменяет поведение модели$20–500 разовоНеделиНужны стабильный стиль, формат, доменная специализация
ℹ Правило трёх шагов
Лучшая практика 2026 года: сначала промпт-инжиниринг, потом RAG, и только если проблема остаётся — fine-tuning. Большинство задач решаются на первом или втором шаге.

Признаки того, что fine-tuning нужен:

  • Модель не соблюдает нужный формат вывода даже с подробным промптом
  • Необходим строго определённый стиль или тон (юридические документы, медицинские заключения)
  • Задача предполагает узкую доменную специализацию (разбор логов SIEM, анализ биохимических данных)
  • Требуется стабильное следование внутренним стандартам компании
  • RAG не помогает — проблема не в знаниях, а в рассуждениях и планировании

Fine-tuning точно не нужен, если:

  • Нужны актуальные данные → это задача RAG
  • Базовая модель справляется с хорошим промптом
  • У вас меньше 200–300 качественных примеров

LoRA и QLoRA: обучение без полного переобучения

Полный fine-tuning (full fine-tuning) — это когда вы обновляете все веса модели. Для 7B-параметровой модели это десятки гигабайт VRAM и дни обучения. Для большинства задач это избыточно.

Современный стандарт — PEFT (Parameter-Efficient Fine-Tuning) и, в частности, LoRA и QLoRA.


graph TD
    A[Базовая модель 7B] --> B{Метод обучения}
    B --> C[Full Fine-Tuning]
    B --> D[LoRA]
    B --> E[QLoRA]
    C --> F[40+ GB VRAM\nДни обучения\nПолная копия весов]
    D --> G[16–24 GB VRAM\nЧасы обучения\nАдаптеры ~50 MB]
    E --> H[8–12 GB VRAM\nЧасы обучения\n4-bit квантизация]
    G --> I[Финальная модель]
    H --> I

LoRA (Low-Rank Adaptation) — вместо изменения всех весов модели добавляются небольшие матрицы низкого ранга к целевым слоям. Обучаются только они. Итог: VRAM снижается до 16–24 GB, а качество адаптации сопоставимо с полным fine-tuning.

QLoRA идёт дальше: базовая модель квантизируется до 4 бит (что само по себе снижает потребление памяти на ~75%), а адаптеры обучаются в более высокой точности. Результат — 7B-модель обучается на GPU с 12 GB VRAM (RTX 4070 Ti, RTX 3080 12GB).

💡 Стартовая конфигурация LoRA 2026
Используйте r=16, target_modules="all-linear" и включите DoRA. Ранние руководства советовали таргетировать только q/v-проекции attention, но таргетинг всех линейных слоёв даёт заметно лучший результат.

Какое железо нужно и во сколько это обойдётся

Хорошая новость: для 7B-8B моделей с QLoRA достаточно потребительского GPU. Вот актуальная картина:

МодельМетодМинимальный GPUVRAMОблако (~стоимость)
7B–8B (Llama 3.1, Qwen 2.5, Mistral)QLoRARTX 4070 Ti12 GB~$20–50
13B–14BQLoRARTX 409024 GB~$50–150
30B–34BQLoRAA100 40GB40 GB~$150–300
70BQLoRAA100 80GB / H10080 GB~$300–500

Для локального обучения на потребительском железе стандартным инструментом в 2026 году стал Unsloth — он ускоряет обучение в 2 раза и снижает потребление VRAM на 70% по сравнению с базовым HuggingFace+PEFT.

Для облачного обучения (от 4 GPU) используют Axolotl — более гибкий, но сложнее в настройке.

Пошаговый процесс: от данных до готового адаптера

⚠ Данные важнее архитектуры
80% успеха fine-tuning — это качество датасета. Плохие примеры → плохая модель, сколько бы вы ни крутили гиперпараметры. Потратьте на подготовку данных больше времени, чем на обучение.

Шаг 1. Подготовка данных

Минимальное количество примеров для одной задачи — 200–500 пар (вход → выход). Для мультизадачного instruction tuning нужны тысячи.

Формат данных — чаще всего JSON-L или Alpaca-формат:

{
  "instruction": "Классифицируй тикет поддержки по приоритету",
  "input": "У меня не работает оплата на сайте уже 2 часа",
  "output": "Приоритет: КРИТИЧЕСКИЙ\nКатегория: Платёжная система\nРекомендуемый срок ответа: 30 минут"
}

Качество важнее количества. Лучше 300 идеальных примеров, чем 3000 кое-как размеченных.

Шаг 2. Выбор базовой модели

Для большинства задач в 2026 году оптимальный тир — 7B–8B:

  • Llama 3.1 8B — универсальный выбор для инструкционных задач
  • Qwen 2.5 7B — сильнее в кодировании и структурированных данных
  • Mistral 7B v0.3 — хорош для европейских языков, включая русский

Шаг 3. Обучение с Unsloth

from unsloth import FastLanguageModel
import torch

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/llama-3.1-8b-instruct-bnb-4bit",
    max_seq_length=2048,
    load_in_4bit=True,
)

model = FastLanguageModel.get_peft_model(
    model,
    r=16,
    target_modules="all-linear",
    lora_alpha=16,
    use_dora=True,
    use_rslora=False,
)

Ключевые гиперпараметры:

  • learning_rate: 2e-4 с cosine warmup
  • num_train_epochs: 3–5 для небольших датасетов
  • gradient_checkpointing: "unsloth" — снижает VRAM ценой чуть большего времени

Шаг 4. Оценка результата

Критическая ошибка новичков — оценивать только на hold-out сплите из того же датасета. Тестируйте на out-of-domain примерах: немного другие формулировки, редкие случаи, граничные ситуации.

📝 Быстрая проверка качества
После обучения запустите 20–30 «сложных» примеров вручную: случаи, где базовая модель стабильно ошибалась. Если исправлено 80%+ — fine-tuning удался. Если нет — проблема в данных, а не в гиперпараметрах.

Шаг 5. Деплой адаптера

LoRA-адаптер — это файл весом 20–100 MB. Он накладывается поверх базовой модели при загрузке. Можно мержить адаптер с базовой моделью для ускорения инференса:

# Мерж адаптера с базовой моделью
model = model.merge_and_unload()
model.save_pretrained("my-finetuned-model")

Гибридный подход: RAG + Fine-tuning

Спор «RAG против fine-tuning» в 2026 году — это в основном шум. Настоящий вопрос: где хранить знания, а где кодировать поведение.

Исследования показывают, что совместное использование RAG и fine-tuning даёт прирост точности более чем на 11 процентных пунктов по сравнению с каждым подходом по отдельности.

Рабочая схема для продакшна:

  • RAG — за актуальность: документы, базы знаний, политики
  • Fine-tuning — за поведение: тон, формат, следование стандартам, доменное рассуждение

Такая архитектура позволяет обновлять знания (через RAG) независимо от модели поведения (адаптер), что критично для систем с часто меняющимися данными.

Заключение

Fine-tuning открытых моделей в 2026 году — это доступный, относительно недорогой инструмент, но применять его стоит только тогда, когда промпт-инжиниринг и RAG уже исчерпаны. Если проблема — в поведении модели, а не в знаниях, тогда LoRA/QLoRA с Unsloth на обычном потребительском GPU за $20–50 облачного времени могут кардинально изменить качество системы.

Главное правило: данные решают всё. Потратьте на их подготовку столько же времени, сколько на само обучение — и результат не разочарует.