Prog Academy
RU UA
AI-агенты и автоматизация

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

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

Схема состоит из двух этапов. Сначала документы режут на фрагменты, превращают в эмбеддинги и складывают в векторную базу. Затем на каждый вопрос пользователя система переводит запрос в вектор, находит несколько самых близких фрагментов и подставляет их в промпт: «ответь на вопрос, опираясь только на этот контекст».

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

Где применяется

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

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

Пример

Сотрудник спрашивает про условия возврата оборудования. Система находит три фрагмента из внутреннего регламента, передаёт их модели и получает ответ со ссылкой на конкретный пункт — вместо правдоподобного пересказа общих правил из интернета.

question = 'Каковы условия возврата оборудования?'

chunks = vector_db.search(embed(question), limit=5)
context = '\n\n'.join(c.text for c in chunks)

answer = llm.complete(
    system='Отвечай только по приведённым фрагментам. '
           'Если ответа в них нет — так и скажи.',
    prompt=f'Документы:\n{context}\n\nВопрос: {question}',
)
Схема RAG в четыре шага: вектор запроса, поиск фрагментов, сборка контекста, ответ по найденному.

RAG или fine-tuning — что выбрать

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

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

Подходит ли RAG для небольшой базы документов?

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

Избавляет ли RAG от галлюцинаций?

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

Как правильно нарезать документы на фрагменты?

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

Сколько фрагментов передавать модели?

Обычно от трёх до десяти. Слишком мало — нужный кусок может не попасть в выборку; слишком много — важное теряется среди лишнего, а запрос дорожает. Оптимум подбирают экспериментально на наборе реальных вопросов с известными ответами.

Связанные термины