RAG: обогащение контекста поиском

Ключевой урок курса. Здесь становится понятно, почему абзац важнее статьи.

🎯 Тема урока

RAG (Retrieval-Augmented Generation): как собирается ответ

1. Зачем нужен RAG

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

Именно RAG — тот канал, через который ваш сайт может попасть в ответ уже завтра, без переобучения модели.

2. Пять шагов формирования ответа

Шаг 1. Поиск источников. После разложения промта через Query Fanout ассистент обращается к классическим поисковым системам:

АссистентКуда идёт за источниками
ChatGPT (веб-режим)Google / Bing
PerplexityGoogle / Bing
Яндекс Алиса, НейроЯндекс
GeminiGoogle + прямой доступ к YouTube

Оттуда забирается пул из 20–50 страниц-кандидатов (иногда до 60).

Шаг 2. Нарезка на чанки. Модель не читает страницу целиком. Она режет документ на чанки — автономные фрагменты по 300–500 символов, обычно 1–3 абзаца под одним подзаголовком H2.

Шаг 3. Векторизация. Каждый чанк переводится в числовой вектор — эмбеддинг. Вектор описывает смысл фрагмента в многомерном пространстве.

Шаг 4. Сравнение и отбор. Запрос пользователя тоже превращается в вектор. Система считает косинусную близость между вектором запроса и векторами всех чанков и отбирает 3–5 самых релевантных (иногда до 7).

Шаг 5. Генерация. Отобранные фрагменты помещаются в контекстное окно модели (grounding context). Нейросеть синтезирует из них связный ответ и расставляет ссылки-сноски на процитированные чанки.

Промт пользователя
[1] Query Fanout ──► 10-15 подзапросов
[2] Поиск ─────────► 20-50 страниц-кандидатов
[3] Чанкинг ───────► сотни фрагментов по 300-500 символов
[4] Эмбеддинги ────► отбор 3-5 лучших чанков
[5] Генерация ─────► ответ + ссылки на источники

3. Три вывода, из которых растёт весь GEO

Вывод 1. Конкурируют абзацы, а не сайты. В пул попадает 20–50 страниц, а в ответ — 3–5 фрагментов. Ваш абзац соревнуется с абзацем конкурента, а не ваш домен с его доменом.

Вывод 2. Чанк вырезается без контекста. Модель берёт фрагмент отдельно от остальной страницы. Всё, что нужно для понимания, должно быть внутри самого абзаца.

Вывод 3. Чтобы дойти до шага 3, нужно попасть в шаг 2. Пул кандидатов формируется из поисковой выдачи. Нет позиций — вас нет в пуле, и качество текста уже не имеет значения.

4. Как проверить себя на практике

Простое упражнение на 15 минут:

  1. Откройте вашу ключевую страницу.
  2. Выделите любой абзац, отвечающий на важный вопрос.
  3. Скопируйте только его в чистый документ — без заголовка и соседних абзацев.
  4. Прочитайте. Понятно ли из этого текста, о каком продукте речь, чьё это решение, какие цифры?

Если в абзаце встречаются «он», «этот сервис», «мы», «данная услуга» — фрагмент нежизнеспособен как чанк. Правило имени сущности разберём в уроке 2.4 и отработаем в уроке 4.1.

5. Почему ответы каждый раз разные

Отбор чанков зависит от формулировки промта, а генерация вероятностна. Поэтому:

  • один и тот же вопрос в двух чатах даёт разные ответы и разные источники;
  • замер видимости нужно повторять 2–3 раза и считать долю, а не факт;
  • проверять надо в чистых чатах без истории — контекст предыдущей беседы искажает результат.

🧭 Что дальше?

Разберём, почему одного своего сайта мало: механика консенсуса и повторяемости сигнала.