Наши публикации

Интеграция RAG(Retrieval-Augmented Generation) и графов знаний в генеративных ИИ (часть 1)

AI Knowledge Graphs LLM

Интеграция RAG(Retrieval-Augmented Generation) и графов знаний в генеративных ИИ (часть 1)

Введение

Генеративные модели на базе больших языковых моделей (Large Language Models, LLM) добились впечатляющих успехов, однако им присуща проблема «галлюцинаций» – уверенной генерации фактологически неверной информации[1]. Галлюцинации возникают из-за ограничений обучения: модель может полагаться на устаревшие или обобщённые данные и выдавать правдоподобные, но неверные ответы[1]. Особенно опасно это в чувствительных областях (медицина, финансы, право), где ошибки недопустимы. Для борьбы с этим явлением исследователи обратились к стратегии Retrieval-Augmented Generation (RAG) – дополнения процесса генерации этапом поиска внешней информации[2]. RAG, впервые предложенный компанией Facebook (Meta) в 2020 году (Lewis et al., 2020), сочетает работу LLM с модулем поиска по внешней базе знаний. При поступлении запроса сначала извлекаются релевантные документы, затем модель генерирует ответ с опорой на найденные данные[2]. Такая архитектура позволяет уменьшить количество галлюцинаций, предоставляя модели актуальные факты в контексте и не требуя изменений в самой модели[2].

Однако классические реализации RAG обычно работают с неструктурированными текстовыми данными (например, фрагментами документов), что тоже имеет ограничения. Часто извлекаются избыточные или повторяющиеся фрагменты, нарушается связность (при разбиении текстов на куски), и модель всё ещё может терять контекст или логические связи[3][4]. Например, исходный подход RAG дробил документы на куски по ~100 слов, что нарушало семантику и иногда приводило к галлюцинациям[5]. Были предложены улучшения – скользящее окно при разбиении, контекстное расширение на уровне предложений, добавление метаданных источника и пр.[5] – но проблема полностью не устраняется.

В последние пять лет появилась новая тенденция: интеграция графов знаний (Knowledge Graphs, KG) в контур RAG для более надёжного извлечения и представления знаний. Граф знаний – это структурированная база фактов, где узлы – сущности (объекты, люди, организации и т.п.), а рёбра – отношения между ними. Такой формат хранит курированные, взаимосвязанные знания и позволяет делать многшаговые выводы по связям[6]. В данной работе представлено исследование практического использования связки RAG + граф знаний в генеративных ИИ-системах в период 2020–2025 гг. Мы рассмотрим реальные примеры от ведущих компаний (Google, Meta, OpenAI, Microsoft и др.), опишем архитектуры и методики интеграции, а также проанализируем, как это влияет на точность и надежность ответов моделей. Особое внимание уделяется снижению доли галлюцинаций благодаря использованию графов знаний и наличию открытых реализаций таких систем.

RAG и графы знаний: структурированное знание против галлюцинаций

Почему графы знаний? Неструктурированные документы содержат много лишнего текста и неявных связей, тогда как граф знаний предлагает явную структурированную карту фактов. В нём каждое знание представлено в виде триплета «сущность – связь – сущность», например: «Париж – столица – Франции». Такая структура более точно отражает факты и связи, чем разрозненные тексты. Исследования показывают, что использование хорошо организованных, проверенных знаний из структурированных источников (KG) позволяет лучше придерживаться фактов в ответах моделей[7]. Иными словами, интеграция графа знаний ближе выравнивает ответы ИИ с реальной фактической информацией, снижая риск выдуманных деталей[7].

Кроме того, графовые базы поддерживают логические переходы между связанными фактами, что даёт модели возможность совершать multi-hop выводы (переходы по цепочкам отношений) для ответа на сложные запросы[8][9]. В традиционном RAG, где контекст – плоский список фрагментов текста, такие многшаговые рассуждения затруднены[10]. Граф знаний же явно хранит, какие сущности связаны, и тем самым облегчает моделям поиск опорной информации через несколько шагов. Это не только повышает достоверность, но и способствует объяснимости: путь по графу знаний можно интерпретировать как основание для ответа, предоставляя своеобразное «объяснение» вывода модели[11]. Исследования 2023–2024 гг. отмечают, что интеграция KGs в LLM не только уменьшает галлюцинации, но и улучшает логическое рассуждение, интерпретируемость и доступ к узкоспециализированным знаниям[12].

Важно подчеркнуть, что использование графа знаний в RAG можно реализовать разными способами. В обзоре Agrawal et al. (2024) методы классифицируются по этапам интеграции: на стадии извлечения знаний (retrieval), на стадии самого рассуждения модели, на этапе обучения или валидации результатов[13][14]. Наш фокус – инференс, то есть как именно LLM получает и применяет структурированные факты при генерации ответа (иногда это называют KG-augmented retrieval). Здесь возможны варианты:

  • Прямой запрос к графу знаний. Модель или связанный с ней модуль формирует запрос (например, в языке запросов к графу или в виде ключевых сущностей) и извлекает из графа релевантные триплеты. Так, Baek и соавт. предложили систему KAPING (2023), которая определяет сущности в пользовательском вопросе и подтягивает из графа знаний связанные факты-триплеты для ответа[15]. Было показано, что такая подача фактов из KG улучшает ответы моделей в задачах zero-shot вопрос-ответ, давая им нужные факты вместо того, чтобы модель «догадывалась» сама[15]. Аналогично, Wu и др. (2023) выяснили, что если преобразовать найденные триплеты в естественно-языковые утверждения и добавить их в контекст LLM, то качество ответов заметно растёт[16].
  • Специализированные графовые поисковики. Столкнувшись со сложными вопросами, в которых простого семантического совпадения недостаточно, исследователи обучают графовые модели поиска. Например, Sen и др. (2023) разработали модуль-ретривер на основе модели для вопросо-ответных задач по графам (KGQA), чтобы лучше справляться со сложными запросами, где обычный векторный поиск по тексту неэффективен[16].
  • Комбинация структурированных и неструктурированных данных. Проект StructGPT (Jiang et al., 2023) демонстрирует подход, где LLM может обращаться не только к текстам, но и к таблицам, базам данных и графам знаний, используя специализированные «структурированные» подсказки и запросы[17]. Это позволяет извлекать точные данные (например, числа из таблиц или факты из графа) и вставлять их в ответ, повышая его точность.

Таким образом, накоплен значительный опыт по обогащению RAG структурированным знанием. Рассмотрим конкретные кейсы ведущих технологических компаний и сообществ, реализовавших связку RAG+KG на практике, и оценим, каких результатов удалось достичь.

Примеры практической интеграции графов знаний и RAG

GraphRAG от Microsoft: графовая надстройка над RAG

Одним из наиболее известных примеров является GraphRAG, разработанный в Microsoft Research в 2023–2024 гг. Это расширение RAG, в котором строится граф знаний на основе анализируемой коллекции документов и используется для улучшения извлечения и ответа. Важная особенность GraphRAG – граф знаний генерируется самой LLM: модель прогоняет весь корпус данных, выделяет сущности и отношения, и на этой основе автоматически строится граф[18][19]. По сути, GraphRAG создает индекс знаний в виде графа поверх исходных текстов. Далее этот граф применяется двояко: (1) На этапе поиска – вместо плоского набора фрагментов ищутся связанные подграфы, содержащие все релевантные сущности для запроса[20]. Например, запрос по продуктовой базе данных вытащит связанный подграф характеристик товара, вместо десятка почти идентичных описаний[20]. (2) Для смысловой агрегации – граф позволяет выявлять кластеры связанных сведений и предварительно их суммировать. В Microsoft отметили, что GraphRAG выявляет тематические сообщества в данных (по сути, группы плотно связанных узлов) и генерирует для них краткие обзоры[21][22]. Это даёт модели обзор всех ключевых тем датасета ещё до поступления конкретного вопроса. Затем при запросе GraphRAG умеет отвечать на “глобальные” вопросы о всём датасете, например “каковы основные темы этого корпуса документов?”, чего не может обычный RAG[22][23].

Архитектура GraphRAG включает несколько модулей. В блоге Microsoft (2024) описаны стадии: переформулировка запроса, обогащение запроса (например, извлечение связанных сущностей), двойной поиск – одновременно семантический (по графу) и обычный векторный (по текстам)[24][25]. Совмещение двух видов поиска позволяет проверять соответствие найденной информации: графовая составляющая подтверждает семантическую связанность результатов, а векторная – покрытие исходного текста[26]. В итоге собирается контекст для генерации ответа. При генерации GraphRAG также применяет технику prompt compression – на основе графа отбирает только наиболее важные куски знаний для включения в подсказку модели[27][28]. Это избавляет контекст от лишнего текста, экономя токены и снижая шанс конфабуляций.

Практические результаты GraphRAG впечатляют. По данным Microsoft Research, интеграция графа знаний позволила значительно улучшить качество ответов по ряду параметров. В частности, при сравнительном тестировании на сложных корпусах GraphRAG в ~70–80% случаев побеждал классический RAG по метрикам полноты ответа и разнообразия содержащейся информации[29]. Например, GraphRAG способен охватить больше аспектов вопроса и привести разные перспективы или факты, тогда как обычный RAG нередко упускает часть информации[30][29]. Это особенно важно для аналитических запросов. При этом, что критически значимо, достоверность не страдает: проверка с помощью метрики SelfCheckGPT показала, что уровень фактической точности (faithfulness) у GraphRAG не ниже, чем у базового RAG[31]. Иными словами, добавление графа знаний не приводит к появлению новых ошибок – ответы остаются столь же (или более) верными исходным данным. Более того, GraphRAG предоставляет пользователю прозрачность: каждое утверждение в ответе сопровождается ссылкой на исходный источник[11]. Модель буквально «прикладывает» доказательства из базы знаний к своим словам, что резко повышает доверие – пользователь может сам проверить, откуда взят тот или иной факт. На рисунке в блоге Microsoft показан пример: традиционный RAG не смог ответить на вопрос о «Novorossiya», а GraphRAG обнаружил эту сущность в графе, нашёл связанные факты и выдал развернутый ответ с цитированием источника[32][33]. Такая прозрачность и обоснованность ответов напрямую помогает бороться с галлюцинациями, ведь модель не выдаёт непроверенную информацию – все факты подтверждены данными из графа.
Отдельно стоит отметить кейсы применения GraphRAG в индустрии. Банк BNP Paribas в 2025 году опубликовал результаты экспериментов с GraphRAG на финансовых документах (проекты FactRAG и HybridRAG). В задачах по нормативной документации они добились снижения числа галлюцинаций на 6% по сравнению с обычным RAG[34], одновременно сократив количество затраченных токенов на 80%. Структурированное хранение знаний позволило эффективнее отсеивать лишнюю информацию и экономить контекст[35]. Также за счёт графовых методов выявления противоречий повысилась точность: при сравнении двух больших регуляторных документов GraphRAG быстрее и точнее находил несовпадения и обеспечил 734-кратное снижение объёма обработанного текста, нужного для проверки консистентности[36]. Этот пример демонстрирует, что GraphRAG полезен не только для открытого веб-знания, но и для частных корпоративных данных – финансовых, юридических и др., где особенно важно исключить вымышленные или ошибочные выводы. В середине 2024 г. Microsoft открыла исходный код GraphRAG[37], а также выложила связанный ускоритель (GraphRAG Accelerator) для простого деплоя в Azure[38]. Это позволило сообществу экспериментировать с технологией и адаптировать её к своим данным. Таким образом, Microsoft продемонстрировала, что связка “LLM + граф знаний” способна значительно укрепить надёжность генеративного ИИ, и предоставила инструменты для её практического внедрения.

DataGemma от Google: привязка языковых моделей к фактам Data Commons

Компания Google также активно работает над снижением галлюцинаций путём подключения LLM к структурированным данным. В 2024 году Google представила проект DataGemma – семейство открытых моделей, которые соединяют языковую модель с огромным графом статистических данных Google Data Commons[39][40]. Data Commons – это общедоступный граф знаний, агрегирующий свыше 240 миллиардов статистических фактов из надёжных источников (ООН, ВОЗ, Всемирный банк и др.)[41]. Идея DataGemma в том, чтобы «приземлить» ответы модели на прочный фундамент реальной статистики, особенно для вопросов, связанных с данными, числами и актуальными фактами[42].

В рамках DataGemma Google исследовал два режима интеграции знаний: Retrieval-Interleaved Generation (RIG) и классический Retrieval-Augmented Generation (RAG)[43][44]. RIG предполагает, что модель динамически сама делает запросы к базе во время генерации ответа, чтобы проверить факты (“interleaved” – перемежая генерацию запросами)[43]. По сути, модель пытается фактчекинг в реальном времени: заметив, что нужен статистический показатель, она извлекает его из Data Commons и включает в ответ. RAG же в реализации Google – это использование расширенного контекста: перед генерацией модель получает релевантные выдержки из Data Commons по заданному вопросу[44]. Так, на запрос «Повысилось ли использование возобновляемых источников энергии в мире?» DataGemma-RAG найдёт в графе знаний последние мировые данные по возобновляемой энергетике и выдаст ответ с этими цифрами, снабдив сноской на источник[43][44]. Благодаря длинному контекстному окну (в эксперименте использовалась модель Gemini 1.5 Pro с расширенным контекстом) модель способна учесть большой объем фактов перед генерацией ответа[44]. Ключевое – ответы DataGemma обогащены проверенными данными, что минимизирует риск галлюцинаций по критически важным пунктам[45][44].

Предварительные результаты Google оказались обнадёживающими. Разработчики сообщают, что при использовании RAG/RIG с Data Commons точность ответов модели на запросы с числовыми данными заметно возросла[46]. Модель стала правильно называть статистику там, где ранее могла бы угадывать. В результате пользователи, по оценке Google, столкнутся с существенно меньшим количеством галлюцинаций во многих сценариях – от исследовательских запросов до повседневных вопросов из любопытства[46]. Проще говоря, если модель знает, где взять истинный факт, ей нет нужды его выдумывать. Команда Google опубликовала демонстрационные блокноты (Colab) для RIG и RAG с DataGemma и открыла доступ исследователям к самой модели на HuggingFace[47][48]. Это свидетельствует об уверенности в том, что такой подход полезен и для сообщества. Более того, в блоге отмечается намерение внедрить эту функциональность в будущие модели семейства Gemini (флагманские LLM Google)[49], сначала в ограниченном доступе. То есть Google планирует на производственном уровне интегрировать граф знаний Data Commons в свои ИИ-системы, сделав их ответы более надёжными. В совокупности, опыт Google показывает, что привязка генеративной модели к масштабному глобальному графу знаний способна существенно уменьшить фактологические ошибки. Модель не просто черпает из “интернета” (где данные могут быть устаревшими или недостоверными), а обращается к единому достоверному источнику. Это особенно ценно для вопросов о свежих данных (например, статистика последних лет), где обычная LLM без обновления знаний будет галлюцинировать. DataGemma решает эту проблему, соединяя лучшее из двух миров: мощь генеративной модели и достоверность базы знаний.

LightRAG и PathRAG: оптимизация знаний для эффективности

Помимо крупных компаний, вклад в развитие связки RAG+KG внесло академическое сообщество и стартапы. Появилось несколько ответвлений, нацеленных на улучшение эффективности и фокусировки при использовании графов знаний.

LightRAG – разработка команды HKUDS (Гонконг) в 2023 г., которая стремится сохранить основные преимущества GraphRAG, но сделать систему более лёгкой и быстрой[50]. Авторы LightRAG отмечают, что построение полного графа знаний для большого корпуса – затратная операция (как по вычислениям, так и по поддержке обновления данных)[51][52]. Поэтому LightRAG предлагает «облегчённый» графовый индекс, который включает только самые важные сущности и связи[53]. Фактически происходит отбор ключевых узлов и рёбер, релевантных решаемым задачам, формируя компактный граф. Далее LightRAG использует двухуровневый поиск: локальный (по ключевым узлам графа) и глобальный (по остальным данным)[54]. Это позволяет, с одной стороны, быстро находить точечные факты, а с другой – не потерять общий контекст[55]. Важная особенность – инкрементальное обновление графа: LightRAG умеет добавлять новые данные, перестраивая только затронутые части графа, без полной переработки всего индекса[56]. Преимущества такого подхода: высокая эффективность (меньше вычислений, чем у полного GraphRAG) и гибкость для динамически меняющихся данных[57]. Разработчики показывают, что LightRAG достигает сопоставимого качества извлечения, экономя при этом значительные ресурсы[57]. Однако за счёт агрессивной фильтрации информации LightRAG может упускать тонкие детали – если важный факт не попал в лёгкий граф, модель его не учтёт[58]. Таким образом, LightRAG – это компромиссный вариант: снижение нагрузки ценой потенциальной потери некоторой глубины знаний. Код LightRAG также открыт на GitHub[50], что позволило провести независимые оценки и убедиться в его эффективности на различных корпусах.

PathRAG – другое направление, предложенное командой BUPT-GAMMA (Пекинский университет почты и телеком) в 2023 г. Если GraphRAG строит полный граф, а LightRAG сокращает граф по узлам, то PathRAG концентрируется на наиболее важных путях в графе знаний[59]. Основная идея PathRAG: для каждого запроса выделить подграф, связанный с запросом, и в нём отфильтровать только те пути (последовательности связей), которые непосредственно относятся к вопросу[60][61]. По сути, PathRAG реализует умную обрезку графа. Алгоритм начинает с поиска в графе узлов, наиболее соответствующих запросу (релевантных сущностей)[60]. Затем выполняется pruning – отсечение всех ветвей, которые не ведут к этим узлам напрямую или через короткие связи[60][62]. Остаются только «магистральные» пути знаний, по которым информация перетекает к ключевым сущностям вопроса. Эти пути превращаются в компактный контекст для LLM. Такой подход имеет два явных плюса: во-первых, модель получает высоко релевантные и концентрированные данные без информационного шума[62]; во-вторых, сокращается объём токенов, необходимых для представления знаний – ничего лишнего не включается[61]. Авторы PathRAG подчёркивают, что система минимизирует избыточность и тем самым экономит контекстное окно и снижает риски «утонуть» в посторонней информации[63][62]. По результатам их экспериментов PathRAG показал высокую точность и интерпретируемость ответов: поскольку внимание уделяется только ключевым фактам, ответы получаются чёткими и обоснованными, а каждый шаг рассуждения можно проследить по выбранному пути в графе[64]. Проект PathRAG также доступен на GitHub[65] и получил внимание сообщества как пример тонкой настройки баланса между полнотой и точностью знаний.

Помимо LightRAG и PathRAG, в 2024–2025 гг. появились и другие гибридные решения. Некоторые компании предлагают интегрировать существующие графовые базы данных в RAG-пайплайн. Например, в облачной платформе AWS есть инструменты для подключения собственного непрерывно обновляемого графа знаний к RAG-приложениям, используя сервисы Amazon Neptune (граф СУБД) совместно с генеративными ИИ. Появились утилиты в популярных библиотеках: фреймворк LangChain включает модули LLMGraphTransformer и Diffbot для автоматического извлечения графа из текстов, а также модель REBEL для выделения отношений из неструктурированного текста[66]. Это позволяет разработчикам быстро построить граф знаний из своих документов и добавить его в контур RAG. Интересно, что при небольших масштабах данных вовсе не обязателен развёрнутый графовый движок – эксперты показывают, что небольшие графовые запросы можно выполнять и на существующих реляционных базах или даже в памяти, не разворачивая отдельно GraphDB[67][68]. Такой прагматичный подход упрощает внедрение: компания может хранить знания в привычной базе, а поверх реализовать логику выборки по графу в несколько запросов SQL или Gremlin, интегрировав это с LLM.

В целом, разнообразие проектов – от тяжеловесного GraphRAG до узкоспециализированного PathRAG – демонстрирует высокий интерес сообщества к сочетанию RAG и графов знаний. Каждый подход стремится снизить галлюцинации и повысить точность, но делает это с разных углов (полнота vs. быстродействие vs. минимизация токенов). А открытость кода многих решений стимулирует дальнейшие улучшения и адаптации под разные задачи.
Выводы, заключение и ссылки на используемые при подготовке статьи материалы в продолжении