GraphRAG

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

GraphRAG — это усовершенствованная парадигма Retrieval-Augmented Generation (RAG), в которой вместо традиционного поиска по разрозненным текстовым фрагментам (чанкам) используется знаниевый граф (Knowledge Graph, KG)[1]. Графовая структура явно представляет связи между сущностями и иерархию доменных понятий, что позволяет LLM выполнять многошаговое логическое извлечение знаний и формировать более контекстно‑осведомлённые и объяснимые ответы[2].

Подход GraphRAG демонстрирует значительное преимущество перед классическим RAG при работе со сложными, многошаговыми (multi‑hop) запросами, где ответ зависит от комбинации нескольких фактов, разбросанных по разным документам[3].

Ограничения классического RAG и преимущества графа

Классический RAG, основанный на векторном поиске по неструктурированному тексту, сталкивается с рядом фундаментальных ограничений, которые становятся критичными в сложных корпоративных сценариях:

  • Отсутствие структурных связей: Традиционный RAG обрабатывает текстовые чанки как изолированные единицы и не видит явных связей между ними. Это делает его неэффективным для multi‑hop запросов, где для ответа необходимо пройти по цепочке фактов (A→B→C), а поиск находит только начальное и конечное звенья (A и C), упуская промежуточные[1].
  • Семантическая неоднозначность: В узкоспециализированных областях (медицина, юриспруденция, инженерия) термины имеют специфические значения. Векторный поиск, улавливая общую тему, может неверно интерпретировать роль конкретного объекта, что приводит к извлечению нерелевантного контекста.
  • Ограниченная объяснимость: Классический RAG предоставляет фрагменты документов, но не явные доказательства того, как эти фрагменты связаны в логическую цепочку. GraphRAG, напротив, делает этот процесс прозрачным, предоставляя в качестве доказательства путь в графе и требуя привязки утверждений к источникам (цитирование)[4].

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

Архитектура GraphRAG

Общий конвейер GraphRAG расширяет классический RAG, добавляя этапы построения и использования графа знаний. Он делится на два основных этапа: оффлайн‑подготовка и онлайн‑обработка запроса.

Этап 1: Ингест и индексация (оффлайн)

На этом этапе исходные данные (документы, базы данных) преобразуются в два взаимодополняющих представления: графовое и векторное.

  1. Экстракция знаний: Из текстов извлекаются структурированные факты с помощью NLP‑конвейера:
    • Named Entity Recognition (NER): Нахождение упоминаний сущностей (людей, организаций, продуктов).
    • Entity Linking (EL): Связывание упоминаний с каноническими идентификаторами в графе для устранения неоднозначности (например, «Иванов И.И.» и «И. Иванов» становятся одним узлом)[5].
    • Relation Extraction (RE): Выявление отношений между сущностями (например, Компания XприобрелаСтартап Y).
  2. Моделирование и хранение графа: Извлечённые тройки (субъект‑предикат‑объект) загружаются в графовую базу данных. Выбор модели (Property Graph или RDF) зависит от задачи. Критически важно хранить происхождение (provenance) каждого факта — ссылку на исходный документ и текстовый фрагмент[3]. В граф также могут быть добавлены метаданные о времени (valid_from/valid_to) и достоверности (confidence).
  3. Гибридная индексация: Параллельно с графом создаётся векторный индекс для исходных текстовых фрагментов. Это позволяет сочетать структурный поиск по графу с семантическим поиском по тексту.

Этап 2: Обработка запроса и генерация ответа (онлайн)

  1. Разбор запроса: Пользовательский запрос анализируется для выделения ключевых сущностей, которые служат «точками входа» в граф.
  2. Извлечение подграфа: Вместо поиска отдельных чанков GraphRAG находит релевантный подграф — связанный фрагмент графа вокруг «точек входа», содержащий информацию для ответа. Для этого используются алгоритмы, такие как k‑hop обход или Personalized PageRank (PPR)[6].
  3. Гибридный поиск и слияние результатов: Параллельно с извлечением подграфа выполняется поиск по векторному и/или лексическому (BM25) индексу. Результаты из графа и текста объединяются и передаются на следующий этап.
  4. Переранжирование (Re‑ranking): Объединённый список кандидатов (узлы графа и текстовые чанки) переранжируется с помощью более точной модели (например, кросс‑энкодер) для отбора наиболее релевантной информации. Это позволяет отфильтровать шум и повысить точность[7].
  5. Упаковка контекста и генерация: Отобранный и отранжированный контекст (подграф и тексты) преобразуется в понятный для LLM формат (например, список утверждений с указанием источников). Этот обогащённый контекст подаётся в промпт для генерации финального ответа.
  6. Трассировка и цитирование: Благодаря связи «факт ↔ источник» в графе, сгенерированный ответ содержит точные ссылки на документы, подтверждающие каждый тезис. Это обеспечивает высокую обоснованность и прозрачность.

Сравнительная таблица компонентов

Сравнительный анализ ключевых компонентов архитектуры GraphRAG
Компонент/аспект Варианты реализации Плюсы Минусы/риски Когда предпочтительно
Модель графа знаний RDF/OWL Строгая онтология, логические выводы (reasoning), совместимость с Linked Open Data. Сложно хранить атрибуты отношений (время, источник) без доп. сущностей (reification). Семантически богатые домены с существующими онтологиями; требуется дедукция.
Property Graph (Neo4j, etc.) Гибкость, произвольные свойства на узлах/рёбрах, высокая производительность. Требует чёткой схемы вручную или риск «беспорядка»; нет единого стандарта. Быстрый старт с неструктурированными данными; интеграция с документами (multi‑model DB).
Извлечение подграфа k‑hop BFS / DFS Покрывает все узлы до глубины k, прост в реализации. «Взрыв» графа: лавинный рост числа узлов; может вернуть много шума. Маленькие графы или обход на глубину 1–2; иерархические структуры.
Personalized PageRank (PPR) Фокусируется на действительно связанных узлах, шум отсеивается[6]. Может пропустить дальний, но важный узел (если мало путей, но он критичен). Сложные сети с множеством путей (социальный граф, граф цитирований).
Гибридный поиск Комбинированный список (scalar fusion с весом λ) Настройка весов λ позволяет балансировать precision/recall под задачу[8]. Фиксированный λ не оптимален для всех типов запросов. На этапе прототипирования; когда известно, что один источник заведомо важнее.
Cross‑encoder rerank Существенный прирост точности; возможность учитывать сложные взаимосвязи. Увеличивает задержку; требует данных для обучения или использования готовых моделей[7]. High‑precision сценарии (юриспруденция, медицина), где важен максимально релевантный контекст.
Безопасность данных Фильтрация подграфа (RBAC/ABAC) Гранулярный контроль (до уровня узла) исключает утечки. «Глухие зоны»: если вырезан важный узел, ответ может стать неполным. В корпоративных средах со строгими требованиями к доступу (PII, GDPR, trade secrets).

Трассировка, доверие и безопасность

Одно из главных преимуществ GraphRAG — возможность представить прозрачные цепочки доказательств. Вместо ответа «чёрного ящика», система может показать путь рассуждения: «Факт A упомянут в [doc1]. Он связан с фактом B [doc2], а B согласно [doc3] приводит к C», — что повышает доверие пользователя и упрощает отладку.

Кроме того, графовая структура позволяет реализовать гранулярное управление доступом (RBAC/ABAC). У каждого узла или ребра в графе может быть метка доступа. При извлечении подграфа система автоматически отфильтровывает данные, к которым у пользователя нет прав, обеспечивая безопасность в чувствительных сферах (финансы, HR, медицина).

Оценка качества

Оценка GraphRAG‑системы является многоэтапной и включает метрики для каждого компонента:

  • Метрики извлечения знаний: F1‑score для NER и RE, чтобы оценить качество построения графа.
  • Метрики извлечения подграфа: Subgraph Recall@K (доля случаев, когда нужные для ответа узлы/рёбра попали в извлечённый подграф) и Path Precision/Recall для multi‑hop вопросов.
  • Метрики ответа LLM:
    • Faithfulness / Groundedness: насколько ответ строго опирается на предоставленный контекст.
    • Human evaluation: оценка экспертами по критериям правильности, полноты и связности.

Для автоматизации оценки используются специализированные бенчмарки (например, WebQuestionsSP, GrailQA) и фреймворки (например, RAGAS)[9].

См. также

Литература

  • Zhang, Q. et al. (2025). A Survey of Graph Retrieval‑Augmented Generation for Customized Large Language Models. arXiv:2501.13958.
  • Xu, Z. et al. (2024). Retrieval‑Augmented Generation with Knowledge Graphs for Customer Service Question Answering. arXiv:2404.17723.
  • Hu, Y. et al. (2024). GRAG: Graph Retrieval‑Augmented Generation. arXiv:2405.16506.
  • Nakano, R. et al. (2021). WebGPT: Browser‑assisted Question‑Answering with Human Feedback. arXiv:2112.09332.
  • Yang, R. et al. (2025). KG‑IRAG: A Knowledge Graph‑Based Iterative Retrieval‑Augmented Generation Framework for Temporal Reasoning. arXiv:2503.14234.
  • Song, Y. et al. (2023). Advancements in Complex Knowledge Graph Question Answering: A Survey. DOI:10.3390/electronics12214395.
  • Nogueira, R.; Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
  • Hsu, H.‑L.; Tzeng, J. (2025). DAT: Dynamic Alpha Tuning for Hybrid Retrieval in Retrieval‑Augmented Generation. arXiv:2503.23013.
  • Lewis, P. et al. (2020). Retrieval‑Augmented Generation for Knowledge‑Intensive NLP Tasks. arXiv:2005.11401.
  • Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open‑Domain Question Answering. arXiv:2004.04906.
  • Sun, H. et al. (2018). Open‑Domain Question Answering Using Early Fusion of Knowledge Bases and Text (GRAFT‑Net). arXiv:1809.00782.
  • Sun, H.; Bedrax‑Weiss, T.; Cohen, W. W. (2019). PullNet: Open‑Domain Question Answering with Iterative Retrieval on Knowledge Bases and Text. arXiv:1904.09537.
  • He, X. et al. (2024). G‑Retriever: Retrieval‑Augmented Generation for Textual Graph Understanding and Question Answering. arXiv:2402.07630.
  • Es, S.; James, J.; Espinosa‑Anke, L.; Schockaert, S. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. ACL:2024.eacl-demo.16.

Примечания

  1. 1,0 1,1 Zhang, Q., et al. A Survey of Graph Retrieval-Augmented Generation for Customized Large Language Models. arXiv, 2025. arXiv:2501.13958.
  2. Xu, Z., et al. Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering. SIGIR, 2024. arXiv:2404.17723; DOI: 10.1145/3626772.3661370.
  3. 3,0 3,1 Hu, Y., et al. GRAG: Graph Retrieval‑Augmented Generation. arXiv, 2024. arXiv:2405.16506; также в Findings of NAACL 2025: ACL Anthology.
  4. Nakano, R., et al. WebGPT: Browser‑assisted question‑answering with human feedback. arXiv, 2021. arXiv:2112.09332.
  5. Yang, R., et al. KG‑IRAG: A Knowledge Graph‑Based Iterative Retrieval‑Augmented Generation Framework for Temporal Reasoning. arXiv, 2025. arXiv:2503.14234.
  6. 6,0 6,1 Song, Y., Li, W., Dai, G., Shang, X. Advancements in Complex Knowledge Graph Question Answering: A Survey. Electronics, 2023. DOI: 10.3390/electronics12214395.
  7. 7,0 7,1 Nogueira, R., Cho, K. Passage Re‑ranking with BERT. arXiv, 2019. arXiv:1901.04085.
  8. Hsu, H.‑L.; Tzeng, J. DAT: Dynamic Alpha Tuning for Hybrid Retrieval in Retrieval‑Augmented Generation. arXiv, 2025. arXiv:2503.23013.
  9. Es, S.; James, J.; Espinosa Anke, L.; Schockaert, S. RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (System Demonstrations), 2024. ACL:2024.eacl-demo.16; также preprint: arXiv:2309.15217.