1. Введение
Привет, Habr! На связи Александр Сулейкин, Роман Бабенко и Даниил Бутнев. Подготовили совместную статью по теме использования графов знаний при разработке RAG-систем. В рамках статьи рассказываем про основные проблемы традиционных RAG-систем, даем обзор основных открытых проектов графов знаний GraphRAG, показываем и даем краткое описание архитектуры таких систем, а также рассказываем про практическое использование графов знаний на примере трех областей - медицины, метрологии и стандартизации.
В последние годы Retrieval-Augmented Generation (RAG) стала одним из самых популярных подходов к построению систем, способных отвечать на вопросы на основе больших объемов данных. Однако, стандартные реализации RAG имеют ряд ограничений, особенно когда дело касается сложных, взаимосвязанных данных. В этой статье мы рассмотрим, как графы знаний могут решить эти проблемы и какие инструменты существуют для построения RAG на основе графов знаний. Мы также представим результаты оценки качества ответов RAG-систем на основе созданных графов по юридической, технической и метрологической документации.
2. Описание проблем RAG. Как графы знаний могут их решить
2.1 Стандартный RAG состоит из трех основных этапов:
Retrieval (Извлечение): Поиск релевантных фрагментов данных из векторной базы данных на основе семантического сходства между запросом пользователя и фрагментами.
Augmentation (Дополнение): Объединение извлеченных фрагментов с запросом пользователя для формирования контекста.
Generation (Генерация): Использование большой языковой модели (LLM) для генерации ответа на основе дополненного контекста.

2.2 Проблемы традиционного RAG-подхода
Несмотря на свою эффективность, стандартный RAG сталкивается с рядом проблем:
Потеря контекста: При извлечении фрагментов информации может быть потеряна важная взаимосвязь между ними, что приводит к неполным или неточным ответам.
Сложность работы с многошаговыми вопросами: Стандартный RAG плохо справляется с вопросами, требующими объединения информации из нескольких источников или выполнения логических выводов.
Неэффективность при работе с неструктурированными данными: Извлечение релевантной информации из неструктурированных данных может быть сложным и неточным.
Галлюцинации: LLM могут генерировать неверную информацию, особенно если контекст неполный или неточный.
В 2024 году для решения таких проблем Microsoft Research представила GraphRAG, совершенно новый метод, который дополняет извлечение и генерацию RAG с помощью графов знаний. Вместо хранения данных в виде отдельных фрагментов, графы знаний представляют информацию в виде узлов (сущностей) и ребер (отношений между сущностями). Это позволяет:
Сохранять контекст: Отношения между сущностями явно определены, что позволяет LLM понимать взаимосвязи между ними.
Поддерживать многошаговые вопросы: LLM может "пройтись" по графу, чтобы найти информацию, необходимую для ответа на сложный вопрос.
Улучшить работу с неструктурированными данными: Графы знаний могут быть построены на основе неструктурированных данных путем извлечения сущностей и отношений с помощью методов обработки естественного языка (NLP).
Снизить галлюцинации: Явное представление знаний в графе помогает LLM генерировать более точные и достоверные ответы.

3. Открытые проекты для создания RAG-систем на основе графов знаний
Существует множество библиотек (фреймворков), которые используются для создания RAG-систем на основе графов знаний:
GraphRAG (MIT license): В июле 2024 года Microsoft Research открыла код проекта GraphRAG и сделала его доступным на GitHub. Процесс GraphRAG включает в себя извлечение графа знаний из необработанного текста, построение иерархии сообществ, генерацию сводок для этих сообществ, а затем использование этих структур при выполнении задач на основе RAG.
LightRAG (MIT license): Инновационный подход, основанный на GraphRAG, который сочетает атрибуты графов знаний с системами поиска на основе эмбеддингов, что делает его быстрым и производительным, достигая результатов SOTA (State-of-the-Art).
fast-graphrag (MIT license): Оптимизированный и быстрый фреймворк GraphRAG, разработанный для интерпретируемых, высокоточных рабочих процессов поиска, управляемых агентами.
HiRAG (MIT license): Новый RAG-подход, который использует иерархические знания для улучшения семантического понимания и возможностей захвата структуры RAG-систем в процессах индексации и поиска.
nano-graphrag (MIT license): Этот фреймворк предоставляет более легкий, быстрый и чистый GraphRAG, сохраняя при этом основную функциональность. Проекты, в которых использовался данный фреймворк: LightRAG, fast-graphrag, HiRAG.
Активность проекта на GitHub (количество звезд, форков, коммитом и запросов на слияние) показывает насколько проект развивается и интересен сообществу. В таблице ниже представлены данные по каждой из вышеперечисленных библиотек на дату 05.05.2025:
GraphRAG | LightRAG | fast-graphrag | HiRAG | nano-graphrag | |
Первый коммит | 30.06.2024 | 06.10.2024 | 27.10.2024 | 09.03.2025 | 21.07.2024 |
Кол-во звезд (Stars) | 24,9k | 16k | 3,2k | 144 | 2,9k |
Кол-во форков (Forks) | 2,5k | 2,2k | 180 | 10 | 293 |
Кол-во merge requests (MR) за последний месяц | 15 | 84 | 0 | 1 | 2 |
GraphRAG обладает самым большим количеством звезд, что объясняется статусом первой библиотеки для создания RAG на основе графов знаний.
Однако на текущий момент GraphRAG имеет следующие недостатки по сравнению с LightRAG:
Низкая активность коммитов (MR);
Проблемы при создании графов с использованием локальных open-source LLM (разработчики не спешат их исправлять, рекомендуя облачные модели OpenAI);
Отсутствие пользовательского интерфейса.
Учитывая эти факторы, LightRAG можно выделить как одну из самых активно развивающихся и перспективных библиотек.
4. Обзор архитектуры RAG на основе графа знаний
Про архитектуру GraphRAG написана не одна статья на Хабр, достаточно ввести GraphRAG в строке поиска или перейти на страницу официальной документации. Не будем плодить сущности и рассмотрим архитектуру второй по популярности на GitHub библиотеки RAG с графами знаний - LightRAG.
GraphRAG имеет две основные проблемы - медленная обработка запросов и реконструирование всего графа при добавлении новых данных. LightRAG решает данные проблемы:
Сокращая индексацию и время отклика за счет лучшего подхода, чем обход сообщества.
Адаптируясь к новым данным с помощью алгоритма инкрементного обновления, который обновляет только определенные экземпляры элементов.
Архитектура решения на основе RAG обычно состоит из двух основных процессов: индексации данных и обработки запросов.
4.1 Индексация данных
Процесс индексации данных в LightRAG состоит из четырех этапов, направленных на создание структурированного представления информации для эффективного поиска и анализа.
1) Разбиение на фрагменты: Исходный текст разделяется на небольшие, логически завершенные части (например, абзацы или предложения). Это позволяет более детально анализировать информацию.
2) Выделение ключевых элементов: Используя возможности больших языковых моделей (LLM), из каждого фрагмента извлекаются важные сущности (люди, места, организации и т.д.), связи между ними и основные утверждения. Эта информация служит основой для создания графа знаний.
3) Создание пар ключ-значение: После извлечения элементов используется LLM для создания структурированных пар ключ-значение (KV) сущностей и связей.
Ключ (K) - это слово или короткая фраза, а значение (V) - это абзац, обобщающий соответствующие фрагменты. Обычно сущности имеют свое имя в качестве единственного индекса, тогда как связи могут иметь несколько ключей индекса, чтобы охватывать более широкие темы из связанных сущностей. Используя эти пары KV, строится начальный граф знаний.
LightRAG сочетает в себе индексацию графов и стандартный подход, основанный на эмбеддингах. Если быть точным, значение (V) сущностей и связей в парах ключ-значение после профилирования LLM передаются на промежуточный этап для генерации векторных вложений с использованием модели ембеддингов. Эти структуры данных KV обеспечивают более точный поиск, чем менее точные стандартные методы встраивания RAG или неэффективные методы обхода фрагментов в GraphRAG.
4) Дедупликация для оптимизации работы с графом: Для эффективной обработки данных повторяющиеся сущности и связи объединяются, тем самым уменьшая как накладные расходы, так и общий размер графа.
После дедупликации мы получаем окончательную оптимизированную версию графа знаний (KG).

4.2 Обработка запросов
Благодаря индексации текста на основе графов, LightRAG использует стратегию двухуровневого поиска. Этот подход идентифицирует низкоуровневые и высокоуровневые ключи из подграфов с несколькими переходами в KG для ответа на разнообразный набор запросов.
Низкоуровневый поиск: Предназначается для получения конкретной детализированной информации из отдельных узлов и ребер для обработки локальных запросов. На этом уровне он предоставляет подробную информацию на уровне узла.
Высокоуровневый поиск: Объединяет информацию от нескольких сущностей из разных документов для ответа на глобальные запросы, требующие более широких тем или абстракций.

5. Практическое использование графа знаний в RAG
В процессе разработки нескольких пилотных проектов на основе RAG мы протестировали использование графов знаний и сделали оценку качества такого подхода. Результат представлен в конце раздела.
Стандартный пайплайн создания и оценки качества ответов RAG состоит из следующих шагов:
Подготовка датасета (вопрос - ответ) для оценки качества ответов RAG-системы. Если заказчик не готов предоставить такие вопросы и эталонные ответы, то создаем их с помощью библиотеки giskard и валидируем;
Непосредственно разработка RAG-системы, загрузка и индексация необходимых источников данных. В зависимости от задачи применяем различные инструменты для разработки - собственный продукт SmartSearch, low-code нодовые редакторы (статья про них на Хабр), библиотеки langchain/ langgraph/ llama_index;
Оценка разработанной RAG-системы на основе тестового датасета. Для проведения автоматической оценки применяем библиотеку langfuse и метод оценки LLM в качестве судьи (LLM-as-a-judge). Суть метода заключается в оценке правильности ответа разрабатываемой RAG-системы относительно эталонного ответа. На данном шаге важно, чтобы модели LLM, используемые в RAG-системе, и для оценки были разные.
В качестве инструментов для создания RAG на основе графов знаний были выбраны:
сервер LightRAG;
локальный провайдер ollama с моделями LLM gemma3:27b и эмбеддингов bge-m3;
облачный API DeepSeek с моделью для оценки DeepSeek V3;
БД Neo4j для работы с графами;
БД Milvus для работы с векторами;
БД Redis для работы со структурами данных типа «ключ — значение».
Сервер LightRAG разработан для обеспечения веб-интерфейса и поддержки API. Веб-интерфейс позволяет загружать и индексировать документы (Рисунок 5), анализировать графы знаний (Рисунок 6) и выполнять RAG-запросы (Рисунок 7).



Для составления таблицы оценки наивного RAG и на основе графа знаний были подготовлены документы, вопросы и эталонные ответы из трех доменных областей:
Метрология — Руководство пользователя Цифровой метрологической лаборатории;
Стандартизация — Единый отраслевой стандарт закупок (ЕОСЗ);
Медицина — Клинические рекомендации. Острые респираторные вирусные инфекции (ОРВИ) у взрослых.
Доменная область: | Параметры документа | Время создания графа знаний | Кол-во вопросов для оценки | Процент правильных ответов, % | ||
Кол-во символов | Кол-во чанков | NaiveRAG | LightRAG | |||
Метрология | 34351 | 9 | 22 мин | 31 | 52 | 64 |
Стандартизация | 217760 | 47 | 112 мин | 22 | 36 | 55 |
Медицина | 97115 | 25 | 69 мин | 10 | 80 | 90 |
Полученные результаты оценки правильности ответов с использованием LightRAG превосходят оценки наивного RAG в среднем на 10 - 15 % в зависимости от типа документации. При этом среднее время получения ответа по графу знаний в 3 раза больше, чем при наивном RAG (75 с против 25 с).
Уменьшение времени ответа таких систем - задача на будущее. В будущих статьях постараемся осветить эту проблему более детально и описать возможные методы ее решения, подходы и конкретные проекты/ библиотеки.
6. Выводы
Использование графов знаний является перспективным подходом к построению RAG-систем, способных отвечать на вопросы на основе больших объемов данных. Использование графов знаний позволяет решить ряд проблем, присущих стандартному RAG, и улучшить качество ответов. Данный подход рекомендуется применять наряду с другими методами улучшения качества - очистка данных от шума, продвинутый (семантический) чанкинг, гибридный поиск, двухэтапный поиск с применением переранжирования и пр.
Опрос: Применяли ли вы графы знаний в своих проектах? Если да, то какие библиотеки использовали и было ли улучшение точности ответов?
Наш ТГ-канал: t.me/dataundercontrol