Без RAG большая языковая модель ограничена своими знаниями на момент обучения и склонна выдумывать факты. С RAG она перестаёт пытаться запомнить мир и работает как «языковой процессор» для документов, которые ей подкладывают.
Как устроен RAG
- Документы заранее разбиваются на куски (chunks) и переводятся в эмбеддинги — векторные представления.
- Векторы хранятся в векторной базе данных с индексом для быстрого поиска по близости.
- На запрос пользователя строится его эмбеддинг.
- Из базы достаются несколько самых близких кусков.
- Эти куски вместе с вопросом отправляются в модель в виде контекста.
- Модель отвечает, опираясь на переданные документы.
Где сложнее всего
- Качество разбивки документов на куски.
- Качество эмбеддингов и поискового индекса.
- Правильное оформление контекста в промпте: ссылки на источники, защита от противоречий.
- Разбор случаев, когда поиск не нашёл нужный документ и модель выдумала ответ.
- Нужен помощник по вашим документам: продуктовая документация, регламенты, поддержка
- Информация меняется, и её нельзя «зашить» в модель
- Важна возможность сослаться на источник ответа
- Задача чисто стилистическая или творческая и не требует фактических знаний
- База знаний помещается в обычное контекстное окно и можно подать её целиком
- Документы очень разнородные и плохо структурированы — сначала стоит навести порядок в источниках
В банке внедряют RAG поверх внутренних регламентов и обучающих материалов. Сотрудник в чате спрашивает: «какой лимит на снятие наличных по карте премиум-уровня?». Система находит в базе пару нужных пунктов регламента, подаёт их модели, и она отвечает: «Согласно регламенту X (раздел 4.2), лимит составляет ... рублей в сутки; для лимита в месяц см. раздел 4.3». При этом в ответе видны конкретные ссылки на разделы — сотрудник может перепроверить.
Не пытайтесь сделать «идеальный RAG» с первой попытки. Начните с простой версии: разбивка по абзацам, базовая модель эмбеддингов, открытая векторная база. Соберите 30–100 реальных запросов с эталонными ответами, измерьте долю случаев, когда нужный документ попадает в верх результатов поиска. И уже на этих метриках улучшайте каждый компонент отдельно.