Ваш RAG не умеет думать. А мой умеет

Ваш RAG не умеет думать. А мой умеет

Базовые RAG-системы уже научились неплохо справляться с прямыми вопросами по тексту. Но только если ответ лежит в одном конкретном абзаце, а вопрос сформулирован почти так же, как сам исходный документ.

Сегодня рассмотрим open-source RAG-фреймворк HippoRAG 2. В сфере RAG главным преимуществом данного фреймворка является качество ответов, потому что принципы его работы основаны на реальном человеческом мозге.

Принципы работы

Префикс «Hippo» в названии — это отсылка к гиппокампу, структуре мозга, которая отвечает за формирование и извлечение долговременных воспоминаний.

Разработчики из Ohio State University взяли за основу теорию гиппокампального индексирования Тейлера и Дисченна. Согласно ей, мозг хранит не сами воспоминания целиком, а лишь некоторые связи между ними, и при запросе восстанавливает полную картину через цепочку ассоциаций.

Установка и первый запуск

Установить фреймворк можно через pip или клонировав репозиторий.

Индексация документов

Индексация запускается одной командой:

Что происходит внутри?

  • Документы режутся на чанки (стандартно — по предложениям).
  • Каждый чанк эмбеддится.
  • Одновременно LLM обрабатывает каждый чанк через OpenIE и извлекает из него все смысловые триплеты.
  • Триплеты превращаются в узлы и рёбра knowledge-графа.
  • Эмбеддинги узлов графа тоже вычисляются (чтобы потом искать похожие факты).

Что возвращает каждая функция?

retrieve— поиск без генерации ответа:

На выходе — список списков. Для каждого запроса:

Важный момент: type может быть 'chunk' (найденный чанк) или 'fact' (найденный триплет из графа) — зависит от того, что победило в ранжировании.

rag_qa— выполняет полный цикл: поиск → передача найденного контекста в LLM → генерация ответа

Вернёт список строк с ответами, например: ['Rockland County']. В ответе также возвращается список использованных чанков.

Читать оригинал