Недавно ко мне пришёл знакомый с вопросом: «Я хочу, чтобы GPT отвечал на вопросы о нашей компании. Что делать — дообучить модель или загрузить документы?». Я объяснял минут пятнадцать. Потом понял, что объясняю это уже третий раз за месяц.
Значит, нужна статья.
Fine-tuning (дообучение) и RAG (Retrieval-Augmented Generation — поиск с генерацией) решают похожую задачу: сделать языковую модель полезнее для конкретного случая. Но делают это принципиально по-разному. И перепутать их — значит потратить деньги, время и нервы зря.
Полный гайд по fine-tuning с нуля я писал здесь. В этой статье — честное сравнение: когда что выбирать, таблица по шести критериям и чеклист из пяти вопросов, после которых ответ обычно очевиден.
RAG за 2 минуты: модель читает документы на ходу
RAG — это когда модель не знает ответа заранее, но умеет его найти. Схема простая: есть база документов (PDF, страницы сайта, тикеты поддержки), есть поисковик по ней, и есть языковая модель. Когда приходит вопрос — система сначала ищет релевантные куски текста, затем отдаёт их в контекст модели вместе с вопросом. Модель отвечает уже с этими данными.
Ключевое: веса модели не меняются. Она остаётся той же GPT-4 или Llama, просто получает дополнительный контекст перед ответом.
Самый быстрый способ попробовать RAG без кода — AnythingLLM. Загружаете документы, задаёте вопросы. Бесплатно, локально, работает за полчаса. Если нужен визуальный конструктор для более сложных пайплайнов — Dify даёт drag-and-drop интерфейс для сборки RAG-систем.
Подробно о том, как RAG устроен изнутри и как написать его с нуля — полный гайд по RAG.
Fine-tuning за 2 минуты: меняем «характер» модели
Fine-tuning — это обучение модели на своих данных. Берёте предобученную модель (Llama 3.1, Mistral, Qwen) и прогоняете через неё набор примеров — какие запросы должны давать какие ответы. В процессе веса модели немного обновляются, модель «запоминает» паттерны.
После fine-tuning модель не читает документы — она просто знает то, чему её учили. Как стиль письма, тон ответов, специализированная терминология, конкретный формат вывода.
При этом fine-tuning можно сделать на обычном ноутбуке (через LoRA — технику, которая обновляет не все веса, а только небольшой их набор), бесплатно на Google Colab, или через API OpenAI за реальные деньги. Про LoRA подробнее — в отдельной статье.
Дообучение без кода, через веб-интерфейс — Unsloth Studio.
Сравниваем честно: таблица по 6 критериям
| Критерий | RAG | Fine-tuning |
|---|---|---|
| Стоимость | От $0/мес (локально через AnythingLLM, LangChain) | От $0 (Unsloth + Colab GPU) до $8–25 за 100K токенов через OpenAI API |
| Время до результата | Часы — загрузили документы, запустили, работает | Дни — подготовка данных, обучение, оценка качества |
| Сложность | Низкая — инструменты без кода есть | Средняя–высокая — нужен датасет, понимание процесса |
| Что меняет | Знания (что знает модель) | Поведение (как модель говорит, думает, форматирует) |
| Когда устаревает | Никогда — обновляете документы, модель сразу знает новое | Нужно переобучать при изменении требований |
| Минимум данных | 1 документ уже работает | Обычно 500–1000 примеров для заметного эффекта |
Честно скажу: у RAG ниже входной барьер почти по всем параметрам. Fine-tuning оправдывает себя в конкретных сценариях — не потому что он «круче», а потому что решает другие задачи.
Когда выбирать RAG: 4 сигнала
1. Данные обновляются часто. Прайс-лист меняется каждую неделю, база знаний пополняется, политики компании редактируются — с fine-tuning вы будете постоянно переобучать модель. С RAG обновили документ, всё.
2. Нужны ссылки на источники. Корпоративный помощник, который отвечает «по документу HR-политики, пункт 4.3» — это RAG. Fine-tuning так не умеет, у него нет источника, только усвоенные паттерны.
3. Большой неструктурированный корпус. Тысячи PDF, страниц, тикетов — в fine-tuning это просто не войдёт в разумный бюджет. RAG индексирует всё и ищет по запросу.
4. Нет ML-команды. RAG можно настроить через no-code инструменты. Fine-tuning требует хотя бы понимания, что вы делаете.
Типичный пример RAG, который я видел: корпоративный ноулидж-бейс в крупной компании. Сотни внутренних документов, обновляются постоянно. Через AnythingLLM или собственный RAG-пайплайн сотрудники задают вопросы — модель находит ответ в документах и цитирует источник. Никакого ML.
Когда выбирать fine-tuning: 4 сигнала
1. Нужен конкретный стиль или тон. Чат-бот, который говорит «в стиле бренда», использует специфический жаргон компании, всегда отвечает в определённом формате — это fine-tuning. RAG не меняет голос модели.
2. Задача с фиксированным форматом. Классификатор тикетов поддержки, который всегда возвращает JSON с category и priority — fine-tuning натренирует модель на нужный вывод. RAG тут лишний.
3. Узкая предметная область со специфической терминологией. Медицинский диагностический ИИ, юридический помощник по конкретному праву, технический ассистент по собственному SDK — где нужно не просто «знать» термины, а правильно с ними работать. Fine-tuning даёт модели новые «инстинкты».
4. Нет большой базы документов, зато есть много примеров «вопрос → правильный ответ». Если у вас 2000 пар «запрос пользователя — идеальный ответ оператора», это готовый датасет для fine-tuning. RAG тут ничего не даст.
Когда нужны оба: RAG + fine-tuning вместе
Это продвинутый сценарий, который реально встречается в production.
Пример: AI-помощник клиентской поддержки крупного сервиса. Fine-tuning учит модель правильному тону, формату ответов, политике возвратов и поведению в конфликтных ситуациях — это «характер». RAG подтягивает актуальную базу FAQ, статусы заказов, технические документы — это «знания».
Без fine-tuning модель будет отвечать слишком формально или выходить за рамки роли. Без RAG — не знать актуального состояния базы.
Цена: платите за оба компонента. Сложность: заметно выше. Оправдано для продукта с реальной нагрузкой.
Чеклист: 5 вопросов для принятия решения
Ответьте на них честно — обычно после этого всё становится понятно.
1. Данные меняются чаще раза в месяц? → Да → RAG (не будете постоянно переобучать) → Нет → оба варианта подходят, смотрите дальше
2. Важно показывать источник/ссылку на документ? → Да → только RAG → Нет → смотрите дальше
3. Задача — изменить стиль ответов, тон или формат вывода? → Да → fine-tuning (RAG это не умеет) → Нет → смотрите дальше
4. Есть 500+ примеров "правильных" пар вопрос-ответ? → Да → fine-tuning может сработать → Нет → начните с RAG, датасет собирать долго
5. Есть ML-инженер или готовы потратить 2+ дня на изучение? → Да → fine-tuning реалистично → Нет → RAG, там решения без кода есть
Большинство компаний, которые думают «нам нужен fine-tuning», на самом деле хотят RAG. Это не значит, что RAG лучше — просто задача у них про знания, а не про поведение.
FAQ
В чём разница между RAG и fine-tuning? RAG даёт модели доступ к внешним документам в момент ответа — веса модели не меняются. Fine-tuning обновляет веса модели через обучение на примерах — после этого модель «помнит» усвоенные паттерны без внешних источников.
Что дешевле: RAG или fine-tuning? RAG дешевле на старте: AnythingLLM бесплатно, LangChain RAG-пайплайн на открытых моделях — $0/мес. Fine-tuning через OpenAI API стоит $8–25 за 100K токенов обучения. Fine-tuning через Unsloth на Google Colab — бесплатно, но требует времени и понимания процесса.
Можно ли использовать RAG и fine-tuning одновременно? Да. Типичная архитектура: fine-tuning задаёт «характер» модели (тон, формат, роль), RAG обеспечивает актуальными знаниями из документов. Используется в production AI-продуктах — сложнее и дороже, но оправдано.
Для корпоративных документов — RAG или fine-tuning? Почти всегда RAG. Документы обновляются, нужны ссылки на источники, корпус большой. Fine-tuning тут не масштабируется — переобучать модель на каждое обновление политики дорого и медленно.
Сколько данных нужно для fine-tuning по сравнению с RAG? RAG работает с 1 документом. Fine-tuning требует обычно 500–1000 пар «запрос–ответ» для заметного эффекта, желательно 2000–5000 для стабильного результата. Качество данных важнее количества — лучше 500 чистых примеров, чем 5000 сырых.



