ENIGMA AI
ENIGMA AI

Как работает RAG (Retrieval-Augmented Generation)?

встречается 3× AI middle architecture

Как ответить

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

На практике RAG-система состоит из двух фаз:

  • Индексация. Исходные документы (PDF, HTML, базы знаний) разбиваются на чанки. Типичный размер — 256–512 токенов с перекрытием 10–20%, чтобы не потерять контекст на стыках. Для каждого чанка вычисляется эмбеддинг (например, text-embedding-3-small от OpenAI или intfloat/e5-mistral-7b-instruct). Векторы сохраняются в векторном хранилище — FAISS, Pinecone, Qdrant, Chroma.
  • Инференс. На запрос пользователя тоже вычисляется эмбеддинг, затем ищется top-k ближайших чанков (обычно k=3–10) по косинусной близости или L2. Найденные чанки вместе с исходным вопросом форматируются в промпт и отправляются в LLM.

Пример промпта (упрощённо):

Используй следующие фрагменты документов, чтобы ответить на вопрос. Если в фрагментах нет ответа, скажи, что не знаешь.

Фрагменты:
{context}

Вопрос: {question}

Ответ:

Ключевые инженерные решения, которые я проверял на практике:

  • Выбор ретривера. Часто комбинируют dense + sparse (BM25) — гибридный поиск даёт лучший recall. Для dense использую модели с размерностью 768–1024.
  • Размер чанка. Слишком маленькие чанки (менее 100 токенов) теряют контекст, слишком большие (более 1000) — шум. Оптимум зависит от домена: для юридических документов я беру 400 токенов, для кода — 200.
  • Метрики. Качество ретривера меряю через recall@k и MRR. Качество ответов — через human evaluation и автоматические метрики (ROUGE, BERTScore), но они не всегда коррелируют с реальной полезностью.

RAG не требует дообучения модели — это его главное преимущество перед fine-tuning. Можно быстро обновлять базу знаний, просто переиндексируя новые документы. Основная сложность — правильно настроить чанкинг и ретривер, чтобы контекст был релевантным, а не зашумлённым.

Ключевые тезисы

  • RAG комбинирует ретривэл (поиск по внешней базе) и генерацию, решая проблему галлюцинаций и устаревших знаний LLM.
  • Основные этапы: индексация (чанкинг → эмбеддинги → векторное хранилище) и инференс (эмбеддинг запроса → поиск top-k → промпт с контекстом → ответ LLM).
  • Критические параметры: размер чанка (обычно 256–512 токенов), overlap (10–20%), выбор модели эмбеддингов и ретривера (гибрид dense+sparse часто лучше).
  • RAG легко обновляется (достаточно переиндексировать документы) и не требует дообучения модели, в отличие от fine-tuning.

Что спросят дальше

  • — Как ты выбираешь размер чанка и overlap для конкретного домена? Приведи пример.
  • — Что делать, если ретривер часто выдаёт нерелевантные чанки? Какие методы улучшения ты знаешь?
  • — Чем RAG отличается от fine-tuning? В каких случаях ты выберешь одно вместо другого?

Готовьтесь к собеседованию с ENIGMA AI

AI-суфлёр подсказывает ответы прямо на собеседовании в реальном времени — незаметно для интервьюера.

Скачать приложение