GraphRAG
GraphRAG — подход к Retrieval-Augmented Generation, при котором по корпусу документов с помощью LLM строится граф знаний, а ответы формируются по графу и его сообществам, а не только по векторному поиску.
Подробно
GraphRAG (Graph Retrieval-Augmented Generation) — это методика, предложенная Microsoft Research, в которой вместо плоского индекса эмбеддингов LLM извлекает из документов сущности и связи, строит граф знаний, кластеризует его на сообщества и генерирует для каждого сообщества текстовое резюме. На этапе запроса система комбинирует обход графа, поиск по резюме сообществ (global search) и поиск по конкретным сущностям и текстовым чанкам (local search), что позволяет отвечать на «обзорные» вопросы вида «какие основные темы освещает корпус?» — там, где классический vector RAG фрагментирует контекст и отвечает неполно. Подход применяется в корпоративном поиске по большим массивам документов, анализе новостей, юридических и медицинских архивах, а также как основа для агентов с долговременной памятью. Основные ограничения — высокая стоимость индексации (много LLM-вызовов на построение графа и резюме) и сложность инкрементального обновления графа. Реализации: open-source пакет microsoft/graphrag, а также Neo4j GraphRAG, LlamaIndex PropertyGraphIndex и LangChain-обвязки над графовыми БД.
Примеры употребления
- pip install graphrag && graphrag init --root ./ragtest, затем правка settings.yaml и promt-файлов
- graphrag index --root ./ragtest — построение графа, сообществ и community reports
- graphrag query --root ./ragtest --method global --query "Какие основные темы в корпусе?"
- В Neo4j GraphRAG: from neo4j_graphrag.retrieval import VectorCypherRetriever для гибридного поиска по графу и векторам
