Phone icon Связаться с нами

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 от галлюцинаций?

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

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

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

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

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

Обучение программированию в OWU

Освойте профессию в IT на практических курсах с менторами и реальными проектами.

Выбрать курс