Что такое Retrieval-Augmented Generation (RAG)?

Retrieval-Augmented Generation (RAG) is an AI architecture that combines a large language model with an external knowledge retrieval step, so the model can look up relevant documents before producing an answer. This grounding in retrieved, up-to-date sources helps reduce hallucinations and lets the system answer questions about information it was not explicitly trained on.

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

Как работает генерация с дополнением извлечением

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

Например, если пользователь спросит внутреннего корпоративного ассистента «Какова наша политика отпуска по уходу за ребёнком?», ретривер найдёт соответствующий раздел справочника сотрудника, и языковая модель использует эти фрагменты, чтобы составить точный ответ с цитированием политики. Этот подход, представленный в работе Lewis et al. 2020 года из Facebook AI Research, разделяет знание (хранящееся в индексе) и рассуждение (выполняемое моделью), поэтому метод хорошо масштабируется по мере изменения исходных материалов.

Почему это важно

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

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

Ключевые типы и шаблоны

  • Наивный RAG (или «извлечь и прочитать»): один шаг извлечения, при котором top-k фрагментов напрямую подаются в промпт генератора.
  • Продвинутый RAG: добавляет перезапись запросов, реранжирование и фильтрацию на уровне фрагментов перед генерацией для повышения точности.
  • Модульный RAG: компонует конвейер из взаимозаменяемых компонентов, таких как веб-поиск, SQL-запросы или вызовы API, и может переключаться между извлечением и генерацией в цикле.
  • Графовый RAG: строит граф знаний по корпусу и извлекает подграфы связанных сущностей, что позволяет получать более контекстные ответы по связанным данным.
  • Агентский RAG: позволяет языковой модели решать, когда и что извлекать, зачастую с использованием нескольких инструментов, прежде чем выдать итоговый ответ.

Благодаря разделению хранения знаний и движка рассуждений RAG стал фундаментальным строительным блоком для промышленных ИИ-приложений, которым необходимы точность, актуальность и возможность аудита. Оригинальное исследование описано в работе Lewis et al., «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks» (2020), а текущие лучшие практики задокументированы в таких фреймворках, как LlamaIndex и LangChain.

Frequently Asked Questions

How is RAG different from fine-tuning a language model?
Fine-tuning bakes new knowledge and behavior into a model's weights by continuing training on example data, which is expensive and must be repeated whenever the source material changes. RAG leaves the model unchanged and instead supplies relevant documents at inference time, so knowledge can be updated by simply editing the search index. The two approaches are complementary and are often combined in production systems.
What is a vector database and why does RAG need one?
A vector database stores documents (or chunks of them) as numerical embeddings produced by an embedding model. RAG needs it because retrieving by meaning, rather than exact keywords, requires comparing the query's embedding to every candidate's embedding and returning the nearest matches. Specialized vector stores such as FAISS, Pinecone, Weaviate, and pgvector make this nearest-neighbor search fast at scale.
Does RAG eliminate hallucinations?
No system fully eliminates hallucinations, but RAG significantly reduces them by forcing the model to answer from supplied context. Errors can still occur if the retriever returns irrelevant or low-quality chunks, if the source documents themselves are wrong, or if the model misinterprets the retrieved text. Best-practice pipelines add re-ranking, citation checks, and guardrails to catch these cases.
What kind of data can a RAG system search over?
Almost any text-based corpus: PDFs, wikis, help-center articles, code repositories, product catalogs, legal contracts, internal chat logs, and web pages. After appropriate parsing and chunking, the content is embedded and indexed, and the same RAG pipeline can serve many domains. Multimodal RAG extensions can also retrieve images, tables, and audio.