Sobes.tech
Назад к вопросам
Senior
13

Чем GraphRAG отличается от vector RAG?

Компании, где спрашивали
МегафонМегафон

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

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

Определение:

Vector RAG — это подход, где документы или их чанки преобразуются в эмбеддинги, а затем по семантической близости выбираются самые похожие фрагменты для ответа модели.

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

Главное отличие в том, что vector RAG отвечает на вопрос «что семантически похоже», а GraphRAG — «как это связано с другими сущностями и почему это важно».

Пример использования:

Допустим, нужно отвечать на вопросы по корпоративной документации.

При vector RAG запрос «кто отвечает за доступ к продакшен-базе?» ищет наиболее похожие куски текста, где встречаются слова про доступ, базу, прод и ответственных лиц.

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

Vector RAG:
Запрос → эмбеддинг запроса → поиск похожих чанков → контекст → LLM → ответ

GraphRAG:
Запрос → извлечение сущностей → поиск по графу связей → релевантные узлы/подграф → контекст → LLM → ответ

Пояснение кода:

Код не требуется, потому что здесь важнее понять архитектурную разницу.
Если разложить пример по шагам, то в vector RAG сначала строится индекс по текстовым чанкам, затем запрос переводится в вектор и сравнивается с индексом. В GraphRAG сначала выделяются сущности и отношения, строится граф, после чего поиск идет не только по похожести, но и по соседним узлам, путям и сообществам в графе.

Ключевые моменты:

  • Vector RAG ищет по семантической близости текстов, GraphRAG — по сущностям и отношениям между ними.
  • GraphRAG лучше подходит для вопросов, где важны связи, причинность, иерархии и многошаговые зависимости.
  • Vector RAG обычно проще в реализации, дешевле в поддержке и быстрее по time-to-first-result.
  • GraphRAG может давать более точный и объяснимый контекст на сложных доменных данных, но его сложнее строить и обновлять.
  • На практике эти подходы часто комбинируют: векторный поиск используют для первичного отбора, а граф — для уточнения и расширения контекста.