Что такое RAG
Retrieval-Augmented Generation (Генерация с извлечением)
RAG -- это техника дополнения языковых моделей внешними знаниями путем извлечения релевантных документов из базы данных перед генерацией ответа.
Retrieval-Augmented Generation (RAG) -- это подход к работе с LLM, при котором модель дополняется внешней базой знаний. Вместо того чтобы полагаться только на знания, полученные при обучении, RAG-система сначала ищет релевантные документы, а затем использует их как контекст для генерации ответа.
Как работает RAG:
Индексация. Документы разбиваются на фрагменты (chunks), для каждого создается числовое представление (embedding) с помощью модели-эмбеддера. Embeddings сохраняются в векторной базе данных.
Извлечение (Retrieval). При поступлении запроса пользователя создается embedding запроса, и система находит наиболее похожие фрагменты документов по косинусному сходству.
Генерация (Generation). Найденные фрагменты добавляются в промпт LLM как контекст. Модель генерирует ответ на основе извлеченной информации.
Преимущества RAG: доступ к актуальной информации, снижение галлюцинаций, возможность работы с приватными данными, прозрачность (можно указать источники).
Инструменты для RAG: LangChain, LlamaIndex, Haystack, а также векторные базы данных -- Pinecone, Weaviate, ChromaDB, pgvector.