К содержимому
Основы

Основы RAG: генерация с опорой на ваши данные

RAG без магии: как эмбеддинги и векторный поиск находят нужные фрагменты, а модель отвечает с опорой на них. Этапы конвейера и когда RAG действительно нужен.

3 минуты чтения

RAG (Retrieval-Augmented Generation) — способ отвечать на вопросы по вашим данным, которых модель не знает: внутренней базе знаний, документации, свежим документам. Идея проста: перед генерацией найти релевантные фрагменты и подложить их модели в контекст. Никакого дообучения — только поиск плюс подстановка. Разберём этапы без магии. Определение — в глоссарии.

Зачем нужен RAG

  • Знания вне обучения — модель не знает вашу внутреннюю документацию и события после своего обучения; RAG подаёт эти данные в момент запроса.
  • Меньше выдумок — с опорой на конкретный источник модель реже галлюцинирует и может сослаться на фрагмент.
  • Актуальность — обновили базу, и ответы обновились без дообучения модели.
  • Экономия контекста — вместо всей базы в окно уходит только релевантный запросу кусок.

Как это работает: эмбеддинги и векторный поиск

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

Ключ к поиску «по смыслу» — эмбеддинги: текст превращается в вектор чисел так, что близкие по смыслу тексты дают близкие векторы. Вопрос пользователя тоже превращается в вектор, и поиск находит фрагменты базы с ближайшими векторами — даже если дословно слова не совпали. Определение — в глоссарии.

Этапы конвейера RAG

ЭтапЧто происходитКогда выполняется
Разбиение
Документы режутся на фрагменты (чанки) удобного размера
Заранее, при подготовке базы
Индексация
Каждый фрагмент превращается в эмбеддинг и кладётся в векторную базу
Заранее, при подготовке базы
Поиск
Вопрос превращается в эмбеддинг, находятся ближайшие фрагменты
На каждый запрос пользователя
Сборка контекста
Найденные фрагменты подставляются в промпт вместе с вопросом
На каждый запрос пользователя
Генерация
Модель отвечает, опираясь на поданные фрагменты
На каждый запрос пользователя

Первые два этапа — подготовка базы, делаются один раз (и повторяются при обновлении данных). Остальные три выполняются на каждый вопрос. На этапе генерации подойдёт любая модель каталога — RAG не привязан к конкретной.

на заметку
Качество RAG чаще упирается в поиск, а не в модель. Если в контекст попали нерелевантные фрагменты, даже сильная модель ответит плохо — «мусор на входе, мусор на выходе». Настройка разбиения и поиска обычно важнее выбора модели генерации.

Когда RAG нужен, а когда нет

  • Нужен — ответы по большой базе знаний, документации, корпусу документов, где под каждый вопрос релевантен лишь малый кусок.
  • Избыточен — если все данные помещаются в контекст целиком и это недорого, проще подать их напрямую без векторного поиска.
  • Не поможет — если проблема в рассуждении, а не в знаниях; тогда смотрите на выбор модели и промпт, а не на поиск.
обратите внимание
RAG — это про поиск и подстановку, а не про запоминание. Модель ничего не «выучивает» из вашей базы: она видит только те фрагменты, что вы подали в конкретном запросе. Забыли положить нужный кусок — модель о нём не узнает.

Частые вопросы

Чем RAG отличается от дообучения модели?

Дообучение меняет саму модель на ваших данных — это дорого и требует переобучения при обновлениях. RAG модель не трогает: он находит релевантные фрагменты и подаёт их в контекст на каждый запрос. Обновить знания — просто обновить базу.

Зачем нужны эмбеддинги, если есть обычный поиск по словам?

Поиск по словам находит точные совпадения, эмбеддинги — совпадения по смыслу. Вопрос «как вернуть товар» найдёт фрагмент про «оформление возврата», даже если слова не совпадают дословно. Часто их комбинируют.

Какая модель нужна для генерации в RAG?

Любая из каталога — RAG не привязан к конкретной модели. Выбор делается по задаче: для простых ответов по фрагментам хватит среднего тира или лёгкой модели, для сложного синтеза по многим источникам берите сильнее.

AI Gateway

Модель, которая отвечает по найденным фрагментам, — по одному ключу