Почему одного RAG уже недостаточно
В последние два года у многих возникло ощущение, что большие языковые модели почти решили проблему доступа к знаниям. Достаточно взять ChatGPT или любую другую сильную LLM, добавить к ней документы компании, подключить поиск по базе знаний, и вот уже кажется, что мы получили универсального цифрового аналитика. Он читает инструкции, отвечает по регламентам, пишет письма, пересказывает договоры, собирает отчёты и даже объясняет табличные данные на человеческом языке. На этом фоне Retrieval-Augmented Generation, или просто RAG, стал восприниматься как практически универсальный рецепт: если модель чего-то не знает, надо просто “подложить” ей нужные данные.
В некотором смысле это действительно так. Самая простая демонстрация RAG выглядит почти как магия. Если модель не знает человека, термина, продукта или внутреннего документа, она честно сообщает, что у неё нет информации. Но стоит загрузить файл — например, резюме, регламент, коммерческое предложение, фрагмент базы знаний — и та же самая модель начинает отвечать вполне предметно. Без переобучения, без построения отдельной модели, без длительной подготовки датасетов. Кажется, будто знание возникло из воздуха. На самом деле произошло не обучение, а подключение внешней памяти. Именно в этом и состоит ключевая идея RAG: модель остаётся языковым движком, а знания приходят к ней извне
Эта идея оказалась настолько мощной, что быстро вышла за пределы чат-ботов. RAG начали использовать в корпоративных ассистентах, в системах поиска по внутренним документам, в службах поддержки, в аналитике, в юридических продуктах, в медицине, в образовании. Причина понятна: языковая модель сама по себе сильна в формулировках, объяснениях, обобщениях и генерации текста, но она ограничена тем, чему была обучена заранее. Как только появляется возможность “подкладывать” ей актуальные данные, она начинает выглядеть не просто как генератор текста, а как универсальный интерфейс к информации.
Однако именно в этот момент и начинается главное недоразумение. Многие воспринимают RAG как знаниевую систему, хотя в реальности в большинстве случаев он остаётся поисковой надстройкой над языковой моделью. Да, это очень умная надстройка. Да, она может вернуть релевантные куски текста и сформировать на их основе хороший ответ. Но это ещё не означает, что система действительно понимает структуру знаний. Она умеет искать фрагменты и включать их в контекст ответа. Это важно, полезно и уже даёт огромную практическую ценность. Но когда объём данных начинает расти, а вопросы становятся сложнее, этого механизма становится недостаточно.
Чтобы понять ограничение, полезно очень спокойно разобрать, как работает классический RAG. Обычно документы разбиваются на небольшие куски — чанки. Каждый такой кусок пропускается через embedding-модель, превращаясь в векторное представление. Эти векторы сохраняются в специальной базе. Когда пользователь задаёт вопрос, система также превращает его в вектор и ищет в базе н��иболее близкие по смыслу фрагменты. Затем несколько найденных кусочков текста отправляются в контекст LLM, и модель формирует ответ на их основе. Если упростить до предела, то RAG — это способ дать модели не весь архив документов, а только небольшой набор фрагментов, которые алгоритм счёл наиболее похожими на запрос.
На малых объёмах данных этот подход работает впечатляюще хорошо. Если у вас десятки файлов, сотни страниц, ограниченный круг тем и достаточно прямые вопросы, система действительно начинает напоминать интеллектуального помощника. Она находит нужный раздел инструкции, сопоставляет информацию из нескольких абзацев, извлекает факты, пересказывает их человеческим языком и даже может ссылаться на источник. Для огромного числа прикладных задач это уже революция. Неудивительно, что именно такой формат стал первым массовым мостом между LLM и корпоративными данными.
Но любой инженерный подход имеет область применимости. RAG хорош до тех пор, пока достаточно найти несколько удачных фрагментов текста. Проблемы начинаются тогда, когда знания размазаны по множеству документов, когда важна связь между частями информации, когда ответ нельзя получить из одного абзаца, а нужно собрать из нескольких уровней логики. Чем больше файлов, тем выше вероятность того, что даже при хорошем similarity search система просто не поднимет в контекст те куски, которые действительно критичны для ответа. Она вернёт самые похожие — но не обязательно самые значимые.
Именно здесь становится заметен разрыв между “поиском похожих фрагментов” и “работой со знанием”. Представим простую ситуацию. В одном документе сказано, что Алиса работает с Бобом. В другом — что Боб изучал картины Леонардо да Винчи. В третьем — что Алиса много обсуждает рабочие темы именно с Бобом. Если спросить человека, знает ли Алиса что-то о Леонардо да Винчи, он не станет искать буквальное предложение “Алиса знает Леонардо да Винчи”. Он построит промежуточную цепочку рассуждения. А вот классический RAG, особенно на большой базе, часто попытается найти прямое подтверждение и, не обнаружив его, скажет, что информации недостаточно. И формально он будет прав. Но по сути — не справится с задачей, которую человек решает естественным образом.
Здесь возникает важный философский и инженерный вопрос. Что мы вообще хотим от систем следующего поколения? Чтобы они находили нам похожие куски текста или чтобы они могли работать со структурой мира? Пока вопрос остаётся простым — например, “какой срок оплаты указан в договоре”, “какие поля есть в этой таблице”, “что написано в четвёртом пункте инструкции” — поисковая парадигма ещё удерживается. Но как только мы начинаем спрашивать о связях, причинности, зависимостях, скрытых пересечениях между сущностями, простой RAG начинает демонстрировать свою границу.
Есть ещё одна проблема, которая редко обсуждается спокойно. Это ограниченность контекста самой модели. Часто создаётся ложное впечатление, что если у современных моделей большое контекстное окно, то проблема почти решена: можно просто загрузить больше текста. На практике это не так. Во-первых, контекст всё равно ограничен. Во-вторых, даже если модель теоретически может принять очень большой объём текста, это не означает, что она одинаково хорошо удержит все связи внутри него. В-третьих, рост контекста не отменяет проблему выбора: какие именно фрагменты считать важными, в каком порядке их подавать, как не потерять скрытые связи между документами. Чем больше база знаний, тем острее становится вопрос не о доступе к тексту, а о его структурировании.
Наконец, есть проблема галлюцинаций, и она в случае RAG меняет свой характер, но не исчезает. Иногда кажется, что если модель отвечает по источникам, то она уже безопасна. Но модель всё равно остаётся генератором текста. Она может неправильно интерпретировать найденный фрагмент, смешать сведения из разных источников, слишком уверенно обобщить частный случай или достроить ответ там, где контекст оказался неполным. Да, наличие внешнего источника уже резко повышает качество. Да, fact-checking становится проще, потому что можно посмотреть, на что именно сослалась система. Но сам принцип работы по фрагментам текста не убирает фундаментальную проблему: между текстом и знанием всё ещё лежит слой интерпретации.
Если смотреть на это трезво, классический RAG — не финальная архитектура интеллекта, а очень сильный переходный этап. Он нужен и полезен, потому что позволяет LLM работать с внешними данными. Он превращает модель из болтливого собеседника в интерфейс к документам, базам и регламентам. Но по-настоящему трудные задачи начинаются там, где информации слишком много, где она неструктурирована, где смысл разбросан по множеству источников и где ответ должен рождаться не из “похожего текс��а”, а из связанного знания.
Именно поэтому разговор о следующем шаге становится неизбежным. Когда объём данных растёт до сотен тысяч и миллионов документов, когда система должна удерживать долгие связи, когда нужен не просто поиск, а логическая работа с фактами, текст перестаёт быть удобной единицей памяти. Нам нужна другая форма представления знания. Не набор фрагментов, не просто векторный индекс, а структура, в которой сущности и связи существуют явно. И тут мы приходим к тому, что долгое время считалось слишком академической или слишком тяжёлой темой для практического AI, — к онтологиям.
