Раскрытие силы графов знаний: исследование Graph RAG для улучшенной генерации с расширенным поиском

Раскройте силу знаний графов с помощью Graph RAG, революционной системы, которая сочетает в себе знания графов и Retrieval Augmented Generation (RAG) для улучшения поиска и генерации. Изучите технические детали, настройте его локально и оцените затраты. Узнайте, как Graph RAG решает ограничения традиционных подходов RAG.

24 февраля 2025 г.

party-gif

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

Откройте для себя силу Graph RAG: повышение качества генерации с помощью знаний из графов

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

Основные аспекты Graph RAG включают:

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

  2. Этап запроса: Когда предоставляется пользовательский запрос, Graph RAG выбирает соответствующий уровень сообщества (резюме) на основе запроса и извлекает соответствующую информацию. Ответы из нескольких сообществ затем объединяются для генерации окончательного ответа.

Понимание традиционного RAG: ограничения и мотивация

Традиционный подход Retrieval Augmented Generation (RAG) - это метод, при котором языковая модель извлекает соответствующие документы из большого корпуса для генерации более точных и контекстуально релевантных ответов. Этот подход включает три основных шага:

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

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

  3. Генерация ответа: Извлеченный контекст объединяется с исходным запросом и подается в большую языковую модель для генерации окончательного ответа.

Изучение технических деталей Graph RAG

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

  1. Этап индексации:

    • Исходные документы разбиваются на более мелкие подразделы.
    • В каждом фрагменте выявляются сущности (такие как люди, места, компании), и извлекаются отношения между этими сущностями.
    • Эта информация используется для создания знаниевого графа, где сущности представлены как узлы, а отношения между ними - как ребра.
    • Знаниевый граф затем используется для обнаружения сообществ, которые являются группами тесно связанных сущностей.
    • Для каждого сообщества создаются резюме различной степени детализации - от глобального (высокоуровневого) до локального (более детального).
  2. Этап запроса:

    • При получении пользовательского запроса выбирается соответствующий уровень сообщества (глобальный, промежуточный или локальный) в зависимости от необходимой степени детализации.
    • Извлекаются резюме для соответствующих сообществ, и эти частичные ответы объединяются для генерации окончательного ответа.

Настройка Graph RAG на вашем локальном компьютере

Для настройки Graph RAG на вашем локальном компьютере выполните следующие шаги:

  1. Создайте виртуальное окружение Conda:

    conda create -n graphrag python=3.9
    conda activate graphrag
    
  2. Установите пакет Graph RAG:

    pip install graphrag
    
  3. Создайте каталог для ваших тестовых данных:

    mkdir -p rag_test/input
    
  4. Загрузите набор данных, например, текст "Рождественской песни" Чарльза Диккенса:

    python -m graphrag.index --root_dir rag_test/input --download_sample_data
    
  5. Настройте переменные рабочего пространства и конфигурации:

    python -m graphrag.index --root_dir rag_test/input --init_config
    

    Это создаст файл settings.yml, где вы можете настроить ваш API-ключ, модель и другие параметры.

  6. Запустите процесс индексации для создания знаниевого графа:

    python -m graphrag.index --root_dir rag_test/input
    

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

  7. Выполните пробные запросы:

    python -m graphrag.query --root_dir rag_test --method global --prompt "Какие основные темы в этой истории?"
    python -m graphrag.query --root_dir rag_test --method local --prompt "Какие отношения между Скруджем и Бобом Крэтчитом?"
    

    Метод global извлекает информацию на самом высоком уровне, а метод local фокусируется на конкретных сущностях и их отношениях.

Сравнение затрат на Graph RAG и традиционный RAG

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

Основными факторами, способствующими высокой стоимости, были:

  1. Запросы к API: Подход Graph RAG выполнил в общей сложности 570 запросов через API, в основном для модели GPT-4. В отличие от этого, традиционный подход RAG, вероятно, потребовал бы меньшего количества запросов к API.

  2. Обработка токенов: Процесс Graph RAG включал обработку более 1 миллиона токенов, что также способствовало общей стоимости.

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

Изучение других решений Graph RAG: более глубокое погружение

Помимо Microsoft, есть и другие реализации подхода Graph RAG, которые стоит рассмотреть:

Lama Index's Knowledge Graph RAG Query Engine

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

Neo4j's Graph RAG Package

Neo4j, ведущий поставщик баз данных на основе графов, также представил пакет Graph RAG. Это решение интегрирует возможности базы данных Neo4j с методом Retrieval Augmented Generation (RAG).

Сравнение реализаций

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

Заключение

Graph RAG работает отлично, но была одна серьезная проблема - стоимость. В приведенном примере было отправлено в общей сложности 570 запросов через API с использованием GPT-4, и было обработано более 1 миллиона токенов, что в результате обошлось примерно в 7 долларов. Эта стоимость может быть непомерно высокой для большого корпуса данных и существенно дороже, чем построение традиционной системы RAG.

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

Microsoft - не единственная компания, реализовавшая систему Graph RAG. Другие варианты, такие как Knowledge Graph RAG Query Engine от Lama Index и Graph RAG Package от Neo4j, также доступны. Если есть интерес, можно создать дополнительный контент, сравнивающий эти различные реализации.

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

Часто задаваемые вопросы