- Дата публикации
GraphRAG от Microsoft и Ollama: как собрать киберпанк-RAG из «Джонни-Мнемоника»
Что появилось / что изменилось
Автор несколько лет строит корпоративные RAG-системы и протестировал связку Microsoft GraphRAG + локальные LLM через Ollama на конкретном кейсе: рассказе Уильяма Гибсона Johnny Mnemonic.
Что именно удалось получить:
- Граф знаний по тексту рассказа с сущностями и связями, выгруженный в
graph.graphmlи визуализированный в Gephi с алгоритмом Лейдена. - Тематические сообщества (кластеры), автоматически выделенные GraphRAG. В примере автор получил 15 сообществ, среди топовых:
- «Yakuza, Sons of the Neon Chrysanthemum, and Ono-Sendai»;
- «Johnny, Ralfi Face, and Related Entities»;
- «Molly Millions, Ralfi, and the Drome».
- Автоматические описания этих сообществ в
community_reports.parquet— по сути, краткие аналитические сводки по сюжетным линиям и группам персонажей. - Глобальный поиск по графу: GraphRAG отвечает на вопросы, проходя по описаниям сообществ в режиме MapReduce и ссылкой на источники (
[Data: Reports (5, 7, 12, 2, +more)]). - Локальный запуск LLM через Ollama: автор проверил, что RAG-цепочка «кое-как работает» даже на 4B-моделях, то есть на очень скромных вычислительных ресурсах.
- Поддержка русского языка в ответах: автор подправил промпты
local_search_system_prompt.txtиglobal_search_reduce_system_prompt.txt, и GraphRAG начал генерировать ответы по английскому графу уже на русском.
Итого: есть воспроизводимый пайплайн — от текста рассказа до графа знаний, сообществ, отчётов и диалогового поиска на русском поверх английского исходника.
Как это работает
GraphRAG строит поверх классического RAG дополнительный слой — граф знаний и тематические кластеры.
Ключевые шаги:
- Извлечение сущностей и связей из текста рассказа LLM-моделью, подключённой через Ollama. На выходе — набор узлов (персонажи, организации, места, объекты) и рёбер (типы отношений, конфликты, принадлежность, операции).
- Сборка графа и экспорт в
graph.graphml. Этот файл автор открыл в Gephi и запустил алгоритм Лейдена для выделения сообществ. На графе видно, что узлы группируются только при буквальном совпадении имён:Molly Millionsне слилась сMolly;Lo Tekотдельно отLo Teks;Ralfi Faceотдельно отRalfi. То есть нормализация сущностей минимальная.
- Тематические кластеры внутри GraphRAG. Параллельно GraphRAG сам группирует сущности по тематике, а не только по названию. Эти кластеры сохранены в
community_reports.parquetи описаны натуральным языком. - Глобальный поиск (MapReduce). При запросе вроде
"What are the top cyberpunk elements in this story?"GraphRAG:- проходит по описаниям сообществ;
- формирует промежуточные ответы (Map);
- агрегирует их в итоговый ответ (Reduce);
- прикладывает ссылки на отчёты (
Reports (5, 7, 12, 2, +more)).
- Локальный запуск через Ollama. Все LLM-инференсы (извлечение сущностей, генерация описаний, ответы на вопросы) идут не в облако, а через Ollama. Автор подчёркивает: нижняя планка — 4B-модели, они тащат пайплайн, но с заметными ограничениями по качеству.
- Локализация ответов. Граф и отчёты — на английском, но ответы можно получать на русском, если:
- LLM в Ollama уверенно отвечает по-русски;
- эмбеддинги понимают английский запрос. При этом автор советует сами запросы формулировать по-английски — точность выше.
Что это значит для вас
Кому эта связка пригодится:
- ML-инженерам и data scientist’ам в корпорациях. GraphRAG показывает, как выйти за пределы «голого» векторного поиска: вы получаете не только ближайшие пассы текста, а структурированную карту домена — сущности, связи, кластеры и отчёты. Это полезно для сложных корпоративных баз знаний, где важны связи между объектами.
- Аналитикам и исследователям. Граф по «Johnny Mnemonic» автор оценил как результат нескольких дней работы аналитика. Для больших массивов текстов (отчёты, регламенты, тикеты) GraphRAG может сэкономить много часов ручного картирования сущностей и связей.
- Разработчикам, тестирующим RAG в локальном окружении. Ollama позволяет прогнать весь стек на офисном ПК или даже хорошем ноутбуке. Если в проде у вас GPU-кластеры, а локально только CPU, этот опыт даёт реальное чувство «нижней планки» по качеству.
На что обратить внимание:
- Векторный поиск не исчезает. GraphRAG не «убивает» вектора, а дополняет их графовым уровнем. Классический vector search всё ещё нужен, но его слабые места — поиск сложных, многошаговых связей — закрывает граф.
- Качество сущностей и кластеров зависит от LLM. На 4B-модели:
- не происходит слияния схожих сущностей (
MollyvsMolly Millions); - возможны неточности в описаниях сообществ. Если вы строите граф для продакшена, лучше сразу закладываться на более крупную модель в Ollama или выносить часть вычислений в облако.
- не происходит слияния схожих сущностей (
- Язык запросов. Сами данные и кластеры — на английском. Русские ответы поверх английского графа работают, но точность выше, если писать запросы по-английски.
- Доступность. GraphRAG и Ollama можно поднять локально. Никаких прямых ограничений вроде регионального бана в описанном опыте нет, но при скачивании моделей через Ollama может пригодиться VPN.
Если вы строите RAG-систему для внутренней документации, техподдержки, расследований инцидентов или исследуете сложные сюжеты (как в киберпанке Гибсона), GraphRAG даст вам надстройку из графа и тематических отчётов, которую обычный векторный поиск не предоставляет.
Место на рынке
GraphRAG стоит в одном ряду с классическими RAG-решениями, которые опираются только на векторный поиск по эмбеддингам. Главное отличие — добавление уровня графа знаний и тематических сообществ.
На фоне привычного пайплайна «текст → эмбеддинги → поиск ближайших пассов» эта связка даёт:
- графовое представление домена (узлы, рёбра, кластеры), пригодное для визуальной аналитики в Gephi;
- отчёты по сообществам вроде «Yakuza, Sons of the Neon Chrysanthemum, and Ono-Sendai», которые сразу подсвечивают сюжетные и деловые линии;
- глобальные ответы через MapReduce по кластерам, а не только по соседним фрагментам текста.
По инфраструктуре связка GraphRAG + Ollama интересна тем, кто не хочет тащить весь трафик в GPT-4o или Claude 3.5 Sonnet и предпочитает локальный запуск. Автор честно показывает нижнюю ступень: 4B-модели в Ollama уже позволяют собрать работающий прототип, но качество слияния сущностей и глубина анализа ограничены.
Если вы сейчас используете только векторный поиск с локальной LLM, GraphRAG — логичный следующий шаг, когда нужно понимать не только «что рядом в эмбеддинговом пространстве», а как сущности связаны и во что они собираются тематически.