Что такое RAG: поиск по базе знаний плюс генерация ответа
RAG — способ заставить языковую модель отвечать не по памяти, а по вашим документам. Система сначала находит нужные фрагменты, а затем модель пишет ответ на их основе и показывает источники.
Что такое RAG простыми словами
RAG (retrieval augmented generation, «генерация, дополненная извлечением») — это способ заставить языковую модель отвечать не по памяти, а по конкретным документам.
Представьте экзамен. Обычная LLM сдаёт его по памяти: что запомнила на обучении, то и расскажет, а где не помнит — может сочинить. RAG — это экзамен с открытой книгой: прежде чем отвечать, модель получает нужные страницы из справочника и опирается на них.
Термин закрепился после работы Lewis и соавторов 2020 года. Сегодня RAG — один из самых распространённых способов применять LLM в компаниях: для поддержки, внутренних баз знаний, работы с договорами и регламентами.
Зачем RAG нужен языковой модели
У любой LLM есть три ограничения, которые не лечатся одним только увеличением модели.
- Модель не знает ваших данных. Внутренние регламенты, прайсы, переписка с клиентами, база знаний техподдержки не попадали в её обучение.
- Знания устаревают. У модели есть дата среза: всё, что случилось позже, ей неизвестно.
- Галлюцинации. Когда точного знания нет, модель всё равно выдаёт правдоподобный текст — и он может быть неверным.
RAG решает все три задачи одним приёмом: перед ответом модель получает актуальные фрагменты из нужного источника. Бонус — ответ можно снабдить ссылками, и человек проверит его за минуту.
Как работает RAG-система
RAG состоит из двух этапов: подготовки базы знаний и ответа на вопрос.
Этап 1. Индексация документов
- Сбор. Берут источники: PDF, страницы вики, выгрузки из CRM, письма, таблицы.
- Разбиение на фрагменты. Длинные документы режут на куски по несколько абзацев — их часто называют чанками. Слишком крупный фрагмент тащит в ответ лишнее, слишком мелкий теряет смысл.
- Эмбеддинги. Каждый фрагмент превращают в вектор — набор чисел, который описывает его смысл.
- Сохранение. Векторы вместе с текстом и метаданными (название документа, дата, раздел) кладут в векторную базу данных.
Этап 2. Ответ на вопрос
- Вопрос пользователя тоже превращают в эмбеддинг.
- В векторной базе ищут фрагменты, чьи векторы ближе всего к вектору вопроса, — то есть самые близкие по смыслу.
- Найденные фрагменты вставляют в запрос к модели вместе с инструкцией: «Ответь на вопрос, опираясь только на эти материалы, и укажи источники».
- Модель генерирует ответ и ссылки на документы, из которых он собран.
Как выглядит запрос к модели
Упрощённо запрос, который RAG-система собирает для LLM, выглядит так:
Ты помощник службы поддержки. Отвечай только на основе материалов ниже. Если ответа в них нет, так и скажи. После ответа укажи названия документов, на которые опирался. Материалы: [фрагмент 1 — «Условия возврата», раздел 3] [фрагмент 2 — «Доставка», раздел 1]. Вопрос клиента: можно ли вернуть товар, если упаковка вскрыта?
Пользователь видит только свой вопрос и готовый ответ, но под капотом модель каждый раз получает именно такую сборку: инструкцию, найденные материалы и вопрос.
Эмбеддинги и векторная база
Эмбеддинг — это представление текста в виде вектора, где близкие по смыслу тексты оказываются рядом. Фразы «как вернуть товар» и «оформить возврат покупки» почти не совпадают по словам, но их эмбеддинги будут близки. Поэтому семантический поиск находит нужное, даже если пользователь сформулировал вопрос не так, как написано в документе.
Векторная база — хранилище, оптимизированное для быстрого поиска ближайших векторов среди миллионов записей. На практике поиск по смыслу часто комбинируют с обычным поиском по ключевым словам: он лучше ловит артикулы, номера договоров и точные термины.
RAG в контексте: как найденное попадает к модели
У каждой LLM есть окно контекста — объём текста, который она видит за один запрос. RAG работает именно через контекст: найденные фрагменты просто добавляются в текст запроса.
Отсюда два важных следствия:
- Модель ничего не «запоминает». Документы не меняют её веса, они действуют только в текущем запросе. Обновили документ в базе — следующий ответ уже учтёт новую версию.
- Качество ответа ограничено качеством поиска. Если нужный фрагмент не нашёлся, модель его не увидит — и либо скажет «не знаю», либо, при плохой инструкции, начнёт догадываться.
RAG, дообучение или длинный контекст
| Подход | Что делает | Когда подходит |
|---|---|---|
| RAG | Находит нужные фрагменты и передаёт их модели в запросе | Большая или часто меняющаяся база знаний, нужны ссылки на источники |
| Дообучение (fine-tuning) | Меняет веса модели на ваших примерах | Нужен особый стиль, формат или узкий навык, а не свежие факты |
| Длинный контекст | Передаёт документ модели целиком | Разовая работа с одним или несколькими документами |
Подходы не исключают друг друга. Часто дообученная модель работает поверх RAG, а длинный контекст позволяет передавать больше найденных фрагментов.
Где применяют RAG
- Поддержка клиентов: ассистент отвечает по базе знаний и условиям тарифов, а сложные случаи передаёт оператору.
- Внутренний поиск: сотрудник спрашивает о регламенте отпусков или порядке закупки и получает ответ со ссылкой на документ.
- Юридическая работа: поиск условий в массиве договоров, сравнение с типовой формой.
- Разработка: ассистент отвечает по внутренней документации и коду проекта.
- Агенты: RAG становится одним из инструментов, которые агент вызывает сам, — подробнее в статье про RAG и агентов.
Где RAG-системы ошибаются
- Плохие исходники. Устаревшие и противоречивые документы дают устаревшие и противоречивые ответы.
- Неудачное разбиение. Таблица, разрезанная пополам, или условие, оторванное от исключения, ведут к неверным выводам.
- Нет проверки качества. Без набора эталонных вопросов невозможно понять, стала система лучше или хуже после изменений.
- Слабая инструкция. Если модели не запрещено отвечать сверх найденного, она будет дополнять ответ собственными догадками.
Как проверять качество RAG
Качество RAG складывается из двух частей, и оценивать их стоит отдельно.
- Поиск. Нашла ли система те фрагменты, где действительно есть ответ? Для этого составляют список типовых вопросов и заранее отмечают правильные документы.
- Ответ. Опирается ли модель только на найденное, не искажает ли смысл, правильно ли указывает источники?
Такой набор из нескольких десятков реальных вопросов с эталонными ответами — главный рабочий инструмент команды. Его прогоняют после каждой правки: смены модели, размера фрагментов или инструкции.
Что дальше
Если вы думаете о RAG для своей компании, начните с небольшого пилота на одной базе документов — пошаговый план есть в статье «RAG-пилот за 2 недели». Для генерации ответов и эмбеддингов понадобится доступ к моделям — его можно получить через IRI Gateway.
Читать в разделе «Обучение»
- Что такое LLM: большая языковая модель простыми словами
- Что такое нейросеть и как она работает
- Кто такой AI-инженер (инженер ИИ, LLM-инженер): что делает, стек, как стать
- Кто такой MLOps-инженер: задачи, стек, зарплата
- Машинное обучение простыми словами: что это, как работает, виды и примеры
Частые вопросы
Что такое RAG система?
Это связка поиска и языковой модели. Поисковая часть находит в базе знаний фрагменты, относящиеся к вопросу, а LLM формулирует ответ на их основе и указывает, откуда взята информация.
Как расшифровывается retrieval augmented generation?
Дословно — «генерация, дополненная извлечением». Сначала из внешнего источника извлекают релевантные данные, потом модель генерирует ответ с их учётом. Термин закрепился после работы Lewis и соавторов 2020 года.
Зачем нужен RAG для LLM?
LLM не знает ваших внутренних документов и свежих событий после даты обучения, а по памяти может галлюцинировать. RAG подставляет в запрос актуальные источники, поэтому ответы точнее и их можно проверить.
Что значит RAG в контексте модели?
Найденные фрагменты документов добавляются в контекст — то есть в текст запроса, который модель видит перед ответом. Модель не запоминает их навсегда: они работают только в этом запросе.