Что такое RAG простыми словами: как нейросеть отвечает по вашим документам

Все статьи
Все статьи
Редакция Neurounit
5 августа 2026
Обновлено 22 августа 2026
Нейросети
Что такое RAG простыми словами: как нейросеть отвечает по вашим документам
RAG простыми словами: как нейросеть отвечает по вашим документам, а не по памяти. Разбираем принцип, ошибки и с чего начать внедрение в бизнесе.

Нейросеть уверенно называет цену, которой нет в прайсе, ссылается на несуществующий пункт договора и пересказывает отменённый полгода назад регламент. Причина одна: модель отвечает по тому, что осело в её весах при обучении, а не по вашим файлам. Разберём, что такое RAG, зачем эта схема нужна и что в ней ломается чаще всего.

RAG простыми словами: эксперту дают нужную страницу перед ответом

RAG простыми словами это способ заставить модель отвечать не по памяти, а по документу, который ей подсунули прямо перед ответом. Представьте эксперта, которому на каждый вопрос кладут на стол нужные две страницы инструкции. Он их читает и отвечает по ним, а не по тому, что помнит с прошлого года. Аббревиатура расшифровывается как Retrieval-Augmented Generation, то есть генерация ответа с опорой на найденные фрагменты.

Термин ввела работа «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks» (arXiv:2005.11401), первая версия опубликована 22 мая 2020 года, принята на NeurIPS 2020. Авторы разделили память модели на две части: параметрическую, зашитую в веса seq2seq-модели, и непараметрическую, то есть плотный векторный индекс Википедии, к которому обращается нейронный ретривер. Там же описаны два варианта схемы: RAG-Sequence, где весь ответ опирается на один набор найденных фрагментов, и RAG-Token, где для разных токенов используются разные фрагменты.

Что такое RAG для LLM: какую дыру он закрывает

Вопрос «что такое RAG для LLM» сводится к тому, чего языковая модель не умеет сама. Она не знает ваш прайс, не видела внутренних регламентов и не может сослаться на источник, потому что источника у неё нет. RAG добавляет три вещи.

  • Актуальность. Поменяли документ в хранилище, ответ изменился со следующего запроса, без цикла дообучения.
  • Проверяемость. В ответе возвращается название файла и фрагмент, человек проверяет цитату за десять секунд.
  • Отказ вместо выдумки. Если поиск ничего не нашёл, корректная система отвечает «в базе нет», а не сочиняет.

Оговорка: RAG нужен не всегда. Инженеры Anthropic в разборе Contextual Retrieval от 19 сентября 2024 года пишут прямо: если база знаний меньше 200 000 токенов, а это примерно 500 страниц, её проще целиком положить в промпт. Поиск окупается, когда объём заметно больше этой границы или документы меняются каждую неделю.

Из чего состоит RAG система: пять узлов конвейера

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

Узел Что делает Типичная точка отказа
Загрузка и разбор Достаёт текст из PDF, DOCX, вики, тикетов, сохраняет метаданные Сканы без текстового слоя, таблицы, склеенные в кашу
Нарезка Режет документ на фрагменты нужного размера с перекрытием Разрыв посередине таблицы или пункта договора
Векторизация Переводит каждый фрагмент в набор чисел через модель эмбеддингов Фрагмент длиннее лимита модели эмбеддингов, часть текста в вектор не попадает
Индекс и поиск Хранит векторы и возвращает ближайшие к вопросу Только векторный поиск, без точных совпадений по номерам
Сборка и генерация Подставляет найденное в промпт и просит модель ответить со ссылками Нет инструкции «не знаешь — скажи, что не знаешь»

Собственно нейросеть работает только в последнем узле. Четыре предыдущих это инженерия данных, и именно там теряется большая часть качества.

Нарезка документов на фрагменты: где ломается чаще всего

Размер фрагмента задаёт баланс между точностью поиска и полнотой контекста. Мелкие куски находятся точнее, но теряют смысл вокруг. Крупные сохраняют контекст, но тянут в промпт лишнее и размывают вектор.

Ориентир дают значения по умолчанию в векторных хранилищах OpenAI: max_chunk_size_tokens равен 800, chunk_overlap_tokens равен 400. То есть фрагмент около 800 токенов, половина его перекрывается с соседним, чтобы предложение на стыке не потерялось. Anthropic в разборе Contextual Retrieval описывает типичный фрагмент как «не больше нескольких сотен токенов», а собственные расчёты стоимости ведёт на 800-токенных чанках.

Приём, который дал измеримый эффект: перед векторизацией к каждому фрагменту дописывают 50-100 токенов пояснения о том, из какого документа и раздела он взят. По данным Anthropic такая контекстная приписка снизила долю неудачных извлечений в топ-20 на 35 процентов, с 5,7 до 3,7. Менять поисковый движок для этого не требуется.

Правила нарезки, которые экономят недели отладки:

  • Резать по структуре документа, а не по числу символов вслепую: заголовок, пункт, строка таблицы.
  • Хранить рядом с фрагментом метаданные: версию, дату, подразделение, уровень доступа.
  • Не держать в одном индексе действующую и архивную редакции регламента: поиск честно найдёт обе.

Эмбеддинги и векторный поиск: что значит «близко по смыслу»

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

  • OpenAI text-embedding-3-small: 1536 измерений, максимум входа 8192 токена.
  • OpenAI text-embedding-3-large: 3072 измерения, тот же лимит входа 8192 токена. Параметр dimensions позволяет обрезать вектор; в документации отмечено, что даже усечённая до 256 измерений большая модель работает лучше, чем полная text-embedding-ada-002.
  • GigaChat Embeddings: вектор 1024 измерения, контекстное окно 512 токенов, цена по прайсу Сбера 14 рублей за 1 миллион токенов. В линейке также заявлены Embeddings-2, EmbeddingsGigaR и GigaEmbeddings-3B-2025-09.

Разница в лимите входа меняет архитектуру. У модели с окном 512 токенов фрагмент на 800 токенов не поместится: часть текста в вектор не попадёт или запрос вернётся с ошибкой, поэтому нарезку под неё делают вдвое мельче. Чужая инструкция «режьте по 800» без проверки лимита вашей модели тихо убивает качество поиска.

Расстояние считают по-разному: в pgvector есть операторы для евклидова, косинусного, скалярного и L1. Для текстовых эмбеддингов на практике берут косинусное.

Гибридный поиск и реранкинг: как поднять долю попаданий

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

Стандартный способ слияния это Reciprocal Rank Fusion. Формула в документации Elasticsearch: score = сумма по источникам от 1 / (k + rank), где rank это позиция документа в своём списке начиная с единицы, а k это константа rank_constant со значением по умолчанию 60. Метод требует минимум двух ретриверов и не заставляет подбирать веса между несопоставимыми шкалами релевантности.

Следующий слой это реранкер: отдельная модель переоценивает найденные фрагменты и оставляет лучшие. Цифры эффекта из эксперимента Anthropic на топ-20 фрагментов.

Конфигурация поиска Доля неудачных извлечений Снижение к базовой
Базовый вариант 5,7%
Контекстные эмбеддинги 3,7% 35%
Контекстные эмбеддинги плюс контекстный BM25 2,9% 49%
То же плюс реранкинг 1,9% 67%

Там же проверяли, сколько фрагментов передавать модели: сравнивали 5, 10 и 20, лучший результат дала передача 20. В хранилищах OpenAI поиск по умолчанию возвращает 10 результатов, а параметр max_num_results поднимает планку до 50.

Где хранить векторы и во что это обходится

Три рабочих варианта, выбор определяется объёмом и требованиями к контуру.

Расширение к существующей базе. pgvector добавляет тип vector в PostgreSQL версии 13 и выше, до 16 000 измерений. Ловушка: индексы HNSW и IVFFlat поддерживают не более 2000 измерений, поэтому вектор text-embedding-3-large на 3072 измерения напрямую не проиндексируется, придётся обрезать его параметром dimensions. Плюс варианта: данные и векторы в одной транзакционной базе, права доступа уже настроены.

Отдельный векторный движок. Qdrant решает проблему объёма квантованием: скалярное даёт сжатие в 4 раза (float32 в uint8), продуктовое до 64 раз, бинарное до 32 раз и до 40-кратного ускорения поиска, но документация рекомендует включать его только с перепроверкой исходными векторами.

Управляемое хранилище провайдера. Векторные хранилища OpenAI принимают файл до 512 МБ и до 5 000 000 токенов. Первый гигабайт хранения бесплатен, дальше 0,10 доллара за гигабайт в сутки, счёт считается по размеру разобранных фрагментов вместе с эмбеддингами. Политика expires_after удаляет неиспользуемые хранилища автоматически.

RAG, дообучение или длинный контекст: как выбрать

Три способа дать модели знание решают разные задачи, подменять один другим дорого.

Подход Что даёт Когда выбирать
Всё в промпт Ноль инфраструктуры, максимальная полнота База меньше 200 000 токенов, около 500 страниц
RAG Свежие данные и ссылка на источник, обновление за секунды Документы объёмнее и меняются регулярно, нужна проверяемость
Дообучение Стиль, формат ответа, доменная терминология Нужно поменять поведение модели, а не набор фактов

Правило разделения: факты подаются поиском, поведение ставится дообучением. Попытка «зашить» прайс в веса ломается на первом же изменении цены.

Быстрая проверка: нужен ли вам RAG

  • Ваша база знаний в сумме больше 500 страниц текста?
  • Документы меняются чаще, чем раз в квартал?
  • Нужна ли в ответе ссылка на конкретный пункт и файл?
  • Есть ли актуальная версия документов без дублей и архивных редакций?
  • Понятно ли, кому из сотрудников какие документы видеть нельзя?

Четыре «да» и больше: задача решается RAG. Один или два: начните с промпта, поиск пока не нужен.

Как измерить качество RAG: метрики вместо ощущений

«Стало лучше» не является результатом. Замер разделяют надвое: отдельно поиск, отдельно генерация.

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

Для генерации применяют библиотеку Ragas с метриками faithfulness, response relevancy, context precision и context recall. Faithfulness считается прозрачно: из ответа выделяют утверждения, проверяют каждое на выводимость из переданного контекста и делят число подтверждённых на общее. Значение от 0 до 1; если в ответе два утверждения и подтверждено одно, оценка равна 0,5. Метрика ловит ровно ту болезнь, ради которой RAG и строился.

Разделять замер важно, потому что лечение разное. Низкий faithfulness при хорошем поиске правится промптом и инструкцией отвечать только по контексту. Высокая доля неудачных извлечений правится нарезкой, гибридом и реранкером, смена модели генерации тут не поможет.

Персональные данные и коммерческая тайна в базе знаний

База знаний почти всегда содержит то, что нельзя отправлять куда попало: договоры, переписку с клиентами, кадровые документы. Два ограничения до выбора провайдера.

Первое, юридическое. Часть 5 статьи 18 Федерального закона № 152-ФЗ устанавливает, что при сборе персональных данных, в том числе через интернет, запись, систематизация, накопление, хранение, уточнение и извлечение персональных данных граждан Российской Федерации с использованием баз данных, находящихся за пределами территории Российской Федерации, не допускаются, с исключениями по пунктам 2, 3, 4 и 8 части 1 статьи 6 того же закона. Векторное хранилище с фрагментами договоров это ровно такая база данных, поэтому вопрос «где физически лежит индекс» решается на старте проекта, а не на приёмке.

Второе, техническое. При векторизации текст фрагмента уходит на сторону провайдера эмбеддингов. Если это неприемлемо, остаются два пути: российский контур с моделями вроде GigaChat Embeddings или локальная модель эмбеддингов рядом с pgvector на своём железе.

Права доступа фильтруются в запросе к индексу, до того как фрагменты попадут в промпт. Схема «нашли всё, потом попросили модель не показывать лишнее» не работает: инструкция в промпте не является механизмом разграничения прав.

Где RAG окупается и с чего начать пилот

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

Порядок пилота, который доводит до результата за недели, а не за год:

  1. Выбрать одну узкую зону и один тип документов. Не «вся компания», а «ответы поддержки по тарифам».
  2. Собрать чистые данные: одна актуальная версия каждого документа, без дублей и архивных редакций. Самый недооценённый и самый затратный по времени этап.
  3. Собрать прототип на значениях по умолчанию: фрагмент около 800 токенов с перекрытием, косинусное расстояние, десять фрагментов в промпт, ссылка на источник в ответе.
  4. Разметить набор реальных вопросов и снять две цифры: долю неудачных извлечений и faithfulness.
  5. Улучшать по слабому месту: сначала гибридный поиск и контекстная приписка к фрагментам, затем реранкер, и только потом более дорогая модель генерации.

Если системе нужно не только отвечать, но и совершать действия в CRM и почте, RAG становится источником фактов внутри агента; устройство самих агентов разобрано отдельно в материале что такое ИИ-агент.

Нужен RAG на ваших документах, а не эксперимент в ноутбуке

Разберём объём вашей базы знаний, где физически будет лежать индекс с учётом 152-ФЗ и какую модель эмбеддингов брать под ваш размер фрагмента. Соберём рабочий контур с замером доли неудачных извлечений и faithfulness.

Обсудить задачу

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

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

RAG подаёт факты в момент запроса, дообучение меняет веса модели: обновлённый документ действует со следующего вопроса, дообучение требует нового прогона. Если вся база меньше 200 000 токенов, примерно 500 страниц, инженеры Anthropic советуют не строить поиск вообще.

Какого размера делать фрагменты

Отправная точка это значения по умолчанию векторных хранилищ OpenAI: 800 токенов на фрагмент при перекрытии 400. Верхнюю границу задаёт модель эмбеддингов: у text-embedding-3 вход до 8192 токенов, у базовой GigaChat Embeddings всего 512, и под неё фрагменты делают мельче.

Нужна ли отдельная векторная база данных

Не всегда. pgvector работает в PostgreSQL 13 и выше и хранит векторы до 16 000 измерений, но индексы HNSW и IVFFlat ограничены 2000 измерениями. Отдельный движок вроде Qdrant берут ради объёма: скалярное квантование сжимает данные в 4 раза, продуктовое до 64 раз.

Сколько стоит хранение и векторизация

В векторных хранилищах OpenAI первый гигабайт бесплатен, далее 0,10 доллара за гигабайт в сутки, файл принимается до 512 МБ и до 5 000 000 токенов. Векторизация по прайсу Сбера стоит 14 рублей за 1 миллион токенов для линейки Embeddings. Актуальные тарифы сверяйте на страницах вендоров.

Как понять, что система работает, а не выдумывает

Снимайте две цифры. Долю неудачных извлечений: в эксперименте Anthropic базовые 5,7 процента опустились до 2,9 с контекстным BM25 и до 1,9 с реранкером. И faithfulness из Ragas: доля утверждений ответа, подтверждённых переданным контекстом, от 0 до 1.

Поделиться:
X
Редакция Neurounit

Разборы инструментов, гайды и новости про нейросети, AI-маркетинг и автоматизацию. Материалы готовит редакция агентства Neurounit.

Факты и цифры проверяет редакция агентства Neurounit. Вопросы и уточнения: Telegram.

Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга
Разборы, механика и результаты AI-маркетинга