Проблема baseline RAG

Top-k chunks хорошо отвечают на локальный факт, но хуже связывают разнесённые сведения и описывают темы всего корпуса. GraphRAG извлекает явные entities, relationships и claims.

Как строится индекс

Текст делится на TextUnits, модель извлекает сущности и связи, затем граф кластеризуется, а communities получают summaries. Производные таблицы и embeddings должны быть привязаны к версии исходного корпуса.

Local Search

Локальный режим начинает с конкретной сущности и собирает соседние отношения, claims и text units. Он подходит для вопроса о человеке, организации или объекте и требует контроля context budget.

Global Search

Глобальный режим использует community reports и map-reduce для вопросов о темах всего набора. Он ресурсоёмок и не нужен для простого поиска одного факта.

DRIFT и Basic

DRIFT сочетает локальную сущность с community context и follow-up вопросами. Basic Search оставляет обычный vector baseline. Router должен выбирать самый простой достаточный метод.

Стоимость и ошибки извлечения

LLM-вызовы при индексации могут быть дорогими, а ошибочная связь распространяется в summaries. Начните с малого корпуса, сохраняйте provenance и проверяйте entities, duplicates и claims.

Оценка и обновления

Сравните GraphRAG с baseline на local, global и multi-hop вопросах. Измеряйте correctness, coverage, citations, latency и indexing cost. При обновлении отслеживайте stale communities и совместимость версий.

С чего начать?
С ограниченного корпуса, реальных запросов и измеримого baseline. Зафиксируйте версии данных, retrieval и модели до эксперимента.
Какие метрики обязательны?
Retrieval quality, correctness ответа, p95 latency, стоимость и ошибки по отдельным сегментам запросов.
Можно ли копировать настройки из документации?
Только как baseline. Финальные параметры выбираются по вашему корпусу, фильтрам, языку и нагрузке.
Как выпускать изменение?
Собрать новую версию рядом, прогнать offline eval и shadow, затем canary с готовым rollback.
Что логировать?
Trace ID, версии pipeline и индекса, transformed queries, candidate IDs, filters и итоговые метрики без лишнего чувствительного payload.
Как избежать утечки данных?
Проверять identity и ACL до retrieval, изолировать кэши и повторно проверять права при показе citations.
← Все статьи блога