core-ai
Словарь ↗Генерация с дополненным поиском (RAG)
Retrieval-Augmented Generation (RAG) — это архитектурный паттерн, который объединяет этап поиска/ретривала с этапом генерации LLM, чтобы модель отвечала, опираясь на ваши конкретные, актуальные данные, а не только на то, что она запомнила при обучении. Это решает две ключевые слабости LLM: галлюцинации (выдумывание правдоподобных, но ложных фактов) и устаревание данных (у обучающих данных есть дата отсечки). RAG критически важен для SaaS-разработчиков, потому что это самый дешёвый и быстрый способ заставить универсальную LLM вести себя как эксперт в вашем продукте, документации или клиентских данных — без затрат и сложности дообучения (fine-tuning). Процесс состоит из трёх шагов. Сначала — ретрив (retrieve): вопрос пользователя превращается в вектор embedding, затем выполняется поиск по сходству в векторной базе данных (например, pgvector или Pinecone), хранящей embedding'и фрагментов ваших документов, и возвращаются top-k наиболее релевантных отрывков. Затем — дополнение (augment): эти отрывки вставляются в контекстное окно LLM вместе с вопросом пользователя, обычно в системный промпт или как преамбулу. И наконец — генерация (generate): LLM формирует ответ, ограниченный ссылкой на предоставленный контекст. Конкретный пример: пользователь спрашивает у SaaS-бота поддержки «Как сбросить мой API-ключ?» Система превращает этот вопрос в embedding, ищет по векторному хранилищу статей вашего справочного центра, извлекает три наиболее релевантных фрагмента (например, документы «API-ключи» и «Настройки безопасности») и отправляет LLM промпт вида: `"Используя только приведённый ниже контекст, ответь на вопрос пользователя. Контекст: [отрывок из документа об API-ключах]... Вопрос: Как сбросить мой API-ключ?"` Модель отвечает точными шагами сброса из вашей документации, а не догадывается. Пайплайны RAG обычно также включают реранкинг (reranking — второй, более точный проход оценки релевантности извлечённых фрагментов) и отслеживание цитирования, чтобы ответы можно было связать с исходными документами. RAG — не панацея: качество ретривала задаёт потолок качества генерации, поэтому стратегия разбиения на фрагменты (chunking), выбор модели embedding и фильтрация по метаданным важны не меньше самой LLM. Системы RAG отказывают предсказуемым образом, и разработчикам стоит проектировать с учётом этого: если этап ретривала возвращает нерелевантные фрагменты, этап генерации уверенно отвечает на основе неверного контекста (мусор на входе — уверенный мусор на выходе); если документ разбит на фрагменты неудачно (таблица или пронумерованная процедура разрезана посередине), извлечённый контекст может быть неполным или вводящим в заблуждение, даже если нужный документ найден. Продакшн-пайплайны RAG обычно добавляют проход реранкинга после первичного ретривала, отслеживают, какие фрагменты-источники реально были использованы в каждом ответе (для цитирования и отладки), и задают явный откат «у меня недостаточно информации, чтобы ответить на это», когда оценки релевантности извлечённых фрагментов падают ниже порога, вместо того чтобы позволять модели гадать.
Похожие термины