# Дообучение модели и LoRA: когда это нужно, а когда хватит RAG

Источник: https://modelium.tech/zhurnal/doobuchenie-i-lora/

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

Сверено 1 октября 2026 года по оригинальным работам и документации PEFT v0.17.0 и TRL v0.29.1. Это объяснение выбора подхода, а не отчёт о собственном обучении или замерах Modelium.

## Что означает дообучить модель

При полном дообучении меняются параметры базовой модели на обучающем наборе. **LoRA** (Low-Rank Adaptation) — другой способ адаптации: базовые веса замораживаются, а обучаются добавленные низкоранговые матрицы. Метод уменьшает число *обучаемых* параметров по сравнению с полным дообучением; результаты и экономию из оригинальной статьи нельзя переносить на произвольную архитектуру, набор данных и железо [s1](#src-s1).

Адаптер не заменяет базовую модель. Формат PEFT хранит его веса и конфигурацию отдельно; в конфигурации указан путь к базовой модели, которую требуется иметь для работы. Сохраняйте ID и ревизию базы вместе с адаптером: одно совпадающее семейное название не доказывает совместимость конкретного checkpoint [s6](#src-s6).

**QLoRA** — не просто другое название GGUF или «4-битная LoRA для инференса». Описанный авторами метод пропускает градиенты через замороженную квантованную 4-битную базу к обучаемым LoRA-адаптерам [s3](#src-s3). Экономию памяти и качество авторы показывали на своих условиях; это не обещание, что любая модель обучится на определённом объёме VRAM.

## Когда выбрать промпт, RAG или LoRA

- **Промпт и готовая модель:** начните здесь, если нужна инструкция, формат или несколько примеров. Проверьте одинаковый набор запросов с фиксированной версией модели и настройками. Это редакционная последовательность проверки, не утверждение о гарантированном качестве.

- **RAG (генерация с извлечением):** когда ответ должен опираться на обновляемые документы, сначала извлекайте подходящие фрагменты и передавайте их модели. В исходной работе RAG различает внутреннюю память модели и внешнюю извлекаемую память [s4](#src-s4). Источник можно обновлять без нового обучения весов, но тогда качество зависит и от поиска, и от того, как модель использует извлечённое. Для важного ответа вручную сверяйте цитируемый фрагмент.

- **LoRA:** рассматривайте, когда есть много качественных размеченных примеров устойчивого поведения, требуемого формата или повторяющейся узкой операции, а промпт и готовая модель не выдержали теста. Параметры `r`, `lora_alpha` и `target_modules` настраиваются отдельно; нельзя копировать чужой адаптер или рецепт без проверки архитектуры и целевых модулей [s2](#src-s2).

LoRA и RAG можно сочетать, но это разные части системы: адаптер меняет поведение модели, а поиск передаёт найденный контекст при запросе [s1](#src-s1) [s4](#src-s4). Если источник фактов меняется ежедневно, обучение «чтобы запомнила документы» не даёт проверяемой ссылки на их актуальную версию; начните с маршрута [RAG для бизнеса](/zhurnal/rag-sistema-dlya-biznesa/).

## Как проверить, что обучение вообще нужно

Соберите отложенный набор реальных запросов с разрешёнными к использованию, обезличенными входами и ожидаемыми выходами. Зафиксируйте ID базы, её ревизию, шаблон запроса, извлечение документов, версии кода и метрику. Сравните три конфигурации на *одних и тех же* примерах: базовая модель с промптом; база с поиском, если нужна фактура; база с обученным адаптером. Отдельно проверяйте случаи, где улучшение формата ухудшает верность фактам. Это предложенный протокол, **не проведённый Modelium эксперимент**.

Официальная документация TRL показывает передачу `LoraConfig` в `SFTTrainer` через `peft_config`, но пример конфигурации и датасет из документации не являются готовым рецептом для ваших русских данных [s5](#src-s5). До запуска обучения проверьте права на обучающие материалы и условия *конкретных* весов. Размер адаптера не равен объёму памяти для загрузки базы, хранения активаций и работы оптимизатора; обещать минимальную GPU без модели, длины примера, батча и профиля прогона нельзя [s1](#src-s1) [s3](#src-s3) [s6](#src-s6).

## Когда не стоит дообучать

Если документация меняется, а ответа с источником нет, сначала проверьте [качество поиска и цитирования](/zhurnal/ocenka-kachestva-rag/), а не пытайтесь хранить правила в весах. Если мало разрешённых и проверенных примеров, сначала оцените готовую модель и промпт. Если адаптер уже существует и вопрос — как обслуживать его на сервере, переходите к [vLLM LoRA](/zhurnal/vllm-lora-adapters/): это отдельная задача от обучения [s6](#src-s6). Для задач программирования сначала протестируйте [готовые локальные модели](/zhurnal/lokalnye-modeli-dlya-programmirovaniya/) на собственном коде; адаптация оправдана только при измеримой разнице на отложенном наборе.

**Следующий шаг:** проверьте поиск и ответы по небольшому набору своих документов в [сценарии RAG-пилота](/zhurnal/rag-sistema-dlya-biznesa/), прежде чем тратить ресурсы на обучение.

## Источники

1. [Hu et al. — LoRA: Low-Rank Adaptation of Large Language Models, v2](https://arxiv.org/abs/2106.09685v2) — получено 2026-10-01
2. [Hugging Face PEFT v0.17.0 — LoraConfig и целевые модули](https://huggingface.co/docs/peft/v0.17.0/package_reference/lora) — получено 2026-10-01
3. [Dettmers et al. — QLoRA: Efficient Finetuning of Quantized LLMs](https://arxiv.org/abs/2305.14314v1) — получено 2026-10-01
4. [Lewis et al. — Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks](https://arxiv.org/abs/2005.11401v4) — получено 2026-10-01
5. [Hugging Face TRL v0.29.1 — PEFT Integration](https://huggingface.co/docs/trl/v0.29.1/peft_integration) — получено 2026-10-01
6. [Hugging Face PEFT v0.17.0 — PEFT checkpoint format](https://huggingface.co/docs/peft/v0.17.0/developer_guides/checkpoint) — получено 2026-10-01
