Graph RAG: как RAG, только c графом знаний

Graph RAG

Поделиться:

Введение

Сегодня многие компании применяют большие языковые модели (LLM) для автоматизации различных процессов и создание новых AI-продуктов. Одной из ключевых проблем применения LLM в бизнесе является точность: LLM могут генерировать ложную информацию, подкрепляя её вымышленными источниками — это называется «галлюцинации».

McKinsey назвала «галлюцинации» главным риском генеративного ИИ. Это действительно критично: для рядового сотрудника ошибка в презентации или отчёте может привести к потере клиентов и контрактов или стать причиной увольнения. А про вопросы безопасности, государственного управления, здоровья и так далее — и говорить нечего.

Одним из самых известных и распространённых подходов к решению проблем галлюцинаций LLM является Retrieval-Augmented Generation (RAG).

RAG объединяет две технологии: поиск данных и генерацию ответов. Он используется там, где одной работы LLM недостаточно, и требуется дополнить запрос пользователя актуальной или специализированной информацией из внешних по отношению к LLM источников (корпоративных систем, документов, инструкций и других). Подробнее мы написали о RAG в статье «Сделайте свою большую языковую модель (LLM) специалистом в любой области с помощью Retrieval Augmented Generation (RAG)».

Качество работы RAG-системы зависит от уровня точности и релевантности информации, добавляемой к промпту пользователя. Это означает, что для эффективной работы таким системам необходим качественный контекст. Для того, чтобы найти подходящую дополнительную информацию для контекста, в RAG используется векторный  поиск. О том, как работает векторный поиск можно посмотреть в нашей статье «От слов к векторам: как эмбеддинги помогают моделям понимать нас».

Но и векторного поиска часта недостаточно. Особенно в тех случаях, когда мы говорим о применении генеративного AI в отраслях, где ошибки и неточности в сгенерированных моделью текстах недопустимы.

Для формирования более точного контекста, чем в вектороном RAG, можно использовать графы знаний (Knowledge Graphs — KGs). Эти структуры представляют собой упорядоченное хранение данных, где фиксируются сущности и связи между ними. Графы знаний позволяют хранить и организовывать информацию из исходного контента в логически связанной форме.

Когда графы знаний объединяются с RAG, возникает новый подход — Graph RAG.

Graph RAG — это техника улучшения поиска (R в аббревиатуре RAG означает Retrieval), которая использует графы знаний для анализа связей между сущностями. Это позволяет языковым моделям точнее интерпретировать сложные запросы и предоставлять более релевантные результаты.

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

Graph RAG Vector RAG

В этой статье мы разберём, чем Graph RAG отличается от RAG, как работает эта технология, какой технологический стек необходим, и шаг за шагом покажем, как её внедрить.

Что такое RAG (Retrieval-Augmented Generation)?

RAG (Retrieval-Augmented Generation) — это технология, которая помогает большим языковым моделям (LLM) давать более точные ответы на запросы пользователей.

За счёт чего это получается: перед тем, как передавать в LLM запрос, RAG-система его дополняет. Происходит это в три шага: сначала система находит нужную информацию в векторной базе данных, затем дополняет этой информацией запрос. В результате модели передаётся не просто исходный запрос пользователя, а запрос, дополненный полезной информацией.

Давайте подробнее разберём, как это работает. Архитектура RAG строится на трёх основных компонентах: извлечение данных (Retriever), их обогащение (Augmentation) и генерация ответа (Generator).

  1. Извлечение (Retriever) — первый этап, где система ищет релевантные данные в базе знаний. Это может быть поиск по ключевым словам, семантический поиск или работа с векторными представлениями текста. Задача извлечения — найти информацию, которая лучше всего подходит к запросу пользователя.
  2. Аугментация (Augmentation) — следующий шаг. На этом этапе извлечённые данные объединяются с запросом. Например, запрос «Какие преимущества у RAG?» может быть дополнен фактами из статей или отчётов. Система формирует единый текст промпта, в котором объединяет запрос пользователя и найденные данные.
  3. Генерация ответа (Generator) — финальный этап, где большая языковая модель генерирует ответ. Она анализирует промпт и дополненные данные (контекст), чтобы дать точный ответ.

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

RAG

Сегодня набирают популярность мультимодальные RAG, которые могут анализировать не только текст, но и изображения. Этот подход позволяет, например, анализировать PDF-файлы с таблицами, графиками и схемами, объединяя текстовую и визуальную информацию для создания более точных и содержательных ответов. О преимуществах и применении мультимодальных RAG вы можете узнать подробнее в нашей статье: «Мультимодальные RAG и VLM против OCR + LLM: Как откровенно поговорить с вашими PDF?».

Три подхода к реализации RAG: от простого к модульному

RAG-систему можно настроить под конкретные задачи. Давайте разберём разные варианты настройки.

1. Простая схема RAG

На базовом уровне RAG работает по цепочке: извлечение — чтение — генерация. Представьте, что у вас есть база знаний, где хранится информация, структурированная для быстрого поиска. Система находит нужные данные, передаёт их в языковую модель, а та генерирует ответ. Такой подход прост в реализации и подходит для задач с минимальными требованиями к точности или гибкости.

2. Продвинутый подход к RAG

Этот вариант улучшает процесс извлечения данных и их обработки. Например, перед поиском запрос пользователя может быть автоматически переписан для повышения релевантности. Найденные данные сортируются, чтобы языковая модель использовала наиболее важную информацию. Если данных слишком много, система может сжимать или структурировать их для удобства обработки.

3. Модульный подход к RAG

Модульный RAG — это система, построенная как конструктор, где каждый этап можно дополнительно настроить или заменить. Хотите внедрить новую технологию поиска? Легко. Появился новый способ обработки данных? Его можно интегрировать без полного изменения системы. Модульный подход особенно полезен в корпоративных проектах, где требования часто меняются, и система должна быть гибкой. Например, можно использовать разные модули для поиска (по ключевым словам, по графу), обработки данных (сжатие, фильтрация) и генерации (специализированные модели для разных типов запросов).

Ограничения RAG

RAG отлично справляется с задачами быстрого поиска и генерации ответов на основе больших коллекций документов. Однако у этой технологии есть свои ограничения.

При поиске не учитываются связи

RAG обрабатывает данные как изолированные фрагменты текста, не анализирует их взаимосвязи. Это ограничивает возможности технологии при решении сложных задач, таких как анализ причинно-следственных связей, интерпретация сложных юридических документов или сопоставление информации из нескольких источников.

Плохо масштабируются

При увеличении объёма данных RAG сталкивается с проблемами производительности. Более крупные векторные базы данных требуют больше времени для поиска, что может привести к увеличению задержки и снижению качества результатов. Например, при обработке миллионов документов модель может выбирать менее релевантные данные из-за сложности оптимизации семантического поиска.

Коротко о графах знаний (Knowledge Graph)

Мы работали с графами и задолго до того, как появились LLM и RAG-системы. Теория графов и основанные на ней СУБД и алгоритмы давно и широко используются, например, в логистике, оптимизации маршрутов, социальных сетях или в проектировании сетевых структур. У нас в блоге есть популярная статья на эту тему Сетевой анализ: где ГИСы встречаются с математикой.

Ну а сама теория графов родилась ещё в 1736 году с лёгкой руки Леонарда Эйлера, поэтому останавливаться на этом в этой публикации не будем, а сразу перейдём к применению графов знаний в Graph RAG.

Почему для RAG подходят именно графы знаний?

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

Графы знаний — это машиночитаемые представления физического и цифрового миров. Они передают информацию в визуально понятном формате, но при этом способны отображать сложные взаимосвязи. Что ещё более важно — это их возможность предоставлять объяснимые и проверяемые данные. В отличие от GenAI, который может генерировать неточные или вымышленные ответы, графы знаний предлагают структурированный и воспроизводимый контекст и могут использоваться для точных рассуждений, особенно в сочетании с соответствующими алгоритмами.

Если говорить о корпоративном применении искусственного интеллекта, графы знаний помогают структурировать ключевую информацию, связанную с компанией или её предметной областью. Эти данные служат основой для разработки ИИ-приложений, которые эффективно используют внутреннюю информацию организации.

Структура графа знаний

Граф знаний состоит из трёх ключевых компонентов:

  1. Сущности. События, концепции или объекты, извлечённые из текста с помощью LLM. Сущности образуют узлы (вершины) графа.
  2. Отношения. Связи между сущностями. Эти связи тоже формируются LLM на основе анализа текста.
  3. Сообщества (communities). Группы связанных объектов и их взаимосвязей. Сообщества выявляются с помощью алгоритмов кластеризации.

Графы помогают лучше работать с взаимосвязанными данными:

  • Добавление новых узлов или связей не требует изменения структуры данных.
  • Можно быстро находить сложные связи (например, друзей друзей или популярные фильмы по актёрам).
  • Графы легко визуализировать.

Граф знаний на примере «Служебного романа»

Вершина 1:

  • Метка: Person
  • Имя: «Алиса Бруновна Фрейндлих».
  • Дата рождения: 8 декабря 1934 года.

Вершина 2:

  • Метка: Movie
  • Название: «Служебный роман».
  • Год выхода: 1977.

Связь между Вершиной 1 и Вершиной 2:

  • Person → ACTED_IN → Movie
  • Роль: «Людмила Прокофьевна Калугина».

С помощью такого графа можно быстро находить ответы на вопросы, например: «В каких фильмах играла Алиса Фрейндлих?», «Кто ещё снимался в «Служебном романе?» и так далее.

Что хорошего в графах знаний

Мировые консалтинговые компании, такие как Deloitte, подчёркивают важную роль графов знаний в создании корпоративных и промышленных ИИ-решений. В 2024 году графы знаний находятся на стадии Slope of Enlightenment на кривой зрелости технологий Gartner. Это говорит о том, что их преимущества становятся всё более очевидными, они доказывают свою ценность в реальных сценариях и начинают активно внедряться для решения сложных бизнес-задач.

Knowledge Graph RAG Gartner

Рассмотрим основные причины применения графов знаний в ИИ-приложениях.

1. Представление структурированной информации

Графы знаний хранят данные в виде триплетов, которые связывают сущности через отношения: например, «Москва — столица — Россия». Такая форма организации данных удобна для анализа и позволяет моделям ИИ интерпретировать информацию не только о самих объектаъ, но и о связях между ними. Это важно для приложений, где семантический контекст играет главную роль. Например, в поисковых системах для повышения точности запросов и в рекомендательных системах для более персонализированных рекомендаций.

2. Улучшение объяснимости

Одной из основных проблем современных моделей ИИ, таких как нейронные сети, является проблема «объяснимости» (explainability). Часто модель — это «чёрный ящик», а это во многих задачах не подходит, особенно в науке, медицине, бизнесе и так далее.

Графы знаний позволяют точно определить, какие связи между данными привели к конкретному результату. Например, в медицинских системах граф может показать, как определённые именно симптомы связаны с диагнозом.

3. Усиление LLM

LLM работают с неструктурированными текстами, но часто не способны явно учитывать связи между понятиями, поскольку они скрыты в текстовой форме. Графы знаний решают эту проблему, так как структурируют данные в виде узлов и связей, что делает их понятными и доступными для моделей. Это позволяет улучшить точность и объяснимость таких моделей, особенно в задачах прогнозирования и классификации.

4. Работа с многошаговыми рассуждениями

Графы знаний позволяют моделям ИИ выполнять многошаговые рассуждения (multi-hop reasoning), объединяя информацию из разных узлов графа. Например: «Какие компании из отрасли биотехнологий сотрудничают с университетами, работающими над разработкой новых вакцин?»

5. Автоматизация обработки данных

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

6. Применение в различных областях

Графы знаний находят применение в самых разных сферах, где требуется анализ сложных взаимосвязей.

  1. Медицина. Например, построение связей между симптомами, диагнозами и лекарственными препаратами для повышения точности диагностики или рекомендации по лечению с учётом всех взаимосвязанных факторов (например, результаты исследований, сопутствующие заболевания).
  2. Юриспруденция. Автоматизированный анализ контрактов и выявление взаимосвязей между условиями, участниками и сроками или исследование связей между законами, прецедентами и судебными решениями для поддержки правовых исследований.
  3. Образование. Персонализация учебных программ на основе анализа знаний и пробелов учащегося или рекомендации по дальнейшему обучению, основанные на оценках и результатах.
  4. Наука. Построение новых гипотез путём выявления скрытых взаимосвязей в больших массивах данных или обработка данных из множества источников для создания единой структуры знаний.
  5. Поисковые системы. Google и другие поисковые платформы используют графы знаний для представления фактов о людях, местах и событиях, обеспечивают быстрый доступ к структурированной информации.
  6. Биотехнологии. Сравнение молекул и анализ генных взаимодействий для поиска новых лекарств или объединение данных из исследований для ускорения разработки инновационных биотехнологий.
  7. Машинное обучение и генеративный ИИ. Обогащение контекста для языковых моделей (LLM) и улучшение их способности к многошаговым рассуждениям, построение структурированных графов знаний для поддержки генеративных систем.
  8. Поиск по подкастам, лекциям и выступлениям. Формирование графов знаний из транскриптов, связывая темы, гостей и упоминаемые концепции. Это позволяет не только искать конкретные данные, но и получать полные обогашённые ответы.

Типы графов знаний и примеры: Google Knowledge Graph и другие

Одним из известных примеров использования графов знаний является Google Knowledge Graph. Эта система связывает сущности, такие как люди, места и события, предоставляя пользователям контекстные ответы на запросы. Например, при запросе «Санкт-Петербург» граф знаний выдаёт информацию о городе, его истории, культуре и известных личностях.

Существующие графы знаний различаются по своей структуре, способу обновления и области применения. Рассмотрим основные виды графов знаний и примеры их использования:

  • Статические графы знаний (Static Knowledge Graphs — SKG): WordNet (1995 г.), Freebase (2007 г.), HowNet (1999 г.).
  • Динамические графы знаний (Dynamic Knowledge Graphs — DKG): DBpedia (2007 г.), Google Knowledge Graph (2012 г.), ConceptNet (2004 г.).
  • Временные графы знаний (Temporal Knowledge Graphs — TKG): Wikidata (2012 г.), ICEWS (2007 г.), GDELT (2013 г.).
  • Графы событий (Event Knowledge Graphs — EKG): ЕventKG (2017 г.), EvGraph (2018 г.), EEG (2020 г.).

Graph RAG на примере хитрого вопроса

Например, попробуем задать RAG вопрос из литературного канала Маргариты Симоньян «Этим романом Диккенса восхищались Толстой, Достоевский, Генри Джеймс, Кафка, а современный фокусник и иллюзионист даже взял в честь него себе псевдоним».

Базовый RAG, скорее всего вернёт набор отдельных данных: списки произведений Диккенса, отзывы о них и информацию о фокуснике Дэвиде Копперфилде. Но не сможет соединить эти факты и дать точный ответ. А Graph RAG, используя графы знаний, сможет связать данные о восхищении писателей, псевдониме иллюзиониста и произведении Диккенса, чтобы сформулировать точный ответ: «Дэвид Копперфилд».

Я задала этот вопрос в бесплатной версии GraphRAG Demo от DeepsetCloud, и мои предположения подтвердились:

Graph RAG example

Лирическое отступление под впечатлением от выставки «Передвижники»

Например, с помощью графа знаний можно быстро определить, что художники-передвижники связаны через общее движение (Товарищество передвижных художественных выставок), стиль (реализм) и тематические предпочтения (социальные проблемы и жизнь простого народа). Узлы графа могут представлять художников, такие как Илья Репин, Иван Шишкин или Василий Суриков, а связи между ними — участие в передвижнических выставках, дружеские отношения или тематические переклички в картинах.

Такой граф помогает понять, как творчество одного художника влияло на другого или выявить ключевых фигур движения, таких как Савва Мамонтов, «русского Лоренцо Медичи», кто не только обеспечивал передвижникам финансовую поддержку, но и создавал инфраструктуру. Благодаря его участию в развитии железных дорог, выставки передвижников могли охватывать больше городов.

Граф знаний может показать взаимодействия передвижников с другими направлениями искусства, такими как академизм, и продемонстрировать, как эти художники противопоставляли свои идеи академическому подходу. Или найти неожиданные связи: как идеи передвижников перекликались с европейским реализмом или как их выставки стали прообразом современных арт-резиденций. А может быть, и то, что можно сходить на прекрасную выставку «Передвижники» в Новой Третьяковке и узнать о сегодняшних меценатах.

Графы знаний могут сделать понятными и культурные отсылки и переклички времён. Например, такой граф поможет понять контекст и тонкий юмор в «Альтисте Данилове»: «На этот раз нутриевую шапку Данилов к корыту не пристроил, а с ней в руках подошёл к столу хлопобудов. У передвижников вроде бы все просители имели шапки в руках». Граф знаний быстро помог бы понять, откуда берутся такие образы, и что связывает их с историческим контекстом.

В целом, я бы на месте команд «Что? Где? Когда?» как раз и тренировалась бы на графах знаний, а на месте учёных, исследователей, историков, искусствоведов сразу бы всё записывала в графы.

Коротко о Graph ML

Графы давно используются в машинном обучении. Графовые методы машинного обучения (Graph ML) позволяют анализировать данные, учитывая их структуру и взаимосвязи благодаря использованию структуры графов. Они применяются для решения таких задач, как:

  1. Прогнозирование связей (Link Prediction): выявление недостающих связей в графе.
  2. Классификация узлов (Node Classification): определение категории узлов, например, пользователей или товаров.
  3. Выявление аномалий: поиск отклонений от ожидаемой структуры графа.

Например, в графах цитирования можно прогнозировать недостающие ссылки на статьи или предлагать рецензентов на основе структуры графа.

Основные методы Graph ML:

  1. Графовые нейронные сети (Graph Convolutional Networks, GCN) анализируют свойства узлов и их связей, применяются для классификации объектов, например, в социальных сетях.
  2. Графовые эмбеддинги (Graph Embeddings) преобразуют узлы и связи в векторные представления для рекомендаций и прогнозирования.
  3. Алгоритмы распространения меток (Label Spreading и Label Propagation) помогает классифицировать объекты при ограниченных данных, распространяя известные метки на соседние узлы.

Эти методы позволяют решать задачи кластеризации, прогнозирования и даже генерации новых графов. Ни одна конференция по ИИ не обходится без графов.

Graph prediction models AIJ

Итак, мы вспоминили, что такое RAG и графы знаний. Теперь давайте разберем, как именно графы применяются в RAG-системах.

RAG + Knowledge Graph = Graph RAG

Тексты — от научных статей до отзывов на маркетплейсах — часто формируют сложные сети, где сущности (например, люди, продукты, концепции) связаны отношениями, такими как цитирование, упоминание или причинно-следственные связи. Например, научные статьи образуют граф цитирования, а продуктовые обзоры — сеть связей между покупателями, товарами и отзывами.

Graph RAG — это расширение RAG, где на этапе R (Retrieval) вместо отдельных текстовых фрагментов извлекаются подграфы графа знаний, связанные с запросом.

Использование графов знаний даёт RAG структурированный контекст, который помогает находить более точные данные и обрабатывать их с учётом взаимосвязей.

Технология Graph RAG работает так:

  1. Создание графа знаний: исходные данные структурируются в граф знаний.
  2. Интеграция поиска: для поиска ответа система использует как графовые запросы (например, Cypher), так и векторный поиск.
  3. Генерация ответа: найденные подграфы передаются в языковую модель, которая формирует ответ, учитывая текстовый и топологический контекст.

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

Graph RAG краткое описание

Graph RAG сталкивается с двумя основными проблемами:

  1. Как эффективно находить релевантные текстовые подграфы с учётом высокой размерности текстовых признаков в вершинах и рёбрах?
  2. Как передать LLM совместную текстовую и топологическую информацию из текстового подграфа?

Конвейер Graph RAG

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

На этапе индексации Graph RAG превращает неструктурированные данные в граф знаний. Этот процесс состоит из нескольких ключевых шагов.

Шаг 1: Разделение текста на фрагменты

Для удобства обработки большие текстовые массивы разбиваются на небольшие логические блоки (до 1200 токенов) с перекрытием, чтобы сохранить контекст и избежать потери информации.

Пример: в отчёте о бизнес-аналитике можно выделить фрагменты «Описание метрики», «Метод расчёта» и «Результаты анализа».

Шаг 2: Извлечение сущностей, связей и утверждений

Каждый текстовый фрагмент LLM, которая выделяет сущности (значимые элементы текста, такие как имена, компании, места и события), связи (взаимодействия между сущностями, например, «работает в» или «основан в») и утверждения (например, ключевые факты или выводы).

Шаг 3: Формирование подграфов для каждого фрагмента

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

Шаг 4: Объединение подграфов в единый граф знаний

После обработки всех фрагментов подграфы объединяются в общий граф знаний.

  • Сущности с одинаковыми именами и типами объединяются.
  • Связи между одними и теми же сущностями объединяются.

Шаг 5: Кластеризация данных

С помощью алгоритмов (таких как Leiden или Louvain), узлы графа группируются в сообщества.

  • Сообщества отражают группы сущностей и их связи, которые тесно связаны между собой.
  • Это упрощает анализ сложных графов и помогает выявлять взаимосвязанные кластеры.

Шаг 6: Создание резюме сообществ

Для каждого сообщества формируется краткое описание, включающее:

  • Основные сущности и их типы.
  • Ключевые связи между ними.
  • Основные утверждения из текста.

Эти описания очень помогут в дальнейшем, — с их использованием заметно ускорится поиск.

На что обратить внимание при построении графа знаний с использованием LLM

Большие языковые модели (LLM) становятся всё более используемым инструментом для построения графов знаний. Но, как и в других задачах, при использовании LLM очень важно помнить об их стандартных проблемах и связанных с этим рисках.

Риски автоматизации: «чёрный ящик»

Автоматическое создание графов без контроля и ручной проверки сталкивается с рядом серьёзных проблем:

  1. Отсутствие прозрачности: LLM генерируют результаты на основе сложных внутренних алгоритмов, что затрудняет проверку правильности выводов.
  2. Невозможность аудита: в большинстве задач требуется обоснование каждого решения. Граф, созданный автоматически, может быть сложно объяснить или обосновать.
  3. Ответственность за ошибки: неточные данные или выводы могут привести к серьёзным последствиям (особенно в задачах, связанных с безопасностью или здоровьем, и подобных).

Построение графа знаний с использованием LLM требует строгого контроля и обязательной верификации экспертами.

Итеративность

Построение графов знаний — это сложный исследовательский процесс, который невозможно полностью автоматизировать. Для обеспечения точности и надёжности данных необходимо:

  1. Курирование данных: проверка того, какие данные включать в граф.
  2. Постепенное наполнение: интеграция данных в граф небольшими частями, чтобы контролировать каждый шаг.
  3. Верификация: постоянная проверка и уточнение данных, особенно при добавлении новой информации.

Использование существующих в компании графов знаний (если они есть)

Многие компании уже инвестировали значительные ресурсы в создание вручную проверенных графов знаний. Эти ресурсы являются ценным источником данных, который можно использовать для улучшения автоматизированных процессов. Вместо того чтобы строить графы с нуля, LLM могут:

  1. Интегрироваться с существующими графами знаний: обогащать их новыми связями и концепциями.
  2. Использовать только проверенные данные: исключать риск ошибок, которые возникают при работе с полностью новыми или непроверенными источниками.

Качественный граф знаний основан на качественных данных

В во многих отраслях качество данных имеет первостепенное значение. Ошибки в графах знаний могут привести к серьёзным последствиям. Поэтому:

  1. Прозрачность данных: все выводы должны быть объяснимыми и обоснованными.
  2. Аудит и ответственность: решения, основанные на графах, должны быть готовы к любым проверкам и аудитам, и соответствовать нормативным требованиям и отраслевым стандартам.
  3. Документация: каждое действие должно быть проверяемым и задокументированным.

Этап 2: Извлечение (Retrieval) в Graph RAG

После создания графа знаний GraphRAG может эффективно отвечать на запросы. Для этого применяются два подхода:

  • Глобальный поиск для сложных вопросов, требующих анализа всего графа (например, «Какие технологии используются в области ИИ?»).
  • Локальный поиск для узких запросов, связанных с конкретными сущностями или областями графа (например, «Как работает GraphRAG?»).

Local Global Search Graph RAG

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

Шаг 1: Векторный поиск для определения начального набора вершин

Запрос пользователя преобразуется в векторное представление, которое используется для поиска в векторной базе данных. Это позволяет быстро определить наиболее релевантные узлы графа знаний.

  • Пример: Если запрос касается «технологий в биоинформатике», система выделяет узлы, связанные с ключевыми словами «технологии» и «биоинформатика».
  • Результат: набор узлов, связанных с запросом. Это стартовая точка для дальнейшего анализа, позволяющая избежать полного обхода графа и экономить вычислительные ресурсы.

Шаг 2: Обход графа

После получения начального набора узлов система выполняет обход графа и находит связанные узлы и данные, находящиеся в семантических отношениях (например, соседние узлы или узлы с заданным типом связи). Это расширяет контекст для ответа, добавляя информацию, которая была бы недоступна при использовании только векторного поиска.

  • Пример: Узел «геномные данные» может быть извлечён как связанный с «биоинформатикой», даже если напрямую не упоминается в запросе.

Шаг 3: Ранжирование и отбор топ-k документов

После обхода графа результаты ранжируются с учётом структуры графа. Используются такие алгоритмы, как PageRank, которые учитывают центральность узлов и релевантность связей.

  • Ранжирование помогает сократить объём данных, передаваемых в LLM, и улучшает производительность модели, особенно при работе с большими графами, содержащими тысячи узлов.

Примечание: ранжирование не всегда необходимо, например, при локальных запросах или малых графах.

Последующие этапы Обогащения (Augmented) и Генерации (Generation) в Graph RAG схожи с теми, что используются в обычной архитектуре RAG.

graph RAG workflow

Сравнение RAG и Graph RAG

Основное различие между RAG и Graph RAG заключается в подходе к поиску информации для дополнения запроса пользователя.

В RAG используется поиск сходства векторов: запрос пользователя преобразуется в векторное представление, которое затем сравнивается с векторами текстовых фрагментов из базы данных. На основе этого сравнения выбираются наиболее похожие векторы, соответствующие релевантным фрагментам текста, которые используются для дополнения запроса пользователя. Такой подход эффективно работает с задачами поиска на основе сходства и позволяет обрабатывать большие объёмы неструктурированных данных (с использованием методов поиска ближайших соседей в векторных пространствах).

В Graph RAG поиск основан на анализе связей между данными в графе знаний, построенном на основе исходных данных из различных источников. Здесь запрос пользователя обрабатывается с учётом взаимосвязей между сущностями в графе знаний, что позволяет учитывать сложный контекст. Это особенно полезно в задачах, где важны сложные взаимосвязи между данными.

Выбор между этими подходами или их комбинация зависят от структуры данных и конкретных задач.

Что нужно для развёртывания Graph RAG

Для внедрения системы GraphRAG важно объединить три ключевых компонента:

  1. хранение графов,
  2. интеграцию с языковыми моделями,
  3. визуализацию данных.

1. Графовые базы данных

Графовые базы данных — это инструмент для хранения данных, который использует графовые структуры, состоящие из узлов (nodes), связей (edges) и свойств (properties). Примерами графовых БД могут быть Neo4j, TigerGraph, CymonixIQ+, Amazon Neptune, Microsoft Graph API (работа с данными Microsoft 365), ArangoDB, Tarantool Graph DB и многие другие.

Например, Neo4j поддерживает хранение сложных структур данных, встроенные алгоритмы для анализа взаимосвязей графов (PageRank, Louvain и др.), позволяет интегрироваться с инструментами автоматизации через Python, Java и Cypher.

2. Интеграция с LLM

Интеграция LLMs и KGs объединяет способности моделей работать с неструктурированным текстом и структурированность графов знаний. LLMs помогают создавать и обновлять графы знаний, за счёт анализа текстов на естественном языке, извлечения из текста сущностей и связей, а также помогают выявлять ошибки в графах. Графы знаний используются в обучении и дообучении LLM в качестве источников структурированных данных. Также применение графов знаний на этапе R (Retrieval) в RAG помогает формировать точный контекст, улучшать качество ответов модели и снизить риск галлюцинаций.

LLM Knowledge Graph integration

LLM используются на следующих этапах работы системы Graph RAG:

  1. Извлечение данных для построения графов знаний: анализ текстов, выделение ключевых сущностей и выявление связей между ними.
  2. Обогащение данных: добавление контекста к графу знаний с использованием дополнительных источников.
  3. Анализ текстовых запросов пользователей.
  4. Генерация ответов: использование данных из графа знаний для формирования ответов.

Работает это так: пользователь загружает набор документов или адреса сайтов для автоматического графа знаний, из которых система извлекает сущности и их связи с помощью LLM. Затем эти данные преобразуются в граф знаний. После того, как граф знаний готов, к нему можно обращаться в интерактивном режиме, например, с помощью текстового интерфейса чата.

Сегодня есть несколько популярных инструментов для интеграции LLM в Graph RAG системы:

  1. Neo4j Labs LLM Graph Builder: используется для автоматического создания графов знаний на основе текстов (например, из Wikipedia) и работы с ними в интерактивном режиме.
  2. LangChain: предоставляет фреймворк для создания RAG-решений, где графы знаний используются для структурирования неструктурированных данных.
  3. Haystack: обеспечивает извлечение информации, преобразование её в графы знаний и интеграцию с векторными базами данных (например, Milvus, Weaviate).
  4. MSFT GraphRAG: применяет Graph API для создания графов знаний и их использования в рамках экосистемы Microsoft.

3. Визуализация графов

Важной частью Graph RAG-систем является визуализация данных. Для этой цели используются инструменты визуализации (например, Gephi), которые позволяют анализировать сложные сети, например, социальные сети и научные графы.

Полезные ресурсы по работе с Graph RAG

  1. LlamaIndex предоставляет руководство по созданию индекса графов свойств (LPG), описывая, как строить графы знаний из неструктурированных данных с использованием LLM.
  2. LangChain публикует статьи о повышении точности приложений, основанных на RAG, через создание и использование графов знаний, предоставляя практические руководства и примеры.
  3. Microsoft Research представляет GraphRAG — подход, использующий LLM для создания графов знаний на основе входного корпуса данных, которые затем используются для улучшения ответов на запросы.
  4. Haystack предлагает учебное пособие по работе с графами знаний, с описанием, как загружать существующие графы и выполнять текстовые запросы с помощью предварительно обученных моделей.

Как Epsilon Workspace помогает создавать Graph RAG-системы без программирования

Epsilon Workspace — это платформа, которая позволяет создавать Graph RAG-системы без необходимости писать код. Благодаря подходу no-code сотрудники без опыта программирования могут создавать интеллектуальные решения, использующие графы знаний для работы с неструктурированными данными.

Как это работает: от загрузки данных до готового AI-приложения

1. Загрузка данных

Epsilon Workspace поддерживает автоматический сбор данных из множества разнородных источников. Это удобно, если вы работаете с разными типами данных, и всё можно объединить в одной платформе.

2. Извлечение данных

Платформа извлекает текст, метаданные, сущности и их связи из загруженных данных с помощью языковых моделей (LLM). Например, из документа можно выделить ключевые понятия, такие как «проект», «сроки» или «ответственный», и понять, как они связаны друг с другом.

3. Построение графа знаний

На основе извлечённых данных платформа строит граф знаний, связывая между собой понятия и их отношения. Этот граф позволяет отвечать на сложные запросы, показывая не только прямую информацию, но и взаимосвязи, которые сложно или невозможно выявить в обычном тексте.

4. Создание Graph RAG приложений

С помощью Epsilon Workspace можно быстро интегрировать графы знаний в AI-приложения, такие как чат-боты, системы поиска или аналитические инструменты. Например, вы можете настроить бот, который будет отвечать на вопросы клиентов на основе графа знаний.

Что делает Epsilon Workspace удобным для работы с Graph RAG

  1. Интеграция через API: все данные и системы можно легко связать с другими продуктами, используя стандартные API.
  2. Работа с графами знаний: платформа автоматически создаёт графы знаний из данных с применением LLM.
  3. Мультимодальная поддержка: можно работать не только с текстом, но и с аудио, видео и изображениями. Например, бот может общаться с пользователем голосом.
  4. Поддержка разных моделей: вы можете использовать любые языковые модели, такие как OpenAI, DeepSeek, GigaChat, Yandex GPT, Llama-2 и другие, в зависимости от своих задач и соотношения цена — качество.
  5. Облачная обработка данных: все процессы, включая загрузку, анализ и создание графов знаний, могут выполняться в облаке, что экономит ресурсы вашего оборудования.
  6. Простота использования: в платформе уже есть всё необходимое, не нужно устанавливать дополнительные программы.
  7. Командная работа: удобно работать нескольким пользователям одновременно, настраивать доступ к данным и автоматизировать рутинные задачи, настраивать расписание выполнения разных операций и так далее.

С помощью Epsilon Workspace можно быстро настроить интеллектуальную систему, даже если у вас нет технического опыта. Например:

  • Менеджер проекта может собрать граф знаний на основе внутренних документов компании и настроить систему поиска по нему.
  • Команда службы поддержки может создать чат-бот, который будет отвечать на вопросы клиентов, используя информацию из графа знаний.
  • Сотрудники подразделений логистики могут быстро создать чат-бот, которому можно задавать вопросы и давать поручения голосом по статусу перевозки, прогнозному времени прибытия, остаткам на складе и срокам годности и так далее.

Epsilon Worspace делает работу с Graph RAG простой и доступной, сокращает время на разработку и снижает зависимость от технических специалистов.

Запишитесь к нам на демонстрацию, и разработайте своё первое корпоративное AI-приложение или чат-бот уже сегодня. Или разверните целую функцию RAGaaS (RAG as a Service) на основе Epsilon Workspace внутри компании и сделайте сразу все ваши подразделения счастливыми и эффективными.

Статьи по теме

AI-агенты на основе LLM и мультиагентные системы

AI-агенты на основе LLM и мультиагентные системы

Текущие LLM генерируют текст или выполняют задачи только по запросу, но с появлением AI-агентов всё меняется. К 2028 году 33% корпоративного ПО будут использовать AI-агентов. AI-агенты не требуют явных запросов и не выдают предопределённые результаты. Вместо этого они принимают инструкции, самостоятельно строят планы, используют инструменты для их выполнения и адаптируются к изменениям. 

embedding vector semantic search

От слов к векторам: как эмбеддинги помогают моделям понимать нас

Эмбеддинги помогают преобразовать текст в векторы, что позволяет большим языковым моделям (LLM) понимать контекст и давать точные ответы. Они служат «языком», на котором модели «общаются» с нами. Разобравшись, как работают эмбеддинги, можно использовать LLM для решения бизнес-задач.

Извлечение данных: определение, принцип работы и примеры

Извлечение данных — это первый этап в процессе ETL (Extract, Transform, Load), который помогает превратить разрозненные данные из различных источников в ценный ресурс для анализа и ИИ-приложений. Разберёмся, почему извлечение данных играет ключевую роль, как оно работает для различных типов данных, и какие инструменты помогают его автоматизировать.

Запросить демонстрацию

Готовы увидеть, как это может работать для вашей организации?

Свяжитесь с нами