Урок 03 из 6 · 2 минуты чтения

RAG — ответы по своим документам

Как модель отвечает по документам компании — эмбеддинги, разбиение на фрагменты, векторный и гибридный поиск, реранкинг.

Зачем нужен RAG

Модель не знает ваших документов и не знает свежих данных. RAG (retrieval-augmented generation) решает это в два шага: сначала найти релевантные фрагменты документов, затем сгенерировать ответ, передав их модели в контексте с инструкцией «отвечай по контексту». Бонусы — ссылки на источники, свежие данные без дообучения и права доступа на уровне документов.

Эмбеддинги: смысл в виде чисел

Эмбеддинг — вектор из сотен чисел, в котором близкие по смыслу тексты оказываются близко друг к другу. Близость меряют косинусным сходством: 1 — направлены одинаково, около 0 — не связаны. Запрос и документы обязательно кодируют одной и той же моделью — векторы разных моделей несравнимы.

Индексация: от документа к фрагментам

Документы разбивают на фрагменты — по структуре (разделы, абзацы), а не по символам. Фрагмент должен быть самодостаточным и достаточно коротким: слишком мелкий теряет контекст, слишком крупный размывает эмбеддинг. Соседние фрагменты слегка перекрываются, к каждому добавляют заголовок раздела и метаданные — источник, дату, права. Размер подбирают экспериментом на своих вопросах.

Поиск

Векторный поиск находит ближайшие векторы к вектору запроса. На больших объёмах используют приближённые индексы вроде HNSW — быстро ценой небольшой потери полноты. Хранить можно в pgvector или в специализированной базе.

Векторный поиск ловит смысл, но промахивается на точных совпадениях: артикулы, коды ошибок, имена. Полнотекстовый поиск (BM25) — наоборот. Гибридный поиск выполняет оба и объединяет списки, например методом Reciprocal Rank Fusion.

Реранкер (cross-encoder) оценивает пару «запрос + фрагмент» вместе — точнее, но дороже. Поэтому схема двухэтапная: быстро отобрать 50–100 кандидатов, переранжировать и отдать модели лучшие 5–10.

Где ломается RAG

Если ответ плохой, сначала понять этап: не нашли нужный фрагмент (чинить поиск — разбиение, гибрид, реранкер) или нашли, но ответили плохо (чинить генерацию — промпт, порядок фрагментов, меньше шума). Всё проверяется на наборе вопросов с метриками.

Итог

  • Поиск фрагментов, затем генерация по ним.
  • Эмбеддинги и косинусное сходство, одна модель для запроса и документов.
  • Разбиение по структуре с метаданными.
  • Гибридный поиск и реранкер для качества.

Проверка урока

Войдите, чтобы проверить себя: сданные проверки всех уроков курса отмечают его темы пройденными на карте и в ИПР.

Вопросы по теме

Читайте также

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования