Языковая модель помнит только то, что видела во время обучения, — а значит, ничего не знает о внутренних документах вашей компании, вчерашней переписке с клиентом или прайс-листе, который обновили час назад. Retrieval-augmented generation (RAG) решает эту проблему не переобучением модели, а более простым и дешёвым способом: подкладывая ей нужные данные прямо в запрос.
Как это устроено пошагово
Документы компании заранее разбиваются на небольшие фрагменты и превращаются в векторы — числовые представления смысла текста — с помощью отдельной модели-эмбеддера. Эти векторы сохраняются в специальной базе данных (векторной базе). Когда пользователь задаёт вопрос, система превращает сам вопрос в такой же вектор и находит в базе наиболее похожие по смыслу фрагменты документов — это и есть этап retrieval, «поиск».
Найденные фрагменты вставляются прямо в промпт вместе с вопросом пользователя, и уже с этим контекстом языковая модель формирует ответ. Модель не «запоминает» документы — она получает нужный кусок текста заново при каждом запросе, как шпаргалку, подготовленную конкретно под этот вопрос.
Почему это лучше, чем просто дообучить модель на своих данных
Дообучение (fine-tuning) меняет веса самой модели и требует времени, вычислительных ресурсов и переобучения при каждом обновлении данных. RAG обновляется мгновенно: добавили новый документ в базу — он сразу доступен для поиска, без переобучения модели. Кроме того, RAG даёт возможность показать источник: система может сослаться на конкретный документ, откуда взят ответ, что почти невозможно для знаний, «растворённых» в весах модели после дообучения.
RAG не делает модель умнее — он даёт ей правильную шпаргалку в нужный момент.
Где RAG ломается на практике
Качество RAG-системы почти целиком зависит от качества поиска, а не от самой языковой модели. Если система находит нерелевантные фрагменты документов, модель честно и уверенно ответит на основе мусора — и это будет выглядеть как «галлюцинация», хотя причина в поиске. Частые проблемы: слишком крупные или слишком мелкие фрагменты документов, устаревшие данные в базе, которые не удалили вовремя, и вопросы, ответ на которые разбросан по нескольким документам, не похожим друг на друга по формулировке.
Главное
- RAG подключает модель к актуальным данным через поиск нужных фрагментов и подстановку их в запрос, а не через переобучение.
- Обновление данных в RAG происходит мгновенно, в отличие от дообучения модели.
- Качество ответов в RAG-системе определяется в первую очередь качеством поиска, а не самой моделью.