TGViewer
Вася Сизов | grok ML Вася Сизов | grok ML @grok_ml · 64 subscribers
Post #26 60
Graph RAG и «Гарри Поттер»

На новогодних праздниках у меня появился доступ к внешней H100. Пройти мимо такого подарка я не мог, поэтому взялся экспериментировать


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


Когда я изучил библиотеку от Microsoft , то понял, что на работе что-то подобное мы уже делали.


Если на пальцах, то идея в следующем:


⚪️ Давайте каждый чанк пропустим через LLM
⚪️ Выделим сущности (а также их описание)
⚪️ Выделим отношения между сущностями (а также проставим силу связи между сущностями, это пусть тоже делает LLM)


Вот и готово! По сути у нас есть узлы, ребра, и даже сила связей. Построим граф, и будем по нему искать контекст.


Я думал, что будет работать из коробки, но не тут то было. 3 дня я потратил, чтобы завести графовый раг на банковском документе, скачанном из интернета. Но возникла другая проблема - я не знал, как оценить работу. Поэтому я выбрал книгу о Гарри Поттере. Пришлось даже отойти от графового рага и сделать temporal rag (проблема была в том, что классический графовый раг не учитывает временную компоненту == развитие сюжета).


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


Какие выводы я сделал:


⚪️ Графовый раг - концепция хорошая. Она позволяет искать контекст по всем документам, выделять только нужные сущности и отношения. Также зачастую не упускает мелкие важные детали.


⚪️ Сам граф очень сложно готовить:


🔴 Первая причина - LLM. Если модель слабая и часто галлюцинирует, то граф конечно же развалится. Например, модель одни и те же сущности называет по-разному (в моем случае qwen 3 30b), что только мешает построить граф.
🔴 Вторая причина - количество запросов к LLM. Представьте, что через LLM нужно пропустить все чанки. Это тысячи запросов к языковой модели. Построение индекса довольно долгое (хоть я и запускал в 8 потоков).
🔴 Третья причина - узлы с огромным количеством связей. Представьте, что весь документ про кредит. В итоговом графе у сущности “кредит” будет очень много связей. Это означает, что граф нужно будет преобразовать, перед тем как в нем искать.


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


Я бы выбрал что-то среднее, например agentic rag или self rag.


Красивые слайды и примеры можно посмотреть здесь.
  • ❤ 2
  • 👍 1
More from @grok_ml
  1. Oct 7, 2026North Star: почему главная метрика компании — обычно не деньги Первый шаг из состояния, гд…
  2. Oct 4, 2026RAG отвечает правильно в 90% случаев, а пользователи говорят, что модель плохая Кейс из жи…
  3. Sep 27, 2026Точечная оценка и доверительный интервал 🔵Accuracy 90% на 100 объектах и на 100 000 — это…
  4. Sep 14, 2026В предыдущем посте были пять паттернов workflow. Общее у них одно: путь по шагам задан код…
  5. Sep 14, 2026В прошлом посте была шкала из шести уровней автономии. У неё есть слабое место: граница ме…
  6. Sep 2, 2026Что вообще такое «агент» Агентом сейчас называют что угодно: чат-бота, скрипт с одним пром…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →