The post has been translated automatically. Original language: Russian
In the previous article "The evolution of AI search: from RAG to GraphRAG", we discussed why traditional RAG is sometimes not enough and when GraphRAG becomes a better choice. Now let's look at what happens behind the scenes.
GraphRAG is an architecture that transforms raw data into a structured knowledge layer that AI can search, navigate, and reason over. It consists of two main processes:
- Indexing Pipeline: builds the knowledge layer from source data.
- Query Pipeline: uses that knowledge layer to retrieve the most relevant context for the LLM.
This article focuses on the Indexing Pipeline.
Data Sources
GraphRAG can combine information from many different sources, for example:
- PDF and Word documents
- Wikis and SharePoint
- Databases
- APIs
- JSON and XML files
- Enterprise applications
Both structured and unstructured data can become part of the same knowledge base.
Data Processing
Before data can become knowledge, it needs to be prepared. Typical processing steps include:
- Parsing: extracting text from different file formats.
- Cleaning: removing unnecessary or noisy content.
- Chunking: splitting documents into smaller pieces.
- Metadata extraction: collecting information such as titles, authors, dates, or document types.
- Embedding generation: creating vector representations for semantic search
At this stage, each document has been transformed into a collection of chunks enriched with metadata and semantic embeddings, making the content ready for retrieval.
Knowledge Graph Construction
The next step is to identify the key concepts and how they relate to one another. This usually includes:
- Entity extraction: finding people, organizations, products, locations, and other important concepts.
- Relationship extraction: identifying how those entities and chunks are connected.
- Entity resolution: recognizing that different names may refer to the same object.
- Knowledge graph construction: creating nodes and relationships that represent the information in a structured form.
Entities become graph nodes. In some implementations, document chunks also become nodes, while relationships become edges connecting them.
Note, that graph does not replace the original documents. Instead:
- the knowledge graph organizes knowledge as connected entities and relationships,
- embeddings enable semantic retrieval of both document chunks and entities,
- original documents/sources provide the factual evidence behind every answer.
Together, these layers allow GraphRAG to combine semantic similarity, explicit relationships, and prove with source information.
What Is Stored?
A GraphRAG system stores much more than a graph. A typical storage layer includes:
- Original documents
- Metadata
- Document chunks
- Embeddings
- Entities
- Relationships
- References to the original source
Keeping references to the original documents/source is especially important because every answer should be traceable back to its source.
Conclusion
GraphRAG transforms raw documents into a structured knowledge layer that combines documents, embeddings, entities, and relationships. Instead of relying solely on semantic similarity, GraphRAG can also leverage explicit relationships between concepts. This allows retrieval to combine semantic relevance with structured knowledge, making it better suited for complex, multi-hop questions.
В предыдущей статье "Эволюция AI-поиска: от RAG к GraphRAG" мы обсуждали, почему традиционного RAG иногда недостаточно и когда GraphRAG становится лучшим выбором. Теперь давайте посмотрим, что происходит за кулисами.
GraphRAG - это архитектура, которая преобразует необработанные данные в структурированный уровень знаний, который ИИ может использовать для поиска, навигации и анализа. Он состоит из двух основных процессов:
- Этап индексации: создает уровень знаний на основе исходных данных.
- Этап запросов: использует этот уровень знаний для извлечения наиболее релевантного контекста для LLM.
Эта статья посвящена этапу индексации.
Источники данных
GraphRAG может объединять информацию из множества различных источников, например:
- Документы PDF и Word
- Wiki и SharePoint
- API
- Базы данных
- Файлы JSON и XML
- Корпоративные приложения
Как структурированные, так и неструктурированные данные могут стать частью одной и той же базы знаний.
Обработка данных
Прежде чем данные станут знаниями, их необходимо подготовить. Типичные этапы обработки включают:
- Синтаксический анализ: извлечение текста из различных форматов файлов.
- Очистка: удаление ненужного или перегруженного содержимого.
- Разбиение документов на более мелкие фрагменты.
- Извлечение метаданных: сбор такой информации, как названия, авторы, даты или типы документов.
- Генерация вложений: создание векторных представлений для семантического поиска.
На этом этапе каждый документ преобразуется в набор фрагментов (chunks), обогащенных метаданными и семантическими вставками, что делает контент готовым для поиска.
Построение графа знаний
Следующим шагом является определение ключевых понятий и того, как они соотносятся друг с другом. Обычно это включает в себя:
- Извлечение сущностей: поиск людей, организаций, продуктов, местоположений и других важных понятий.
- Извлечение взаимосвязей: определение того, как эти сущности и блоки связаны между собой.
- Определение сущности: распознавание того, что разные имена могут относиться к одному и тому же объекту.
- Построение графа знаний: создание узлов и взаимосвязей, которые представляют информацию в структурированном виде.
Сущности становятся узлами графа. В некоторых реализациях фрагменты документа также становятся узлами, а связи - ребрами, соединяющими их.
Обратите внимание, что этот график не заменяет исходные документы. Вместо:
- граф знаний упорядочивает знания в виде связанных объектов и взаимосвязей,
- вложения позволяют осуществлять семантический поиск как фрагментов документа, так и сущностей,
- исходные документы/источники предоставляют фактические данные, лежащие в основе каждого ответа.
Вместе эти слои позволяют GraphRAG сочетать семантическое сходство, явные взаимосвязи и доказательства с исходной информацией.
Что хранится?
Система GraphRAG хранит гораздо больше, чем просто граф. Типичный уровень хранения включает в себя:
- Исходные документы
- Метаданные
- Фрагменты документов
- Вложения
- Сущности
- Отношения
- Ссылки на первоисточник
Сохранение ссылок на исходные документы/источники особенно важно, поскольку каждый ответ должен быть прослежен до его источника.
Вывод
GraphRAG преобразует необработанные документы в структурированный уровень знаний, который объединяет документы, вложения, сущности и связи. Вместо того, чтобы полагаться исключительно на семантическое сходство, GraphRAG может также использовать явные взаимосвязи между понятиями. Это позволяет сочетать семантическую значимость со структурированными знаниями, что делает поиск более подходящим для сложных вопросов с несколькими шагами.