Fine-tuning LLM: когда дообучение оправдано и как выбрать метод

Fine-tuning LLM нужен не тогда, когда хочется «сделать модель умнее», а тогда, когда уже понятно, какое поведение нужно стабилизировать и как вы это измерите. Разбираем развилку между prompt engineering, RAG, distillation, LoRA, QLoRA и full fine-tuning.

Fine-tuning LLM: дообучение языковых моделей

Проверено 3 мая 2026 года. Fine-tuning LLM обычно вспоминают слишком рано. Команда ещё не выжала нормальный prompt, не проверила retrieval и не собрала внятные evals, но уже хочет «дообучить модель под продукт». Это дорогой способ спрятать нерешённую постановку задачи. Дообучение оправдано, когда проблема действительно в поведении модели: ей нужен устойчивый формат, свой язык предметной области или повторяемое решение узкого класса задач.

Платформы тоже постепенно разводят эти сценарии по разным инструментам. В актуальной документации OpenAI model optimization вынесен в отдельный контур: supervised fine-tuning, direct preference optimization и reinforcement fine-tuning показаны как разные методы, а distillation описана как отдельный путь для удешевления инференса через более компактную модель. Для команды это хороший сигнал: первый вопрос не в том, «как дообучать», а в том, что именно вы хотите изменить — знания, поведение, стоимость или стабильность.

Ниже — практический разбор для команд, которые уже работают с LLM в продукте и хотят понять, когда хватит prompt engineering, когда лучше RAG, а когда пора выбирать между LoRA, QLoRA и полным fine-tuning.

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

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

Практически fine-tuning оправдан в четырёх случаях:

  • нужен предсказуемый формат ответа: JSON-схема, строгая рубрика, единая тональность саппорта, одинаковый стиль классификации или извлечения сущностей;
  • задача узкая и повторяемая, а хорошие примеры уже накоплены в продакшне;
  • длинный системный prompt и few-shot примеры приходится таскать в каждый запрос, из-за чего растут задержка и стоимость;
  • после нормального prompt engineering и теста с retrieval качество всё ещё упирается именно в поведение модели, а не в отсутствие данных.

Что обычно не стоит лечить fine-tuning:

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

В продуктовой практике это часто выглядит так: дообучение полезно не там, где «нужен умнее AI», а там, где уже есть рабочий базовый пайплайн и нужно убрать систематические отклонения. Например, чтобы модель стабильно размечала тикеты по внутренней таксономии, писала ответы в нужном стиле бренда или превращала длинный prompt в постоянное поведение без десяти few-shot примеров в каждом вызове.

Что проверить до запуска: prompt, RAG, distillation или fine-tuning

Одна из самых дорогих ошибок — лечить один класс проблем инструментом из другого класса. Ниже редакционная матрица выбора по состоянию на 3 мая 2026 года. Она собрана из актуальной документации OpenAI по model optimization, SFT, DPO, RFT и distillation.

ПодходЧто меняетсяКогда брать первымТипичный предел
Prompt engineeringТолько инструкции и примеры в запросеКогда задача уже почти решается базовой модельюДлинные prompt, плавающий формат, высокая зависимость от формулировок
RAGК запросу добавляются внешние документы и фактыКогда модели не хватает свежих или приватных данныхНе меняет базовое поведение модели и требует качественного retrieval
DistillationМеньшая модель учится на выходах более сильнойКогда нужен более дешёвый и быстрый инференс на повторяемой задачеНужны evals и хорошая модель-учитель, иначе вы дистиллируете шум
Fine-tuningМеняются веса или адаптеры под ваш датасетКогда нужна стабильная манера работы под конкретную задачуПлохо лечит отсутствие фактов и дорого на грязных данных

У этой развилки есть полезное правило. Если вам нужно «научить модель знать новые документы», почти всегда начинайте с retrieval. Если нужно «заставить модель отвечать одинаково и по вашей внутренней логике», тогда имеет смысл думать про fine-tuning. Если уже есть большой поток качественных ответов сильной модели и вы хотите удешевить инференс, смотрите в сторону distillation.

OpenAI в материале про model distillation прямо описывает этот сценарий как отдельный рабочий контур: сначала собрать dataset через stored completions, затем измерять результат через evals, и только потом доучивать более дешёвую модель под конкретную задачу. Это важный сдвиг. В 2026 году зрелая команда не рассматривает fine-tuning как единственный путь кастомизации.

Скриншот документации OpenAI по fine-tuning best practices
OpenAI уже не сводит кастомизацию модели к одному действию: в актуальной документации отдельно разведены supervised fine-tuning, DPO, reinforcement fine-tuning и distillation. Источник: OpenAI Developers / fine-tuning docs.

LoRA, QLoRA или full fine-tuning: что выбирать в реальной команде

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

Базовая логика такая:

  • LoRA добавляет небольшие обучаемые матрицы к замороженной базовой модели. Идея из оригинальной paper проста: не трогать все веса, а обучать низкоранговые адаптеры там, где модели нужно сместить поведение под новую задачу.
  • QLoRA идёт ещё дальше по экономии памяти: базовая модель хранится в квантованном виде, а обучение снова идёт через адаптеры. Именно поэтому QLoRA стал практическим входом в fine-tuning для команд, которые не хотят поднимать дорогую инфраструктуру под full FT.
  • Full fine-tuning обновляет все веса модели. Это самый тяжёлый и самый дорогой вариант, который имеет смысл только тогда, когда PEFT-подходы оставляют измеримый quality gap, а задача оправдывает стоимость обучения, хранения и отката модели.
МетодЧто обучаетсяПрофиль памятиКогда это разумный старт
LoRAНебольшие low-rank adapters, базовые веса замороженыЗаметно легче full FTСтиль, формат, классификация, извлечение и другие узкие поведенческие задачи
QLoRAАдаптеры поверх quantized base modelЕщё ниже, чем у обычного LoRAКогда память ограничена, а fine-tuning хочется запускать на более доступном железе
Full fine-tuningВсе веса моделиСамый тяжёлый вариантТолько после доказанного quality gap и понятной экономики эксплуатации

Если перевести это на язык решения для команды, правило обычно простое: начинайте с LoRA или QLoRA и переходите к full fine-tuning только по результатам evals, а не по амбициям. Для большинства прикладных задач full FT — это не «более серьёзный» путь, а путь с более высоким налогом на инфраструктуру и откат.

Отдельно важно не путать качество метода с качеством базовой модели. Если базовая модель слабо понимает предметную область, PEFT не сделает чуда. Он просто эффективнее перенесёт ваши сигналы адаптации. Поэтому до запуска fine-tuning полезно вернуться к базе: что именно умеет выбранная LLM и нет ли на рынке модели, которая ближе к вашей задаче уже из коробки. Для быстрого refresher у нас есть объяснение, как работают большие языковые модели и почему выбор базовой архитектуры важнее, чем кажется на старте.

Скриншот страницы QLoRA на arXiv
В abstract paper QLoRA вынесен ключевой тезис метода: снизить memory usage настолько, чтобы дообучение очень больших моделей стало практически доступнее. Источник: arXiv / QLoRA.

Какие данные и evals нужны до первого запуска

Почти все провалы fine-tuning выглядят одинаково: команда переоценила важность метода и недооценила качество датасета. В актуальных best practices OpenAI это сформулировано очень приземлённо: небольшой объём качественных примеров обычно лучше большого объёма слабых; если над разметкой работали разные люди, модель упрётся в уровень их согласия; а training examples должны быть оформлены так же, как inference в продакшне.

Минимальный набор дисциплины до первого прогона выглядит так:

  1. Соберите production-like примеры. Не абстрактные демонстрации, а реальные input-output пары из того потока, который модель увидит после релиза.
  2. Держите формат единым. Если у вас чатовая схема с system, user и assistant сообщениями, она должна быть одинаковой во всём датасете.
  3. Сразу отделите validation или test split. Без отложенной выборки команда почти всегда сравнивает «по ощущению», а не по качеству.
  4. Фиксируйте taxonomy ошибок. Что именно считается провалом: неверный label, уход из JSON-схемы, лишняя галлюцинация, пропуск обязательного поля, плохой tone?
  5. Очищайте чувствительные данные. Если в examples есть персональные данные или внутренние документы, это уже не редактура датасета, а вопрос безопасности и compliance.

Есть и полезная практическая деталь из OpenAI docs: если примеров мало, повторять сильную инструкцию в каждом example часто важнее, чем пытаться «сэкономить токены» за счёт укороченного шаблона. Иначе модель учится не вашей задаче, а случайным корреляциям внутри кривого датасета.

Ещё один зрелый сигнал — не тащить в один fine-tuning сразу несколько разных задач. Команды часто смешивают классификацию, генерацию ответа, тональность и извлечение полей в одном наборе примеров, а потом удивляются нестабильности. Намного надёжнее запускать отдельные adaptation loops под разные задачи или хотя бы жёстко контролировать, что именно считается целевым поведением в одном конкретном прогоне.

Если же у вас нет единственно правильного ответа, а есть сравнение «этот ответ лучше этого», это уже повод смотреть не на базовый supervised fine-tuning, а на методы вроде DPO. То же самое с reasoning-задачами, где нужен grader и outcome-based optimization: здесь актуальные managed APIs уже разводят отдельный reinforcement fine-tuning workflow, и это не просто маркетинговая упаковка, а реальное различие в типе данных.

Пять ошибок, которые сжигают бюджет быстрее всего

  1. Дообучать раньше, чем вы выбрали базовую модель. Если основа плохо справляется с задачей, fine-tuning редко спасает экономику проекта.
  2. Пытаться «зашить знания» вместо подключения данных. Каталоги, прайсы, документация, changelog и policy-документы обычно лучше обслуживаются retrieval-слоем, а не retraining.
  3. Оценивать результат только на демо-примерах. Нужен отдельный validation set и несколько практических regression checks перед релизом.
  4. Смешивать в одном прогоне разные определения качества. Модель не обязана одновременно стать и лучшим классификатором, и лучшим редактором текста, и лучшим SQL-generator.
  5. Не думать об откате. Fine-tuned model без сравнения с baseline, плана отката и понятной зоны ответственности — это операционный долг, а не улучшение.

Есть и более тонкая ошибка: путать «модель стала звучать приятнее» с «модель стала полезнее для бизнеса». Поэтому хороший fine-tuning проект почти всегда начинается с метрики, которая переживает демо-день. Для одной команды это strict accuracy, для другой — JSON validity rate, для третьей — доля тикетов, ушедших без ручной правки. Пока такой метрики нет, дообучение остаётся красивым экспериментом.

Итог

Fine-tuning LLM нужен не тогда, когда хочется «сделать модель умнее», а тогда, когда уже понятно, какое именно поведение нужно стабилизировать и как вы это измерите. Если проблема в знаниях, сначала смотрите в сторону RAG. Если в цене inference при повторяемой задаче — возможно, вам ближе distillation. Если же базовая модель умеет делать нужную работу, но делает её недостаточно ровно, тогда имеет смысл выбирать между LoRA, QLoRA и full fine-tuning.

Практическое правило для 2026 года звучит скучно, но работает: начните с prompt engineering, затем проверьте retrieval, потом соберите evals, и только после этого запускайте fine-tuning. Такой порядок хуже выглядит в презентации, зато лучше переживает продакшн.

Источники

Telegram-канал @toolarium