Содержание
Оба подхода решают одну задачу — добавить новые знания в LLM — но совершенно по-разному.
RAG (Retrieval-Augmented Generation)
Как работает:
- Во время инференса извлекаются релевантные документы из внешней БД
- Документы подаются в контекст LLM вместе с вопросом
- Модель генерирует ответ, опираясь на найденные фрагменты
Плюсы:
- Скорость развёртывания: можно запустить за дни/недели
- Минимальные вычисления: не нужен GPU для обучения
- Актуальность: добавляешь новые документы — модель сразу их «видит»
- Контролируемость: видно, на какие источники ссылается ответ
- Безопасность: знания хранятся у вас, не в весах модели
- Масштабируемость: легко работать с базами на миллионы документов
- Дешевизна: API или локальное железо (CPU + SSD)
Минусы:
- Качество поиска: если retriever плохо сработал, модель получит плохой контекст
- Размер контекста: есть лимит на количество информации в промпте (100K-200K токенов)
- Сложные рассуждения: для задач, требующих синтеза многих документов, может быть недостаточно
- Латентность: поиск добавляет задержку к ответу
Когда использовать:
- Быстрое внедрение ассистента по вашим документам
- Частые обновления информации (нормативка, прайсы, регламенты)
- Нужна отслеживаемость источников
- Бюджет ограничен
Дообучение (Fine-tuning)
Как работает:
- Берётся предобученная модель
- На вашем датасете (примеры вопрос-ответ, инструкции и т.д.) модель обновляет свои веса
- Результат — новая модель с изменённым поведением/знаниями
Плюсы:
- Встроенные знания: информация становится частью модели, не нужен внешний поиск
- Скорость инференса: нет задержки на retrieval, просто генерируешь ответ
- Специализация: можно адаптировать стиль, формат ответов, предметную область
- Независимость: модель не зависит от внешней БД и качества поиска
- Низкая латентность: чистый LLM без дополнительных сервисов
Минусы:
- Дорого: нужны GPU, часы на обучение (сотни-тысячи $)
- Время: подготовка датасета + обучение = недели/месяцы
- Статичность: чтобы добавить новую информацию, нужно переобучивать
- Галлюцинации: модель может выдумывать факты, которых не было в данных
- Точность: сложнее гарантировать, что модель выучила именно то, что нужно
- Версионирование: сложнее управлять версиями обученных моделей
Когда использовать:
- Нужна низкая латентность (real-time приложения)
- Знания достаточно статичны (редко обновляются)
- Бюджет позволяет инвестировать в обучение
- Нужна специализация поведения модели
Гибридный подход (RAG + Fine-tuning)
На практике часто комбинируют:
- Fine-tuning на стиль/инструкции: модель учится отвечать в нужном формате, быть экспертом в домене
- RAG для свежих данных: актуальная информация подгружается из БД во время инференса
Пример:
- Обучаете модель отвечать как консультант (fine-tuning)
- Подгружаете текущую нормативку и документацию проекта (RAG)
- Модель комбинирует общие знания с конкретными деталями
Сравнительная таблица
| Критерий | RAG | Дообучение | Гибрид |
|---|---|---|---|
| Скорость внедрения | ⚡⚡⚡ дни | 🐢 недели-месяцы | ⚡⚡ неделя-две |
| Стоимость | 💰 низко | 💰💰💰 высоко | 💰💰 среднее |
| Актуальность данных | ✅ мгновенно | ❌ нужно переобучивать | ✅ мгновенно |
| Латентность | ⚠️ +задержка поиска | ⚡⚡⚡ быстро | ⚠️ +задержка поиска |
| Контролируемость | ✅ видны источники | ❌ чёрный ящик | ✅ видны источники |
| Специализация | ⚠️ через промпты | ✅ через веса модели | ✅ через веса + промпты |
| Масштабируемость | ✅ миллионы докумен. | ⚠️ зависит от памяти | ✅ миллионы докумен. |
| Качество | ⚠️ зависит от поиска | ✅ обычно стабильнее | ✅✅ лучшее |


