GraphRAG (BG)

From Systems analysis Wiki
Jump to navigation Jump to search

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 формат (например, списък от твърдения с посочване на източници). Този обогатен контекст се подава в prompt за генериране на финалния отговор.
  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, търговски тайни).

Трасиране, доверие и сигурност

Едно от главните предимства на 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: оценка от експерти по критерии за правилност, пълнота и свързаност.

За автоматизация на оценката се използват специализирани benchmark-ове (например, WebQuestionsSP, GrailQA) и фреймуърки (например, RAGAS)[9].

Вижте също

  • Retrieval‑Augmented Generation (RAG)
  • Граф на знанията
  • Векторна база данни
  • Embedding
  • AI-агент
  • Оценка и benchmark-ове на LLM

Литература

  • 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.