Введение в RAG

Чему научитесь

Видео 5:51 и текст урока

К концу урока вы сможете:

Видео и текст урока.

Смотреть урок на Skilljar Introducing Retrieval Augmented Generation · 5:51

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

Проблема больших документов

Представьте финансовый документ на 800 страниц, по которому вы хотите задавать Claude конкретные вопросы — например, «What risk factors does this company have?». Нужную информацию из документа как-то надо передать Claude, но объём текста, который можно включить в промпт, ограничен.

Документ закрытый, Claude не знает его содержимого: разделы вроде Executive Summary и Risk Factors.
Документ закрытый, Claude не знает его содержимого — разделы вроде Executive Summary и Risk Factors.

Вариант 1. Всё в промпт

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

Answer the user's question about the financial document.

<user_question>
{user_question}
</user_question>

<financial_document>
{financial_document}
</financial_document>
Весь финансовый отчёт целиком в промпте с пометкой «Possibly not the best solution».
Весь отчёт целиком в промпте — «Possibly not the best solution». Ограничения — ниже.

У этого подхода серьёзные ограничения:

Вариант 2. Разбить документ на фрагменты

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

Финансовый отчёт, разбитый на шесть фрагментов: Strategy Outlook, Balance Sheet, Auditor's Report и другие.
Отчёт разбит на шесть фрагментов: Strategy Outlook, Balance Sheet, Auditor's Report и другие.

Как это работает: если кто-то спрашивает «What risks does this company face?», вы ищете по фрагментам, находите раздел «Risk Factors» и включаете в промпт только этот подходящий фрагмент.

Шесть фрагментов; вопрос пользователя и один фрагмент попадают в промпт.
Из шести фрагментов в промпт вместе с вопросом попадает только подходящий.

Плюсы RAG

Сложности RAG

Например, документ можно разделить на части равного размера, а можно — по структуре: по заголовкам и разделам. У каждого подхода свои компромиссы, которые нужно оценить для своей задачи.

Когда использовать RAG

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

Ключевая мысль: RAG меняет простоту на масштабируемость и эффективность. Он требует больше работы на старте, зато позволяет работать с коллекциями документов, которые невозможно обработать, просто положив всё в промпт.

Дальше

Первый шаг RAG — разбить текст на фрагменты. Следующий урок сравнивает стратегии разбиения.

Оригинал урока: Introducing Retrieval Augmented Generation.