Введение в RAG
Чему научитесь
Видео 5:51 и текст урока
К концу урока вы сможете:
- объяснить, какую проблему решает Retrieval Augmented Generation;
- сравнить подходы «всё в промпт» и «фрагменты + поиск»;
- назвать плюсы и сложности RAG и решить, когда он нужен.
Видео и текст урока.
Смотреть урок на Skilljar Introducing Retrieval Augmented Generation · 5:51Retrieval Augmented Generation (RAG) — приём для работы с большими документами, которые не помещаются в один промпт. Вместо того чтобы впихивать всё в огромный промпт, RAG разбивает документы на фрагменты (chunks) и при ответе на вопрос включает в промпт только самые подходящие из них.
Проблема больших документов
Представьте финансовый документ на 800 страниц, по которому вы хотите задавать Claude конкретные вопросы — например, «What risk factors does this company have?». Нужную информацию из документа как-то надо передать Claude, но объём текста, который можно включить в промпт, ограничен.
Вариант 1. Всё в промпт
Первый подход прямолинейный: извлечь весь текст документа и положить его в промпт вместе с вопросом пользователя. Промпт может выглядеть так:
Answer the user's question about the financial document.
<user_question>
{user_question}
</user_question>
<financial_document>
{financial_document}
</financial_document>
У этого подхода серьёзные ограничения:
- длина промпта жёстко ограничена — документ может не поместиться;
- на очень длинных промптах Claude работает хуже;
- большие промпты дороже обрабатывать;
- большие промпты дольше обрабатываются.
Вариант 2. Разбить документ на фрагменты
RAG действует умнее. Сначала, на этапе предобработки, документ разбивают на небольшие фрагменты. Затем, когда пользователь задаёт вопрос, находят фрагменты, наиболее подходящие к вопросу, и включают в промпт только их.
Как это работает: если кто-то спрашивает «What risks does this company face?», вы ищете по фрагментам, находите раздел «Risk Factors» и включаете в промпт только этот подходящий фрагмент.
Плюсы RAG
- Claude может сосредоточиться только на самом подходящем содержимом;
- подход масштабируется на очень большие документы;
- работает с несколькими документами;
- промпты меньше — дешевле и быстрее.
Сложности RAG
- нужен этап предобработки, чтобы разбить документы на фрагменты;
- нужен механизм поиска «подходящих» фрагментов;
- во включённых фрагментах может не оказаться всего контекста, нужного Claude;
- разбивать текст можно многими способами — какой лучше?
Например, документ можно разделить на части равного размера, а можно — по структуре: по заголовкам и разделам. У каждого подхода свои компромиссы, которые нужно оценить для своей задачи.
Когда использовать RAG
RAG требует многих технических решений и больше работы, чем просто положить всё в промпт. Нужно оценить, перевешивают ли преимущества сложность в вашем приложении. Особенно он ценен для очень больших документов, нескольких документов или когда важно оптимизировать стоимость и скорость.
Ключевая мысль: RAG меняет простоту на масштабируемость и эффективность. Он требует больше работы на старте, зато позволяет работать с коллекциями документов, которые невозможно обработать, просто положив всё в промпт.
Дальше
Первый шаг RAG — разбить текст на фрагменты. Следующий урок сравнивает стратегии разбиения.
Оригинал урока: Introducing Retrieval Augmented Generation.