Чем GraphRAG отличается от vector RAG?
Answer from AI
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 может давать более точный и объяснимый контекст на сложных доменных данных, но его сложнее строить и обновлять.
- На практике эти подходы часто комбинируют: векторный поиск используют для первичного отбора, а граф — для уточнения и расширения контекста.