Архитектура RAG/поисковой системы для документов
Нужно построить систему, которая ищет по внутренним документам и помогает отвечать на вопросы. Какой пайплайн спроектировать?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Загрузка документов, очистка и chunking, metadata/ACL, embedding index, lexical index, hybrid retrieval, реранжирование, generation с citations и слой проверок: permissions, freshness, hallucination, fallback.
Полный разбор
Базовый RAG-пайплайн начинается с загрузки документов: забрать документы из источников, очистить, разбить на чанки, сохранить metadata, версии, владельца и права доступа. Для retrieval обычно стоит иметь не только vector index, но и lexical search, потому что точные термины, номера документов и имена часто лучше находятся BM25.
На запросе система делает query normalization, hybrid retrieval, реранжирование top-N чанков, затем передает компактный контекст в LLM. Ответ должен содержать ссылки/citations на источники и не выходить за права пользователя. Если контекста мало или confidence низкий, лучше честный fallback, чем выдуманный ответ.
Оценка: retrieval Recall@K/MRR/NDCG на gold set, faithfulness ответа, answer relevance, latency, cost, coverage по типам документов, доля отказов и жалобы пользователей.
Теория
RAG - это не только LLM prompt, а поисковая система с правами доступа, индексами, реранжированием и оценкой достоверности.
Типичные ошибки
- Делать только векторный поиск без lexical fallback.
- Не учитывать ACL и версии документов.
- Оценивать только красоту ответа, не проверяя найденный контекст.