Что такое RAG (генерация с дополнением из поиска) и почему это важно
Если вы пользовались ИИ-ассистентом, который, кажется, действительно знает внутреннюю документацию вашей компании или точно отвечает на вопросы по руководству к конкретному продукту, скорее всего, основную работу за кулисами выполняет генерация с дополнением из поиска — RAG (retrieval-augmented generation), а не одна только языковая модель.
Какую проблему решает RAG
Большая языковая модель «знает» только то, что видела при обучении, а обучение происходило в определённый момент времени на определённом наборе общедоступных текстов. У неё нет встроенного доступа к внутренней вики вашей компании, актуальным ценам на ваш продукт, обращениям в поддержку за прошлую неделю или чему-либо ещё, что не существовало (или не было публичным) на момент обучения. Задайте ей прямой вопрос о чём-то из этого — и она либо скажет, что не знает, либо, что бывает чаще, уверенно выдаст правдоподобный, но неверный ответ.
Просто вставлять всю базу знаний в каждый запрос тоже не получится: у большинства таких моделей есть жёсткие ограничения на объём текста, который они могут учитывать одновременно, и даже там, где лимит щедрый, если загрузить всё, что есть, работа станет медленной и дорогой, а ответ часто окажется не лучше, а хуже, потому что действительно важный материал утонет в шуме.
Как на самом деле работает RAG
Генерация с дополнением из поиска решает эту проблему простым двухшаговым процессом, который заново выполняется для каждого вопроса:
- Поиск. Когда пользователь задаёт вопрос, система сначала ищет по вашим собственным документам — базе знаний, набору PDF, каталогу товаров, чему угодно подходящему — и извлекает конкретные фрагменты, в которых вероятнее всего содержится ответ.
- Генерация. Найденные фрагменты передаются языковой модели вместе с исходным вопросом — по сути, с посылом: «Вот что на самом деле сказано в нашей документации. Теперь ответь на вопрос, опираясь только на это».
Модель больше не полагается на то, что запомнила при обучении: она читает реальный исходный материал, который вы ей дали, прямо в момент ответа, и строит ответ на его основе.
Почему это так сильно влияет на точность
Модель, которая работает с реальным актуальным исходным текстом, гораздо реже выдумывает, чем модель, опирающаяся только на память, — потому что у неё есть настоящий материал для ответа, а не статистическая догадка. Это разница между тем, чтобы попросить человека ответить по памяти, и тем, чтобы дать ему настоящее руководство и попросить ответить по нему. Второй подход не только обычно точнее — он ещё и позволяет показать пользователю найденные фрагменты напрямую, чтобы тот мог проверить утверждение, а не верить модели на слово.
Где RAG встречается в реальных продуктах
- Ассистенты поддержки, которые отвечают по вашей реальной справочной документации, а не по общему представлению о «поддержке клиентов».
- Внутренние инструменты для работы со знаниями, которые позволяют сотрудникам задать вопрос обычным языком и получить ответ на основе собственной вики и регламентов компании.
- Поиск по продуктам и Q&A — ответы на вопросы о вашем конкретном каталоге, наличии или характеристиках, а не общие знания о категории.
Чего RAG не исправляет
RAG сокращает число выдуманных ответов, но не исключает их полностью, и эффективность системы определяется этапом поиска: если система извлечёт не те фрагменты или исходные документы сами устарели или содержат ошибки, ответ будет таким же. Кроме того, это не бесплатно: нужен полноценный, хорошо поддерживаемый конвейер, который превращает ваши документы в поисковый индекс, и этот конвейер требует сопровождения по мере изменения документации.
Вывод
Если вы создаёте любую ИИ-функцию, которая должна отвечать на вопросы, используя информацию вашего бизнеса, а не общие знания, RAG почти всегда будет правильной архитектурой, а не приятным дополнением. Это разница между ассистентом, который звучит умно, и ассистентом, который действительно прав.
Правильно построить этот поисковый конвейер — разумно разбить документы на фрагменты, поддерживать индекс в актуальном состоянии и обрабатывать пограничные случаи, когда поиск ничего не находит, — это и есть основная инженерная работа в RAG-функции. Именно на ней Burncode сосредоточивается, когда встраивает ИИ-ассистента в продукт, — далеко за той точкой, где быстрое демо уже выглядело бы готовым.